root/cgm/cgm_apps/ccapi/geom/GeometryTool_ccapi.h @ 1040

Revision 1040, 58.0 KB (checked in by tautges, 2 years ago)

Version 10.2 of cgm.

Line 
1#ifndef GEOM_CCAPI_HPP
2#define GEOM_CCAPI_HPP
3
4/**
5 * \file geom_ccapi.hpp
6 *
7 * \brief C api to classes in CUBIT geom subdirectory
8 *
9 * This file contains api functions for public members of the following classes:
10 *
11 * GeometryTool
12 * MergeTool
13 *
14 * Classes should not be added to this list unless they are located in this
15 * subdirectory (avoids illegal dependencies between directories)
16 *
17 * These functions are compiled with the C++ compiler (so that they
18 * can call C++ member functions and understand C++ classes), but with
19 * linkage for the C language (so they can be called from C functions)
20 *
21 * NAMING CONVENTIONS
22 * In general, given a CUBIT class ClassName, which uses the CUBIT
23 * convention for naming classes, the api functions that access member
24 * functions will have the same name, but with a CN_ prefix.  For example,
25 * ClassName::function_name() will have a corresponding api function
26 * CN_function_name(). 
27 *
28 * ARGUMENT AND RETURN TYPE CONVERSION CONVENTIONS
29 * Some types of arguments and return types are not usable in C, namely
30 * classes and their pointers.  Therefore, the following types of arguments
31 * and return types are converted to or from (void *) before being input to or
32 * output from these api functions:
33 *
34 * CubitClass *, CubitClass &, CubitClass *&, DLCubitEntList &, DLCubitEntList *&
35 *
36 * AUXILLIARY DATASTRUCTURES
37 * Certain CUBIT objects are used extensively in the geometry interface; it
38 * makes sense to define auxilliary structures which hold the data in these
39 * classes, and which can be used directly in the application code.  Auxilliary
40 * structures are named by appending 'Struct' to the CUBIT class name,
41 * e.g. CubitVectorStruct.  The CUBIT classes for which auxilliary
42 * structures are defined are:
43 *
44 * CubitVector, CubitPlane, CubitBox
45 *
46 * In addition, (char *) is used in place of CubitString.
47 *
48 * The argument and return type conversions between these classes and
49 * their structures are defined as follows, where Xxx denotes the CUBIT
50 * class name:
51 *
52 * Xxx *  => XxxStruct *
53 * Xxx &  => XxxStruct &
54 * DLXxxList &  => XxxStruct **
55 * DLXxxList *& => XxxStruct ***
56 *
57 * \author Tim Tautges
58 *
59 * \date 1/2000
60 *
61 */
62
63#include "CubitDefines.h"
64#include "GeometryDefines.h"
65#include "EntityType.h"
66#include "CubitVectorStruct.h"
67#include "CubitBoxStruct.h"
68#include "CubitPlaneStruct.h"
69
70#ifdef __cplusplus
71extern "C" {
72#endif
73
74/* GeometryTool * */ 
75extern void *GeometryTool_instance(/* SolidModelingEngine * */ void *SMEPtr);
76 
77enum CubitStatus GeometryTool_cubit_entity_list(const char *keyword, 
78                                   /* DLRefEntityList & */ void ***entity_list, 
79                                 int *entity_list_size,
80                                                const enum CubitBoolean print_errors);
81/* API function for GeometryTool::cubit_entity_list */
82
83
84enum CubitStatus GeometryTool_ref_entity_list( char const* keyword,
85                                  /* DLRefEntityList &*/ void ***entity_list,
86                                int *entity_list_size,
87                                               const enum CubitBoolean print_errors);
88
89void GeometryTool_bodies (/*DLBodyList &*/ void ***bodies, int *bodies_size);
90
91void GeometryTool_ref_volumes (/*DLRefVolumeList &*/ void ***ref_volumes, int *ref_volumes_size);
92
93void GeometryTool_ref_groups (/*DLRefGroupList &*/ void ***ref_groups, int *ref_groups_size);
94
95void GeometryTool_ref_parts (/*DLRefPartList &*/ void ***ref_parts, int *ref_parts_size);
96
97void GeometryTool_ref_assemblies (/*DLRefAssemblyList &*/ void ***ref_assemblies, int *ref_assemblies_size);
98
99void GeometryTool_ref_faces (/*DLRefFaceList &*/ void ***ref_faces, int *ref_faces_size);
100
101void GeometryTool_ref_edges (/*DLRefEdgeList &*/ void ***ref_edges, int *ref_edges_size);
102
103void GeometryTool_ref_vertices (/*DLRefVertexList &*/ void ***ref_vertices, int *ref_vertices_size);
104
105void GeometryTool_ref_coordsys (/*DLRefCoordSysList &*/ void ***ref_coordsys, int *ref_coordsys_size);
106
107
108int GeometryTool_num_bodies();
109/* API function for GeometryTool::num_bodies */
110
111int GeometryTool_num_ref_volumes();
112/* API function for GeometryTool::num_ref_volumes */
113
114int GeometryTool_num_ref_groups();
115/* API function for GeometryTool::num_ref_groups */
116
117int GeometryTool_num_ref_parts();
118/* API function for GeometryTool::num_ref_parts */
119
120int GeometryTool_num_ref_assemblies();
121/* API function for GeometryTool::num_ref_assemblies */
122
123int GeometryTool_num_ref_faces();
124/* API function for GeometryTool::num_ref_faces */
125
126int GeometryTool_num_ref_edges();
127/* API function for GeometryTool::num_ref_edges */
128
129int GeometryTool_num_ref_vertices();
130/* API function for GeometryTool::num_ref_vertices */
131
132int GeometryTool_num_ref_coordsys();
133/* API function for GeometryTool::num_ref_coordsys */
134
135
136/* RefEntity* */ void* GeometryTool_get_ref_entity_1 (const char *type, int id);
137/* API function for GeometryTool::*get_ref_entity  */
138
139/* RefEntity* */ void* GeometryTool_get_ref_entity_2 (const enum EntityType type, int id);
140/* API function for GeometryTool::*get_ref_entity  */
141
142/* Body* */ void* GeometryTool_get_body ( int id );
143/* API function for GeometryTool::*get_body  */
144
145/* RefVolume* */ void* GeometryTool_get_ref_volume ( int id );
146/* API function for GeometryTool::*get_ref_volume  */
147
148/* RefGroup* */ void* GeometryTool_get_ref_group ( int id );
149/* API function for GeometryTool::*get_ref_group  */
150
151/* RefPart* */ void* GeometryTool_get_ref_part ( int id );
152/* API function for GeometryTool::*get_ref_part  */
153
154/* RefAssembly* */ void* GeometryTool_get_ref_assembly ( int id );
155/* API function for GeometryTool::*get_ref_assembly  */
156
157/* RefFace* */ void* GeometryTool_get_ref_face ( int id );
158/* API function for GeometryTool::*get_ref_face  */
159
160/* RefEdge* */ void* GeometryTool_get_ref_edge ( int id );
161/* API function for GeometryTool::*get_ref_edge  */
162
163/* RefVertex* */ void* GeometryTool_get_ref_vertex ( int id );
164/* API function for GeometryTool::*get_ref_vertex  */
165
166
167/* Body* */ void* GeometryTool_get_first_body ();
168/* API function for GeometryTool::*get_first_body  */
169
170/* RefVolume* */ void* GeometryTool_get_first_ref_volume ();
171/* API function for GeometryTool::*get_first_ref_volume  */
172
173/* RefGroup* */ void* GeometryTool_get_first_ref_group ();
174/* API function for GeometryTool::*get_first_ref_group  */
175
176/* RefPart* */ void* GeometryTool_get_first_ref_part ();
177/* API function for GeometryTool::*get_first_ref_part  */
178
179/* RefAssembly* */ void* GeometryTool_get_first_ref_assembly ();
180/* API function for GeometryTool::*get_first_ref_assembly  */
181
182/* RefFace* */ void* GeometryTool_get_first_ref_face ();
183/* API function for GeometryTool::*get_first_ref_face  */
184
185/* RefEdge* */ void* GeometryTool_get_first_ref_edge ();
186/* API function for GeometryTool::*get_first_ref_edge  */
187
188/* RefVertex* */ void* GeometryTool_get_first_ref_vertex ();
189/* API function for GeometryTool::*get_first_ref_vertex  */
190 
191
192/* Body* */ void* GeometryTool_get_next_body ();
193/* API function for GeometryTool::*get_next_body  */
194
195/* RefVolume* */ void* GeometryTool_get_next_ref_volume ();
196/* API function for GeometryTool::*get_next_ref_volume  */
197
198/* RefGroup* */ void* GeometryTool_get_next_ref_group ();
199/* API function for GeometryTool::*get_next_ref_group  */
200
201/* RefPart* */ void* GeometryTool_get_next_ref_part ();
202/* API function for GeometryTool::*get_next_ref_part  */
203
204/* RefAssembly* */ void* GeometryTool_get_next_ref_assembly ();
205/* API function for GeometryTool::*get_next_ref_assembly  */
206
207/* RefFace* */ void* GeometryTool_get_next_ref_face ();
208/* API function for GeometryTool::*get_next_ref_face  */
209
210/* RefEdge* */ void* GeometryTool_get_next_ref_edge ();
211/* API function for GeometryTool::*get_next_ref_edge  */
212
213/* RefVertex* */ void* GeometryTool_get_next_ref_vertex ();
214/* API function for GeometryTool::*get_next_ref_vertex */
215 
216
217/* Body* */ void* GeometryTool_get_last_body ();
218/* API function for GeometryTool::*get_last_body  */
219
220/* RefVolume* */ void* GeometryTool_get_last_ref_volume ();
221/* API function for GeometryTool::*get_last_ref_volume  */
222
223/* RefGroup* */ void* GeometryTool_get_last_ref_group ();
224/* API function for GeometryTool::*get_last_ref_group  */
225
226/* RefPart* */ void* GeometryTool_get_last_ref_part ();
227/* API function for GeometryTool::*get_last_ref_part  */
228
229/* RefAssembly* */ void* GeometryTool_get_last_ref_assembly ();
230/* API function for GeometryTool::*get_last_ref_assembly  */
231
232/* RefFace* */ void* GeometryTool_get_last_ref_face ();
233/* API function for GeometryTool::*get_last_ref_face  */
234
235/* RefEdge* */ void* GeometryTool_get_last_ref_edge ();
236/* API function for GeometryTool::*get_last_ref_edge  */
237
238/* RefVertex* */ void* GeometryTool_get_last_ref_vertex ();
239/* API function for GeometryTool::*get_last_ref_vertex  */
240
241  /**<
242    <HR><H3>File operations (import, export)<H3>
243  */
244
245enum CubitStatus GeometryTool_export_solid_model( /* DLRefEntityList& */ void ***ref_entity_list,
246                                   int *ref_entity_list_size,
247                                   char const* file_name,
248                                   char const* file_type,
249                                   const /* CubitString & */ char *cubit_version,
250                                   char const* logfile_name);
251
252enum CubitStatus GeometryTool_import_solid_model_1(FILE* file_ptr, 
253                                  const char* file_name,
254                                  const char* file_type,
255                                  const char* logfile_name,
256                                                 enum CubitBoolean heal_step,
257                                                 enum CubitBoolean import_bodies,
258                                                 enum CubitBoolean import_surfaces,
259                                                 enum CubitBoolean import_curves,
260                                                 enum CubitBoolean import_vertices,
261                                                 enum CubitBoolean free_surfaces);
262/* API function for GeometryTool::import_solid_model */
263
264enum CubitStatus GeometryTool_import_solid_model_2(enum SolidModelerType model_type);
265/* API function for GeometryTool::import_solid_model */
266
267enum CubitStatus GeometryTool_import_datum_curves(FILE* inputFile, 
268                                   char const* filetype);
269/* API function for GeometryTool::import_datum_curves */
270   
271enum CubitStatus GeometryTool_read_geometry_file(char const* fileName, 
272                                  char const* includePath,
273                                  char const* type);
274/* API function for GeometryTool::read_geometry_file */
275   
276int GeometryTool_fire_ray(/* Body* */ void *body, 
277                  /* const CubitVector */ struct CubitVectorStruct *ray_point,
278                  /* const CubitVector */ struct CubitVectorStruct *unit,
279                  /* int & */ int *num_hit, /* double *& */ double **ray_params,
280                  /* DLRefEntityList * */ void ***entity_list,
281                int *entity_list_size);
282/* API function for GeometryTool::fire_ray */
283
284  /**
285   <HR><H3>Geometric primitive creation functions<H3>
286  */
287  int GeometryTool_sphere(double radius);
288/* API function for GeometryTool::sphere */
289   
290  int GeometryTool_brick( double wid, double dep, double hi );
291/* API function for GeometryTool::brick     */
292   
293  int GeometryTool_prism( double height, int sides, double major, double minor);
294/* API function for GeometryTool::prism     */
295   
296int GeometryTool_pyramid( double height, int sides, double major, double minor,
297                double top);
298/* API function for GeometryTool::pyramid   */
299   
300int GeometryTool_cylinder( double hi, double r1, double r2, double r3 );
301/* API function for GeometryTool::cylinder  */
302   
303int GeometryTool_torus( double r1, double r2 );
304/* API function for GeometryTool::torus     */
305
306int GeometryTool_planar_sheet ( struct CubitPlaneStruct plane, 
307                                struct CubitBoxStruct bounding_box,
308                      int extension_type, double extension);
309/* API function for GeometryTool::planar_sheet  */
310   
311    /* <HR><H3>Geometry transformation (move, scale, etc.)<H3> */
312
313
314/* Body* */ void* GeometryTool_copy_body ( /* Body* */ void *body_ptr);
315/* API function for GeometryTool::copy_body  */
316
317/* RefEntity* */ void* GeometryTool_copy_refentity( /* RefEntity * */ void *old_entity );
318/* API function for GeometryTool::copy_refentity */
319
320enum CubitStatus GeometryTool_reflect_body( /* Body * */ void *body_ptr,
321                               /* Body *& */ void **new_body,
322                             double x, double y,
323                             double z,
324                                            enum CubitBoolean keep_old);
325/* API function for GeometryTool::reflect_body */
326
327enum CubitStatus GeometryTool_align_body( /* Body * */ void *body_ptr, 
328                             /* RefFace * */ void *my_face,
329                             /* RefFace * */ void *target_face );
330/* API function for GeometryTool::align_body */
331
332   
333    /* <HR><H3>Geometry modification (booleans, decomposition, etc.)<H3> */
334
335enum CubitStatus GeometryTool_unite_1(/* DLBodyList & */ void ***bodies, int *bodies_size, 
336                       /* Body *& */ void **newBody,
337                     int keep_old);
338/* API function for GeometryTool::unite */
339
340enum CubitStatus GeometryTool_unite_2 ( /* Body * */ void *body1, /* Body * */ void *body2, 
341                         /* Body *& */ void **newBody,
342                       int keep_old);
343/* API function for GeometryTool::unite  */
344
345enum CubitStatus GeometryTool_subtract ( /* Body * */ void *tool_body_ptr, 
346                            /* DLBodyList & */ void ***from_bodies,
347                          int *from_bodies_size,
348                            /* DLBodyList & */ void ***new_bodies, int *new_bodies_size,
349                          int keep_old);
350/* API function for GeometryTool::subtract  */
351
352enum CubitStatus GeometryTool_intersect ( /* Body * */ void *tool_body_ptr, 
353                             /* DLBodyList & */ void ***from_bodies,
354                           int *from_bodies_size,
355                             /* DLBodyList & */ void ***new_bodies,
356                           int *new_bodies_size,
357                           int keep_old);
358/* API function for GeometryTool::intersect  */
359
360enum CubitStatus GeometryTool_section( /* DLBodyList & */ void ***section_body_list,
361                        int *section_body_list_size,
362                          /* CubitVector & */ struct CubitVectorStruct *point_1,
363                          /* CubitVector & */ struct CubitVectorStruct *point_2,
364                          /* CubitVector & */ struct CubitVectorStruct *point_3,
365                          /* DLBodyList & */ void ***new_body_list,
366                        int *new_body_list_size,
367                        enum CubitBoolean keep_normal_side,
368                        enum CubitBoolean keep_old);
369/* API function for GeometryTool::section */
370
371enum CubitStatus GeometryTool_split_periodic( /* Body * */ void *body_ptr,
372                                 /* Body *& */ void **new_body_ptr );
373/* API function for GeometryTool::split_periodic */
374
375  int GeometryTool_webcut_with_cylinder( /* DLBodyList& */ void ***webcut_body_list, int *webcut_body_list_size,
376                                         double radius, /* CubitVector & */ struct CubitVectorStruct *axis,
377                                           /* CubitVector& */ struct CubitVectorStruct *center, 
378                                           /* DLBodyList & */ void ***results_list, int *results_list_size,
379                                         enum CubitBoolean imprint,
380                                         enum CubitBoolean merge);
381  /**<  Webcuts the bodies in the list with a cutting cylinder.
382    *  The cylinder is created by the given parameters.  This
383    *  is done in the solid modeling engine to reduce the impact
384    *  on body ids.
385    */
386
387  int  GeometryTool_webcut_across_translate( /* DLBodyList& */ void ***body_list, int *body_list_size,
388                                               /* RefFace* */ void *plane_surf1, /* RefFace* */ void *plane_surf2,
389                                               /* DLBodyList& */ void ***results_list, int *results_list_size,
390                                             enum CubitBoolean imprint, enum CubitBoolean merge);
391  /**<  Webcuts with a flat plate to make a body suitable for single-single
392    *   sweeping.  Only experimental and available in the GUI.
393    */
394   
395int GeometryTool_webcut_with_plane(/* DLBodyList& */ void ***webcut_body_list,
396                         int *webcut_body_list_size,
397                           /* CubitVector & */ struct CubitVectorStruct *vector1,
398                           /* CubitVector & */ struct CubitVectorStruct *vector2,
399                           /* CubitVector & */ struct CubitVectorStruct *vector3, 
400                           /* DLBodyList & */ void ***results_list,
401                         int *results_list_size,
402                         enum CubitBoolean imprint,
403                         enum CubitBoolean merge);
404/* API function for GeometryTool::webcut_with_plane */
405
406int GeometryTool_webcut_with_vertices( /* DLBodyList& */ void ***webcut_body_list,
407                             int *webcut_body_list_size,
408                               /* RefVertex* */ void *refVertex1,
409                               /* RefVertex* */ void *refVertex2,
410                               /* RefVertex* */ void *refVertex3, 
411                               /* DLBodyList & */ void ***results_list,
412                             int *results_list_size,
413                                       enum CubitBoolean imprint,
414                                       enum CubitBoolean merge);
415/* < API function for GeometryTool::webcut_with_vertices */
416   
417  int GeometryTool_webcut_with_curve_loop(/* DLBodyList& */ void ***webcut_body_list, int *webcut_body_list_size,
418                                            /* DLRefEdgeList& */ void ***refedge_list, int *refedge_list_size,
419                                            /* DLBodyList& */ void ***results_list, int *results_list_size,
420                                          enum CubitBoolean imprint);
421   
422int GeometryTool_webcut_with_surface(/* DLBodyList& */ void ***webcut_body_list,
423                           int *webcut_body_list_size,
424                             /* RefFace* */ void *refFace,
425                             /* DLBodyList& */ void *** results_list,
426                           int * results_list_size,
427                           enum CubitBoolean imprint,
428                                     enum CubitBoolean merge);
429 
430/* < API function for GeometryTool::webcut_with_surface */
431   
432enum CubitStatus GeometryTool_webcut_with_sheet(/* Body * */ void *webcut_body,
433                                   /* Body * */ void *sheet_body,
434                              /* DLBodyList & */ void ***new_bodies,
435                                 int *new_bodies_size,
436                                           enum CubitBoolean imprint );
437 
438/* < API function for GeometryTool::webcut_with_sheet */
439   
440int GeometryTool_webcut_with_body(/* DLBodyList& */ void ***webcut_body_list,
441                        int *webcut_body_list_size,
442                          /* Body* */ void *body,
443                          /* DLBodyList& */ void ***results_list,
444                        int * results_list_size,
445                        enum CubitBoolean imprint,
446                                  enum CubitBoolean merge) ;
447
448/* < API function for GeometryTool::webcut_with_body */
449   
450enum CubitStatus GeometryTool_webcut_with_extended_surf( /* DLBodyList & */ void ***webcut_body_list,
451                                          int *webcut_body_list_size,
452                                            /* RefFace * */ void *face_to_extend,
453                                            /* DLBodyList & */ void ***new_bodies,
454                                          int *new_bodies_size,
455                                            /* int & */ int *num_cut,
456                                                    enum CubitBoolean imprint );
457
458/* < API function for GeometryTool::webcut_with_extended_surf */
459
460enum CubitStatus GeometryTool_remove_surfaces( /* DLRefFaceList & */ void ***ref_face_list,
461                                int *ref_face_list_size,
462                                  /* DLBodyList & */ void ***new_body_list,
463                                int *new_body_list_size,
464                                enum CubitBoolean extend_adjoining,
465                                enum CubitBoolean keep_surface,
466                                enum CubitBoolean keep_old_body );
467/* API function for GeometryTool::remove_surfaces */
468
469enum CubitStatus GeometryTool_offset_surfaces( /* DLRefFaceList& */ void ***ref_face_list,
470                                int * ref_face_list_size,
471                                  /* DLBodyList& */ void ***new_body_list,
472                                int * new_body_list_size, double offset_distance,
473                                enum CubitBoolean keep_old_body );
474/* API function for GeometryTool::offset_surfaces */
475
476enum CubitStatus GeometryTool_offset_curves( /* DLRefEdgeList& */ void ***ref_edge_list,
477                              int *ref_edge_list_size, double offset_distance, 
478                              /* CubitVector& */ struct CubitVectorStruct* offset_direction, 
479                              int gap_type);
480/* API function for GeometryTool::offset_curves */
481
482enum CubitStatus GeometryTool_translate_surfaces( /* DLRefFaceList& */ void ***ref_face_list,
483                                   int *ref_face_list_size,
484                                     /* DLBodyList& */ void ***new_body_list,
485                                   int *new_body_list_size,
486                                     /* CubitVector & */ struct CubitVectorStruct *delta,
487                                   enum CubitBoolean keep_old_body );
488/* API function for GeometryTool::translate_surfaces */
489
490enum CubitStatus GeometryTool_replace_surfaces( /* DLRefFaceList & */ void ***ref_face_list,
491                                 int *ref_face_list_size,
492                                   /* RefFace* */ void *tool_face_ptr,
493                              /* DLBodyList & */ void ***new_body_list,
494                                 int *new_body_list_size,
495                                 enum CubitBoolean reverse_flg,
496                                           enum CubitBoolean keep_old_body );
497 
498/* < API function for GeometryTool::replace_surfaces */
499   
500enum CubitStatus GeometryTool_trim_curve( /* RefEdge* */ void *trim_curve, 
501                             /* CubitVector& */ struct CubitVectorStruct* trim_vector, 
502                                       /* CubitVector& */ struct CubitVectorStruct* keep_vector );
503 
504/* < API function for GeometryTool::trim_curve */
505   
506  /* < <HR><H3>Topology modification (imprint, regularize, etc.)<H3> */
507
508enum CubitStatus GeometryTool_imprint_1 (/* DLBodyList & */ void ***from_body_list,
509                        int *from_body_list_size,
510                          /* DLBodyList & */ void ***new_body_list,
511                        int *new_body_list_size,
512                          int keep_old);
513 
514
515enum CubitStatus GeometryTool_imprint_2( /* DLBodyList & */ void ***body_list,
516                        int *body_list_size,
517                          /* DLRefEdgeList & */ void ***ref_edge_list,
518                        int *ref_edge_list_size,
519                          /* DLBodyList& */ void ***new_body_list,
520                        int *new_body_list_size,
521                        int keep_old_body );
522/* API function for GeometryTool::imprint */
523
524enum CubitStatus GeometryTool_imprint_3( /* DLRefFaceList & */ void ***ref_face_list,
525                        int *ref_face_list_size,
526                          /* DLRefEdgeList & */ void ***ref_edge_list,
527                        int *ref_edge_list_size,
528                          /* DLBodyList& */ void ***new_body_list,
529                        int *new_body_list_size,
530                        int keep_old_body );
531/* API function for GeometryTool::imprint */
532
533enum CubitStatus GeometryTool_imprint_4( /* DLBodyList & */ void ***body_list,
534                        int *body_list_size,
535                          /* DLRefVertexList & */ void ***ref_vertex_list,
536                        int *ref_vertex_list_size,
537                          /* DLBodyList& */ void ***new_body_list,
538                        int *new_body_list_size,
539                        int keep_old_body );
540/* API function for GeometryTool::imprint */
541
542enum CubitStatus GeometryTool_regularize_body( /* Body * */ void *body_ptr, 
543                                  /* Body *& */ void **new_body );
544/* API function for GeometryTool::regularize_body */
545   
546enum CubitStatus GeometryTool_split_body( /* Body * */ void *body_ptr,
547                             /* DLBodyList & */ void ***new_bodies,
548                           int *new_bodies_size);
549/* API function for GeometryTool::split_body */
550   
551    /* <HR><H3>GeometryTool options and settings<H3> */
552
553void GeometryTool_group_imprint_1(enum CubitBoolean flag);
554/* API function for GeometryTool::group_imprint */
555
556enum CubitBoolean GeometryTool_group_imprint_2();
557/* API function for GeometryTool::group_imprint */
558   
559void GeometryTool_set_all_edges_imprint( enum CubitBoolean flag);
560/* API function for GeometryTool::void set_all_edges_imprint */
561
562enum CubitBoolean GeometryTool_get_all_edges_imprint();
563/* API function for GeometryTool::CubitBoolean get_all_edges_imprint */
564   
565    /* static */ void GeometryTool_booleans_after_merge_1( enum CubitBoolean flag );
566    /* static */ enum CubitBoolean GeometryTool_booleans_after_merge_2();
567  /**<  sets/gets the booleansAfterMerge flag.
568    */
569   
570void GeometryTool_new_ids_1(enum CubitBoolean flag);
571
572/* API function for GeometryTool::new_ids */
573
574enum CubitBoolean GeometryTool_new_ids_2();
575/* API function for GeometryTool::new_ids */
576   
577  void GeometryTool_geom_debug( /* DLTopologyEntityList */ void ***arg, int *arg_size);
578
579
580/* API function for GeometryTool::void geom_debug */
581   
582  void GeometryTool_use_facet_bbox_1( enum CubitBoolean pass_flag );
583  enum CubitBoolean GeometryTool_use_facet_bbox_2();
584  /**< get and set the useFacetBBox flag. (compute our own bbox
585    * instead of relying on bad ACIS geometry)
586    */
587
588   
589#ifdef CUBIT_GUI
590void GeometryTool_set_validate_file_ptr( FILE* file_ptr);
591/* API function for GeometryTool::set_validate_file_ptr */
592
593void GeometryTool_reset_validate_file_ptr();
594/* API function for GeometryTool::reset_validate_file_ptr */
595
596FILE* GeometryTool_get_validate_file_ptr();
597/* API function for GeometryTool::get_validate_file_ptr */
598#endif
599   
600    /* <HR><H3>SolidModelingEngine information<H3> */
601
602char *GeometryTool_identify_modeling_engine();
603/* API function for GeometryTool::identify_modeling_engine */
604   
605void GeometryTool_register_solid_modeling_engine(/* SolidModelingEngine* */ void *SMEPtr);
606/* API function for GeometryTool::register_solid_modeling_engine */
607     
608void GeometryTool_register_datum_curve_sm_engine(/* SolidModelingEngine* */ void *SMEPtr);
609/* API function for GeometryTool::register_datum_curve_sm_engine */
610
611enum CubitStatus GeometryTool_set_engine_version(int version);
612/* API function for GeometryTool::set_engine_version */
613   
614enum CubitStatus GeometryTool_get_engine_version(int *version);
615/* API function for GeometryTool::get_engine_version */
616   
617enum CubitStatus GeometryTool_list_engine_versions(char **versions);
618/* API function for GeometryTool::list_engine_versions */
619
620double GeometryTool_get_sme_resabs_tolerance();
621/* API function for GeometryTool::get_sme_resabs_tolerance */
622
623double GeometryTool_set_sme_resabs_tolerance( double new_resabs);
624/* API function for GeometryTool::set_sme_resabs_tolerance */
625
626enum CubitStatus GeometryTool_set_steptools_path( const char* path);
627/* API function for GeometryTool::set_steptools_path */
628
629enum CubitStatus GeometryTool_set_igestools_path( const char* path);
630/* API function for GeometryTool::set_igestools_path */
631
632enum CubitStatus GeometryTool_set_sme_int_option( const char* opt_name, int val);
633/* API function for GeometryTool::set_sme_int_option */
634
635enum CubitStatus GeometryTool_set_sme_dbl_option( const char* opt_name, double val);
636/* API function for GeometryTool::set_sme_dbl_option */
637
638enum CubitStatus GeometryTool_set_sme_str_option( const char* opt_name, const char* val);
639/* API function for GeometryTool::set_sme_str_option */
640
641    /* <HR><H3>Topology/geometry creation functions<H3> */
642
643/* RefVertex* */ void* GeometryTool_make_RefVertex(enum GeometryType ref_vertex_type,
644                                         const struct CubitVectorStruct *point, int color);
645/* API function for GeometryTool::make_RefVertex */
646   
647/* Body* */ void* GeometryTool_make_Body_1(/* Surface * */ void *surface);
648/* API function for GeometryTool::*make_Body */
649
650/* Body* */ void* GeometryTool_make_Body_2(/* BodySM * */ void *bodysm_ptr);
651/* API function for GeometryTool::make_Body */
652
653/* Shell* */ void* GeometryTool_make_Shell(/* ShellSM * */ void *shellsm_ptr );
654/* API function for GeometryTool::make_Shell */
655
656/* Loop* */ void* GeometryTool_make_Loop(/* LoopSM* */ void *loopsm_ptr );
657/* API function for GeometryTool::make_Loop */
658
659    /* RefEntity * */ void *GeometryTool_check_mergeable_refentity(/* TopologyBridge * */ void *bridge);
660    /* check for mergeable ref entity, indicated by a merge attribute on the */
661    /* bridge */
662
663/* Chain* */ void* GeometryTool_make_Chain_1(/* DLPointList& */ void ***points, 
664                                 int *points_size);
665/* API function for GeometryTool::make_Chain */
666
667/* Chain* */ void* GeometryTool_make_Chain_2(/* Curve * */ void *curve);
668/* API function for GeometryTool::make_Chain */
669
670/* RefEdge* */ void* GeometryTool_make_RefEdge_1( enum GeometryType ref_edge_type,
671                                        /* RefVertex const* */ void *ref_vertex_1,
672                                        /* RefVertex const* */ void *ref_vertex_2,
673                                        /* DLCubitVectorList& */ struct CubitVectorStruct *vector_list,
674                                      int vector_list_size,
675                                        /* RefFace* */ void *reffaca_ptr );
676/* API function for GeometryTool::make_RefEdge */
677
678/* RefEdge* */ void* GeometryTool_make_RefEdge_2(  /* RefVertex const* */ void *ref_vertex_1,
679                                         /* RefVertex const* */ void *ref_vertex_2,
680                                         /* RefFace* */ void *ref_face_ptr,
681                                         /* RefVertex const* */ void *ref_vertex_3 );
682/* API function for GeometryTool::make_RefEdge */
683
684    /* RefEdge* */ void *GeometryTool_make_RefEdge_3( /* RefEdge * */ void *ref_edge);
685
686/* RefEdge* */ void* GeometryTool_make_RefEdge_4(enum GeometryType ref_edge_type,
687                                       /* RefVertex const* */ void *ref_vertex_1,
688                                       /* RefVertex const* */ void *ref_vertex_2,
689                                     struct CubitVectorStruct const* intermediate_point,
690                                                 enum CubitSense sense);
691/* API function for GeometryTool::make_RefEdge */
692
693/* RefFace* */ void* GeometryTool_make_RefFace_1(/* RefFace * */ void *from_ref_face,
694                                     enum CubitBoolean extended_from);
695/* API function for GeometryTool::make_RefFace */
696
697/* RefFace* */ void* GeometryTool_make_RefFace_2(enum GeometryType ref_face_type,
698                                       /* DLRefEdgeList& */ void ***ref_edge_list,
699                                     int *ref_edge_list_size,
700                                       /* RefFace * */ void *ref_face_ptr);
701/* API function for GeometryTool::make_RefFace */
702
703/* RefVolume* */ void* GeometryTool_make_RefVolume(enum GeometryType ref_volume_type,
704                                           /* DLRefFaceList& */ void ***ref_face_list,
705                                         int *ref_face_list_size);
706/* API function for GeometryTool::make_RefVolume */
707
708/* Body* */ void* GeometryTool_make_Body_3(/* DLRefVolumeList& */ void ***ref_volume_list, 
709                               int *ref_volume_list_size);
710/* API function for GeometryTool::make_Body */
711
712/* Body* */ void* GeometryTool_make_Body_4(/* RefFace * */ void *from_ref_face,
713                               enum CubitBoolean extended_from);
714/* API function for GeometryTool::make_Body */
715
716/* Body* */ void* GeometryTool_make_Body_5(enum GeometryType ref_face_type,
717                                 /* DLRefEdgeList& */ void ***ref_edge_list,
718                               int *ref_edge_list_size,
719                                 /* RefFace * */ void *ref_face_ptr);
720/* API function for GeometryTool::make_Body */
721
722/* RefFace* */ void *GeometryTool_make_free_RefFace(/* SurfaceSM * */ void *surfacesm_ptr);
723
724/* RefEdge* */ void *GeometryTool_make_free_RefEdge(/* CurveSM * */ void *curvesm_ptr);
725
726/* RefVertex* */ void *GeometryTool_make_free_RefVertex(/* PointSM * */ void *pointsm_ptr);
727
728enum CubitStatus GeometryTool_sweep_translational(/* DLRefFaceList& */ void ***faces_to_be_swept_list,
729                                   int *faces_to_be_swept_list_size,
730                                   struct CubitVectorStruct sweep_vector,
731                                   double draft_angle,
732                                   int draft_type,
733                                   int switchside );
734/* API function for GeometryTool::sweep_translational */
735
736enum CubitStatus GeometryTool_sweep_rotational(/* DLRefFaceList& */ void ***faces_to_be_swept_list,
737                                int *faces_to_be_swept_list_size,
738                                struct CubitVectorStruct point,
739                                struct CubitVectorStruct direction,
740                                double angle,
741                                int steps,
742                                double draft_angle,
743                                int draft_type,
744                                int switchside );
745/* API function for GeometryTool::sweep_rotational */
746
747enum CubitStatus GeometryTool_sweep_along_curve(/* DLRefFaceList& */ void ***reffaces_to_be_swept_list,
748                                 int *reffaces_to_be_swept_list_size,
749                              /* DLRefEdgeList& */ void ***ref_edge_list,
750                                 int *ref_edge_list_size,
751                                 double draft_angle,
752                                 int draft_type);
753/* API function for GeometryTool::sweep_along_curve */
754
755   
756enum CubitStatus GeometryTool_create_body_from_surfs( /* DLRefFaceList & */ void ***ref_face_list,
757                                       int *ref_face_list_size,
758                                         /* Body *& */ void **new_body,
759                                       int keep_old,
760                                       int heal);
761/* API function for GeometryTool::create_body_from_surfs */
762
763enum CubitStatus GeometryTool_create_net_surface_1( /* DLRefFaceList& */ void ***ref_face_list,
764                                   int *ref_face_list_size,
765                                     /* Body *& */ void **new_body, 
766                                     /* DLIList<DLCubitVectorList*> */ struct CubitVectorStruct *vec_lists_u, 
767                                   int vec_lists_u_size,
768                                     /* DLIList<DLCubitVectorList*> */ struct CubitVectorStruct *vec_lists_v, 
769                                   int vec_lists_v_size,
770                                   double net_tol,
771                                   enum CubitBoolean heal );
772/* API function for GeometryTool::create_net_surface */
773
774enum CubitStatus GeometryTool_create_net_surface_2( /* DLRefEdgeList& */ void ***u_curves,
775                                   int *u_curves_size,
776                                     /* DLRefEdgeList& */ void ***v_curves,
777                                   int *v_curves_size,
778                                     /* Body *& */ void ** new_body,
779                                   double net_tol, 
780                                   enum CubitBoolean heal );
781/* API function for GeometryTool::create_net_surface */
782
783enum CubitStatus GeometryTool_create_offset_surface( /* RefFace* */ void *ref_face_ptr, 
784                                        /* Body*& */ void ** new_body, 
785                                      double offset_distance );
786/* API function for GeometryTool::create_offset_surface */
787
788enum CubitStatus GeometryTool_create_offset_body( /* Body * */ void *body_ptr, 
789                                     /* Body*& */ void ** new_body, 
790                                   double offset_distance );
791/* API function for GeometryTool::create_offset_body */
792
793enum CubitStatus GeometryTool_create_skin_surface( /* DLRefEdgeList& */ void ***curves,
794                                    int *curves_size,
795                                      /* Body*& */ void ** new_body );
796/* API function for GeometryTool::create_skin_surface */
797
798  enum CubitStatus GeometryTool_loft_surfaces( /* RefFace * */ void *face1, /* const double & */ double *takeoff1,
799                                                 /* RefFace * */ void *face2, /* const double & */ double *takeoff2,
800                                                 /* Body*& */ void **new_body,
801                                               enum CubitBoolean arc_length_option,
802                                               enum CubitBoolean twist_option,
803                                               enum CubitBoolean align_direction,
804                                               enum CubitBoolean perpendicular,
805                                               enum CubitBoolean simplify_option);
806    /* loft face1 to face2 */
807
808enum CubitStatus GeometryTool_create_arc_three_1( /* RefVertex * */ void *ref_vertex1, 
809                                   /* RefVertex * */ void *ref_vertex2,
810                                   /* RefVertex * */ void *ref_vertex3, 
811                                 enum CubitBoolean full );
812/* API function for GeometryTool::create_arc_three */
813
814enum CubitStatus GeometryTool_create_arc_three_2( /* RefEdge * */ void *ref_edge1, 
815                                   /* RefEdge * */ void *ref_edge2,
816                              /* RefEdge * */ void *ref_edge3, 
817                                 enum CubitBoolean full );
818/* API function for GeometryTool::create_arc_three */
819
820enum CubitStatus GeometryTool_create_arc_center_edge( /* RefVertex* */ void *ref_vertex1, 
821                                         /* RefVertex* */ void *ref_vertex2,
822                                         /* RefVertex* */ void *ref_vertex3, 
823                                       double radius,
824                                       enum CubitBoolean full );
825/* API function for GeometryTool::create_arc_center_edge */
826
827
828    /* <HR><H3>Topology and geometry deletion<H3> */
829void GeometryTool_delete_Body_1(/* DLBodyList& */ void ***body_list,
830                    int *body_list_size,
831                    enum CubitBoolean remove_solid_model_entities);
832/* API function for GeometryTool::delete_Body */
833
834enum CubitStatus GeometryTool_delete_Body_2(
835    /* Body * */ void *body_ptr,
836    enum CubitBoolean remove_solid_model_entities);
837/* API function for GeometryTool::delete_Body */
838
839enum CubitStatus GeometryTool_delete_RefAssembly(
840    /* RefAssembly *& */ void *ref_assembly_ptr,
841    enum CubitBoolean remove_solid_model_entities);
842/* API function for GeometryTool::delete_RefAssembly */
843
844enum CubitStatus GeometryTool_delete_RefPart(
845    /* RefPart *& */ void *ref_part_ptr,
846    enum CubitBoolean remove_solid_model_entities);
847/* API function for GeometryTool::delete_RefPart */
848
849enum CubitStatus GeometryTool_delete_RefEntity(
850    /* RefEntity *& */ void *ref_entity_ptr,
851    enum CubitBoolean remove_solid_model_entities,
852    enum CubitBoolean remove_lower_entities );
853/* API function for GeometryTool::delete_RefEntity */
854
855void GeometryTool_cleanout_deactivated_geometry();
856/* API function for GeometryTool::cleanout_deactivated_geometry */
857
858void GeometryTool_cleanout_temporary_geometry ();
859/* API function for GeometryTool::cleanout_temporary_geometry  */
860
861void GeometryTool_delete_geometry();
862/* API function for GeometryTool::delete_geometry */
863
864    /* <HR><H3>Miscellaneous geometry evaluation functions<H3> */
865enum CubitStatus GeometryTool_interpolate_along_surface( struct CubitVectorStruct *vector_1,
866                                          struct CubitVectorStruct *vector_2,
867                                            /* DLCubitVectorList & */ struct CubitVectorStruct *vector_list,
868                                          int vector_list_size,
869                                            /* RefFace * */ void *ref_face_ptr,
870                                          int number_points );
871/* API function for GeometryTool::interpolate_along_surface */
872
873enum CubitBoolean GeometryTool_about_spatially_equal_1 (const /* CubitVector& */ struct CubitVectorStruct* Vec1, 
874                                       const /* CubitVector& */ struct CubitVectorStruct* Vec2,
875                                       double tolerance_factor);
876/* API function for GeometryTool::about_spatially_equal  */
877
878enum CubitBoolean GeometryTool_about_spatially_equal_2 (/* RefVertex * */ void *refVertex1, 
879                                         /* RefVertex * */ void *refVertex2, 
880                                       double tolerance_factor);
881/* API function for GeometryTool::about_spatially_equal  */
882
883double GeometryTool_geometric_angle_1(/* RefEdge * */ void *ref_edge_1, 
884                                      /* RefEdge * */ void *ref_edge_2,
885                            /* RefFace * */ void *ref_face);
886/* API function for GeometryTool::geometric_angle */
887
888  double GeometryTool_geometric_angle(/* CoEdge* */ void *co_edge_1, 
889                                        /* CoEdge* */ void *co_edge_2 );
890/* API function for GeometryTool::geometric_angle */
891
892  double GeometryTool_surface_angle( /* RefEdge * */ void *ref_edge,
893                                       /* RefFace * */ void *ref_face_1, 
894                                       /* RefFace * */ void *ref_face_2,
895                                       /* RefVolume * */ void *ref_volume );
896    /**< Calculate dihedral angle at ref_edge between two faces of the
897     *   volume.
898     */
899
900enum CubitStatus GeometryTool_get_intersections( /* RefEdge * */ void *ref_edge1, 
901                                    /* RefEdge * */ void *ref_edge2,
902                                    /* DLCubitVectorList& */ struct CubitVectorStruct **intersection_list,
903                                  int *intersection_list_size,
904                                  enum CubitBoolean bounded,
905                                  enum CubitBoolean closest );
906/* API function for GeometryTool::get_intersections */
907
908struct CubitBoxStruct GeometryTool_bounding_box_of_bodies();
909/* API function for GeometryTool::bounding_box_of_bodies */
910
911
912    /* <HR><H3>Healing functions<H3> */
913enum CubitStatus GeometryTool_autoheal_bodies(/* DLBodyList & */ void ***body_list,
914                               int *body_list_size,
915                                 /* DLBodyList & */ void ***new_body_list,
916                               int *new_body_list_size,
917                               enum CubitBoolean rebuild, 
918                               enum CubitBoolean keep_old, enum CubitBoolean make_tolerant,
919                               FILE* logfile_ptr );
920/* API function for GeometryTool::autoheal_bodies */
921
922enum CubitStatus GeometryTool_healer_analyze_badgeom( /* DLBodyList & */ void ***body_list,
923                                       int *body_list_size,
924                                       FILE* logfile );
925/* API function for GeometryTool::healer_analyze_badgeom */
926
927enum CubitStatus GeometryTool_healer_show_badgeom( /* DLBodyList & */ void ***body_list,
928                                    int *body_list_size);
929/* API function for GeometryTool::healer_show_badgeom */
930
931enum CubitStatus GeometryTool_healer_show_tcurves( /* DLBodyList & */ void ***body_list, int *body_list_size);
932/* API function for GeometryTool::healer_show_tcurves */
933
934enum CubitStatus GeometryTool_heal_incremental( /* DLBodyList & */ void ***body_list,
935                                 int *body_list_size,
936                              /* DLBodyList & */ void ***new_bodies,
937                                 int *new_bodies_size,
938                                 double simplify_tol,
939                                 double stitch_min_tol,
940                                 double stitch_max_tol,
941                                 double geombuild_tol,
942                                 double analytic_tol,
943                                 double isospline_tol,
944                                 double reblend_classify_tol,
945                                 double reblend_tol,
946                                 enum CubitBoolean keep_old,
947                                 enum CubitBoolean make_tolerant,
948                                 FILE* logfile_ptr);
949/* API function for GeometryTool::heal_incremental */
950
951void GeometryTool_healer_list_incremental();
952/* API function for GeometryTool::healer_list_incremental */
953
954void GeometryTool_healer_list_tolerances( /* DLBodyList & */ void ***body_list,
955                                int *body_list_size);
956/* API function for GeometryTool::healer_list_tolerances */
957
958double GeometryTool_healer_get_default_simplify_tol();
959/* API function for GeometryTool::healer_get_default_simplify_tol */
960
961void GeometryTool_healer_set_default_simplify_tol( double tol);
962/* API function for GeometryTool::healer_set_default_simplify_tol */
963
964double GeometryTool_healer_get_default_stitch_min_tol();
965/* API function for GeometryTool::healer_get_default_stitch_min_tol */
966
967void GeometryTool_healer_set_default_stitch_min_tol( double tol);
968/* API function for GeometryTool::healer_set_default_stitch_min_tol */
969
970double GeometryTool_healer_get_default_stitch_max_tol();
971/* API function for GeometryTool::healer_get_default_stitch_max_tol */
972
973void GeometryTool_healer_set_default_stitch_max_tol( double tol);
974/* API function for GeometryTool::healer_set_default_stitch_max_tol */
975
976double GeometryTool_healer_get_default_geombuild_tol();
977/* API function for GeometryTool::healer_get_default_geombuild_tol */
978
979void GeometryTool_healer_set_default_geombuild_tol( double tol);
980/* API function for GeometryTool::healer_set_default_geombuild_tol */
981
982double GeometryTool_healer_get_default_analytic_tol();
983/* API function for GeometryTool::healer_get_default_analytic_tol */
984
985void GeometryTool_healer_set_default_analytic_tol( double tol);
986/* API function for GeometryTool::healer_set_default_analytic_tol */
987
988double GeometryTool_healer_get_default_isospline_tol();
989/* API function for GeometryTool::healer_get_default_isospline_tol */
990
991void GeometryTool_healer_set_default_isospline_tol( double tol);
992/* API function for GeometryTool::healer_set_default_isospline_tol */
993
994double GeometryTool_healer_get_default_reblend_classify_tol();
995/* API function for GeometryTool::healer_get_default_reblend_classify_tol */
996
997void GeometryTool_healer_set_default_reblend_classify_tol( double tol);
998/* API function for GeometryTool::healer_set_default_reblend_classify_tol */
999
1000double GeometryTool_healer_get_default_reblend_tol();
1001/* API function for GeometryTool::healer_get_default_reblend_tol */
1002
1003void GeometryTool_healer_set_default_reblend_tol( double tol);
1004/* API function for GeometryTool::healer_set_default_reblend_tol */
1005
1006void GeometryTool_healer_reset_default_tolerances();
1007/* API function for GeometryTool::healer_reset_default_tolerances */
1008
1009void GeometryTool_healer_list_default_tolerances();
1010/* API function for GeometryTool::healer_list_default_tolerances */
1011
1012void GeometryTool_healer_clean_attributes( /* DLBodyList& */ void *body_list);
1013/* API function for GeometryTool::healer_clean_attributes */
1014
1015enum CubitBoolean GeometryTool_healer_get_cleanatt_flg();
1016/* API function for GeometryTool::healer_get_cleanatt_flg */
1017
1018void GeometryTool_healer_set_cleanatt_flg( enum CubitBoolean flg);
1019/* API function for GeometryTool::healer_set_cleanatt_flg */
1020
1021int GeometryTool_healer_get_show_method();
1022/* API function for GeometryTool::healer_get_show_method */
1023
1024void GeometryTool_healer_set_show_method( int method);
1025/* API function for GeometryTool::healer_set_show_method */
1026
1027void GeometryTool_healer_set_show_summary_flg( enum CubitBoolean flg);
1028/* API function for GeometryTool::healer_set_show_summary_flg */
1029
1030void GeometryTool_healer_set_show_details_flg( enum CubitBoolean flg);
1031/* API function for GeometryTool::healer_set_show_details_flg */
1032
1033void GeometryTool_healer_set_show_on_heal_flg( enum CubitBoolean flg);
1034/* API function for GeometryTool::healer_set_show_on_heal_flg */
1035
1036enum CubitBoolean GeometryTool_healer_get_check_vol_on_heal_flg();
1037/* API function for GeometryTool::healer_get_check_vol_on_heal_flg */
1038
1039void GeometryTool_healer_set_check_vol_on_heal_flg( enum CubitBoolean flg);
1040/* API function for GeometryTool::healer_set_check_vol_on_heal_flg */
1041
1042double GeometryTool_healer_get_vol_on_heal_limit();
1043/* API function for GeometryTool::healer_get_vol_on_heal_limit */
1044
1045void GeometryTool_healer_set_vol_on_heal_limit( double limit);
1046/* API function for GeometryTool::healer_set_vol_on_heal_limit */
1047
1048void GeometryTool_healer_set_check_surf_on_heal_flg( enum CubitBoolean flg);
1049/* API function for GeometryTool::healer_set_check_surf_on_heal_flg */
1050
1051double GeometryTool_healer_get_surf_on_heal_limit();
1052/* API function for GeometryTool::healer_get_surf_on_heal_limit */
1053
1054void GeometryTool_healer_set_surf_on_heal_limit( double limit);
1055/* API function for GeometryTool::healer_set_surf_on_heal_limit */
1056
1057void GeometryTool_healer_set_check_curve_on_heal_flg( enum CubitBoolean flg);
1058/* API function for GeometryTool::healer_set_check_curve_on_heal_flg */
1059
1060double GeometryTool_healer_get_curve_on_heal_limit();
1061/* API function for GeometryTool::healer_get_curve_on_heal_limit */
1062
1063void GeometryTool_healer_set_curve_on_heal_limit( double limit);
1064/* API function for GeometryTool::healer_set_curve_on_heal_limit */
1065
1066void GeometryTool_healer_set_show_bad_vertices_flg( enum CubitBoolean flg);
1067/* API function for GeometryTool::healer_set_show_bad_vertices_flg */
1068
1069enum CubitBoolean GeometryTool_healer_get_show_bad_curves_flg();
1070/* API function for GeometryTool::healer_get_show_bad_curves_flg */
1071
1072void GeometryTool_healer_set_show_bad_curves_flg( enum CubitBoolean flg);
1073/* API function for GeometryTool::healer_set_show_bad_curves_flg */
1074
1075enum CubitBoolean GeometryTool_healer_get_show_bad_coedges_flg();
1076/* API function for GeometryTool::healer_get_show_bad_coedges_flg */
1077
1078void GeometryTool_healer_set_show_bad_coedges_flg( enum CubitBoolean flg);
1079/* API function for GeometryTool::healer_set_show_bad_coedges_flg */
1080
1081enum CubitBoolean GeometryTool_healer_get_show_bad_loops_flg();
1082/* API function for GeometryTool::healer_get_show_bad_loops_flg */
1083
1084void GeometryTool_healer_set_show_bad_loops_flg( enum CubitBoolean flg);
1085/* API function for GeometryTool::healer_set_show_bad_loops_flg */
1086
1087enum CubitBoolean GeometryTool_healer_get_show_bad_surfaces_flg();
1088/* API function for GeometryTool::healer_get_show_bad_surfaces_flg */
1089
1090void GeometryTool_healer_set_show_bad_surfaces_flg( enum CubitBoolean flg);
1091/* API function for GeometryTool::healer_set_show_bad_surfaces_flg */
1092
1093enum CubitBoolean GeometryTool_healer_get_show_bad_shells_flg();
1094/* API function for GeometryTool::healer_get_show_bad_shells_flg */
1095
1096void GeometryTool_healer_set_show_bad_shells_flg( enum CubitBoolean flg);
1097/* API function for GeometryTool::healer_set_show_bad_shells_flg */
1098
1099enum CubitBoolean GeometryTool_healer_get_show_bad_volumes_flg();
1100/* API function for GeometryTool::healer_get_show_bad_volumes_flg */
1101
1102void GeometryTool_healer_set_show_bad_volumes_flg( enum CubitBoolean flg);
1103/* API function for GeometryTool::healer_set_show_bad_volumes_flg */
1104
1105enum CubitBoolean GeometryTool_healer_get_show_bad_bodies_flg();
1106/* API function for GeometryTool::healer_get_show_bad_bodies_flg */
1107
1108void GeometryTool_healer_set_show_bad_bodies_flg( enum CubitBoolean flg);
1109/* API function for GeometryTool::healer_set_show_bad_bodies_flg */
1110
1111void GeometryTool_healer_list_onshow_flgs();
1112/* API function for GeometryTool::healer_list_onshow_flgs */
1113
1114enum CubitBoolean GeometryTool_healer_get_inc_preprocess_flg();
1115/* API function for GeometryTool::healer_get_inc_preprocess_flg */
1116
1117void GeometryTool_healer_set_inc_preprocess_flg( enum CubitBoolean flg);
1118/* API function for GeometryTool::healer_set_inc_preprocess_flg */
1119
1120enum CubitBoolean GeometryTool_healer_get_inc_simplify_flg();
1121/* API function for GeometryTool::healer_get_inc_simplify_flg */
1122
1123void GeometryTool_healer_set_inc_simplify_flg( enum CubitBoolean flg);
1124/* API function for GeometryTool::healer_set_inc_simplify_flg */
1125
1126enum CubitBoolean GeometryTool_healer_get_inc_stitch_flg();
1127/* API function for GeometryTool::healer_get_inc_stitch_flg */
1128
1129void GeometryTool_healer_set_inc_stitch_flg( enum CubitBoolean flg);
1130/* API function for GeometryTool::healer_set_inc_stitch_flg */
1131
1132enum CubitBoolean GeometryTool_healer_get_inc_geombuild_flg();
1133/* API function for GeometryTool::healer_get_inc_geombuild_flg */
1134
1135void GeometryTool_healer_set_inc_geombuild_flg( enum CubitBoolean flg);
1136/* API function for GeometryTool::healer_set_inc_geombuild_flg */
1137
1138enum CubitBoolean GeometryTool_healer_get_inc_analytic_flg();
1139/* API function for GeometryTool::healer_get_inc_analytic_flg */
1140
1141void GeometryTool_healer_set_inc_analytic_flg( enum CubitBoolean flg);
1142/* API function for GeometryTool::healer_set_inc_analytic_flg */
1143
1144enum CubitBoolean GeometryTool_healer_get_inc_isospline_flg();
1145/* API function for GeometryTool::healer_get_inc_isospline_flg */
1146
1147void GeometryTool_healer_set_inc_isospline_flg( enum CubitBoolean flg);
1148/* API function for GeometryTool::healer_set_inc_isospline_flg */
1149
1150enum CubitBoolean GeometryTool_healer_get_inc_reblend_flg();
1151/* API function for GeometryTool::healer_get_inc_reblend_flg */
1152
1153void GeometryTool_healer_set_inc_reblend_flg( enum CubitBoolean flg);
1154/* API function for GeometryTool::healer_set_inc_reblend_flg */
1155
1156enum CubitBoolean GeometryTool_healer_get_inc_sharpedge_flg();
1157/* API function for GeometryTool::healer_get_inc_sharpedge_flg */
1158
1159void GeometryTool_healer_set_inc_sharpedge_flg( enum CubitBoolean flg);
1160/* API function for GeometryTool::healer_set_inc_sharpedge_flg */
1161
1162enum CubitBoolean GeometryTool_healer_get_inc_genericspline_flg();
1163/* API function for GeometryTool::healer_get_inc_genericspline_flg */
1164
1165void GeometryTool_healer_set_inc_genericspline_flg( enum CubitBoolean flg);
1166/* API function for GeometryTool::healer_set_inc_genericspline_flg */
1167
1168enum CubitBoolean GeometryTool_healer_get_inc_wrapup_flg();
1169/* API function for GeometryTool::healer_get_inc_wrapup_flg */
1170
1171void GeometryTool_healer_set_inc_wrapup_flg( enum CubitBoolean flg);
1172/* API function for GeometryTool::healer_set_inc_wrapup_flg */
1173
1174enum CubitBoolean GeometryTool_healer_get_inc_postprocess_flg();
1175/* API function for GeometryTool::healer_get_inc_postprocess_flg */
1176
1177void GeometryTool_healer_set_inc_postprocess_flg( enum CubitBoolean flg);
1178/* API function for GeometryTool::healer_set_inc_postprocess_flg */
1179
1180enum CubitStatus GeometryTool_force_simplify_to_plane( /* DLRefFaceList & */ void ***ref_face_list,
1181                                        int *ref_face_list_size,
1182                                          /* DLBodyList & */ void ***new_body_list,
1183                                        int *new_body_list_size, 
1184                                        enum CubitBoolean keep_old_body);
1185/* API function for GeometryTool::force_simplify_to_plane */
1186
1187enum CubitStatus GeometryTool_force_simplify_to_cylinder( /* DLRefFaceList & */ void ***ref_face_list,
1188                                           int *ref_face_list_size,
1189                                             /* DLBodyList & */ void ***new_body_list,
1190                                           int *new_body_list_size, 
1191                                           enum CubitBoolean keep_old_body);
1192/* API function for GeometryTool::force_simplify_to_cylinder */
1193
1194enum CubitStatus GeometryTool_force_simplify_to_cone( /* DLRefFaceList & */ void ***ref_face_list,
1195                                       int *ref_face_list_size,
1196                                         /* DLBodyList & */ void ***new_body_list,
1197                                       int *new_body_list_size, 
1198                                       enum CubitBoolean keep_old_body);
1199/* API function for GeometryTool::force_simplify_to_cone */
1200
1201enum CubitStatus GeometryTool_force_simplify_to_sphere( /* DLRefFaceList & */ void ***ref_face_list,
1202                                         int *ref_face_list_size,
1203                                           /* DLBodyList & */ void ***new_body_list,
1204                                         int *new_body_list_size, 
1205                                         enum CubitBoolean keep_old_body);
1206/* API function for GeometryTool::force_simplify_to_sphere */
1207
1208enum CubitStatus GeometryTool_force_simplify_to_torus( /* DLRefFaceList & */ void ***ref_face_list,
1209                                        int *ref_face_list_size,
1210                                          /* DLBodyList & */ void ***new_body_list,
1211                                        int *new_body_list_size, 
1212                                        enum CubitBoolean keep_old_body);
1213/* API function for GeometryTool::force_simplify_to_torus */
1214
1215    /* <HR><H3>Merging functions.<H3> */
1216   
1217void GeometryTool_set_geometry_factor( double fac);
1218/* API function for GeometryTool::set_geometry_factor */
1219
1220double GeometryTool_get_geometry_factor();
1221/* API function for GeometryTool::get_geometry_factor */
1222
1223void GeometryTool_set_merge_test_bbox(enum CubitBoolean tof);
1224/* API function for GeometryTool::set_merge_test_bbox */
1225
1226enum CubitBoolean GeometryTool_get_merge_test_bbox();
1227/* API function for GeometryTool::get_merge_test_bbox */
1228
1229void GeometryTool_set_merge_test_internal(int tof);
1230/* API function for GeometryTool::set_merge_test_internal */
1231
1232int GeometryTool_get_merge_test_internal();
1233/* API function for GeometryTool::get_merge_test_internal */
1234
1235  enum CubitBoolean GeometryTool_same_engine(/* DLTopologyEntityList & */ void ***topo_list, int *topo_list_size);
1236  /**<  Returns CUBIT_TRUE if all the entities have the same geometry engine and
1237    *  if that is the same one as the default.
1238    */
1239   
1240    /* GeometricModelingEngine* */ void *GeometryTool_common_engine( 
1241        /* DLTopologyEntityList& */ void ***topology_list, int *topology_list_size,
1242          /* DLTopologyBridgeList& */ void ***engine_bridges, int *engine_bridges_size,
1243        enum CubitBoolean allow_virtual_engine);
1244
1245  void GeometryTool_set_sep_after_webcut(enum CubitBoolean val);
1246  enum CubitBoolean GeometryTool_get_sep_after_webcut();
1247  /**< Gets/Sets the separate after webcut static flag.
1248    */ 
1249#ifdef __cplusplus
1250}
1251#endif
1252
1253#endif
Note: See TracBrowser for help on using the browser.