cgma
GeometryDefines.h
Go to the documentation of this file.
00001 /* Class:       GeometryDefines 
00002  * Description: GeometryDefines - all global geometric definitions for CUBIT.
00003  * Owner:       David White
00004  * Checked by:
00005  * Version:
00006  */
00007 
00008 #ifndef GEOMETRY_DEFINES_HPP
00009 #define GEOMETRY_DEFINES_HPP
00010 
00011 #include <stdio.h>
00012 #include <stdlib.h>
00013 #include <sys/types.h>
00014 #include "CubitString.hpp"
00015 
00016 /* CUBIT_RESABS - Values less than CUBIT_RESABS are considered to be zero. */
00017 #ifdef __cplusplus
00018 const double CUBIT_RESABS = 1.0E-12;
00019 #else
00020 #define CUBIT_RESABS 1.0E-12
00021 #endif
00022 
00023 /* GEOMETRY_RESABS - If the distance between two points is less */
00024 /* than GEOMETRY_RESABS the points are considered to be identical. */
00025 #ifdef __cplusplus
00026 const double GEOMETRY_RESABS = 1.0E-6;
00027 const double DEFAULT_GEOM_FACTOR = 500.0;
00028 #else
00029 #define GEOMETRY_RESABS 1.0E-6
00030 #define DEFAULT_GEOM_FACTOR 500.0
00031 #endif
00032 
00033 /* Types of solid modeler engines. */
00034 enum SolidModelerType 
00035 { 
00036    NOT_A_SOLID_MODELER,
00037    OCC,
00038    ACIS,
00039    PROE_GEOM,                  /* Normal Pro/E model */
00040    PROE_PART,
00041    PROE_ASSEMBLY,
00042    PROE_FEM_MESH_SOLID,        /* Pro/Mesh models... */
00043    PROE_FEM_MESH_SHELL,
00044    PROE_FEM_MESH_MIXED,
00045    PROE_FEM_MESH_BOUNDARY,
00046    PROE_FEM_MESH_QUILT
00047 } ;
00048 
00049 /* Types of underlying geometric representations. */
00050 enum GeometricRepresentationType 
00051 {
00052    GEOMTYPE_NONE,
00053    SOLID_MODEL,
00054    FACETTED,
00055    MESH_BASED,
00056    COMPOSITE
00057 };
00058 
00059 /* Types of geometry for the various GeometryEntities. */
00060 enum GeometryType
00061 {
00062     /* Point types */
00063   UNDEFINED_POINT_TYPE,
00064   
00065     /* Curve types */
00066   ARC_CURVE_TYPE,
00067   ELLIPSE_CURVE_TYPE,
00068   PARABOLA_CURVE_TYPE,
00069   SEGMENTED_CURVE_TYPE, /*curve defined by a chain of linear segments. */
00070   SPLINE_CURVE_TYPE,
00071   STRAIGHT_CURVE_TYPE,
00072   POINT_CURVE_TYPE,
00073   HELIX_CURVE_TYPE,
00074   HYPERBOLA_CURVE_TYPE,
00075   UNDEFINED_CURVE_TYPE,
00076   
00077     /* Surface types */
00078   CONE_SURFACE_TYPE,
00079   PLANE_SURFACE_TYPE,
00080   SPHERE_SURFACE_TYPE,
00081   SPLINE_SURFACE_TYPE,
00082   TORUS_SURFACE_TYPE,
00083   BEST_FIT_SURFACE_TYPE,
00084   FACET_SURFACE_TYPE,
00085   CYLINDER_SURFACE_TYPE, // only currently defined in non open Engine
00086   REVOLUTION_SURFACE_TYPE,  //OCC surface type
00087   EXTRUSION_SURFACE_TYPE,   //OCC surface type
00088   OFFSET_SURFACE_TYPE,      //OCC surface type
00089   UNDEFINED_SURFACE_TYPE,
00090   
00091     /* Lump types */
00092   UNDEFINED_LUMP_TYPE
00093 };
00094 
00095 enum ImprintType
00096 {
00097   NO_IMPRINT=0,
00098   ONLY_INVOLVED_BODIES,
00099   INCLUDE_NEIGHBORS,
00100   TOL_IMPRINT,
00101   TOL_IMPRINT_INCLUDE_NEIGHBORS
00102 };
00103 
00104 /* loops may be the following types */
00105 enum LoopType
00106 {
00107   /* Unknown loop type */
00108   LOOP_TYPE_UNKNOWN,
00109   
00110   /* The external loop of a surface */
00111   LOOP_TYPE_EXTERNAL,
00112   
00113   /* The loop is a hole */
00114   LOOP_TYPE_HOLE,
00115   
00116   /* The loop is a u or v periodic loop (only applies to periodic surfaces)
00117    * An example of this is a cylindrical surface with only 2 loops with each
00118    * loop defining a cap of the cylinder. 
00119    * If its a u periodic loop, the face is periodic in u */
00120   LOOP_TYPE_U_PERIODIC,
00121   LOOP_TYPE_V_PERIODIC
00122 };
00123 
00124 struct ModelExportOptions
00125 {
00126   //this option only relevant to IGES export
00127   unsigned short export_as_solid : 1;
00128 
00129   //Granite, Acis option
00130   CubitString logfile_name;
00131 };
00132 
00133 
00134 
00135 #endif
00136 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines