#ifndef CATGeometryType_H
#define CATGeometryType_H

// COPYRIGHT DASSAULT SYSTEMES  1999

/**
 * @CAA2Level L1
 * @CAA2Usage U1
 */ 
/**
 * Geometric object type.
 * @param CATGeometryType
 * The generic type.
 * @param CATCurveType
 * The Curve type.
 * @param CATConicType
 * The Conic type.
 * @param CATCircleType
 * The Circle type.
 * @param CATEllipseType
 * The Ellipse type.
 * @param CATEdgeCurveType
 * The EdgeCurve type.
 * @param CATIntCurveType
 * The IntCurve type.
 * @param CATLineType
 * The line type.
 * @param CATNurbsCurveType
 * The Curve type.
 * @param CATCurveType
 * The Nurbs curve type.
 * @param CATPCurveType
 * The PCurve type.
 * @param CATPCircleType
 * The PCircle type.
 * @param CATPEllipseType
 * The PEllipse type.
 * @param CATPParabolaType
 * The Curve type.
 * @param CATCurveType
 * The PParabola type.
 * @param CATPHyperbolaType
 * The PHyperbola type.
 * @param CATPLineType
 * The Pline type.
 * @param CATPNurbsType
 * The PNurbs type.
 * @param CATIForeignPCurveType
 * The foreign Pcurve type.
 * @param CATPSplineType
 * The PSpline type.
 * @param CATSplineCurveType
 * The Splinecurve type.
 * @param CATIForeignCurveType
 * The foreign curve type.
 * @param CATProcCurveType
 * The ProcCurve type.
 * @param CATPointType
 * The point type.
 * @param CATCartesianPointType
 * The cartesian point type.
 * @param CATMacroPointType
 * The macro point type.
 * @param CATPointOnCurveType
 * The point on curve type.
 * @param CATPointOnSurfaceType
 * The point on surface type.
 * @param CATPointOnEdgeCurveType
 * The point on edge curve type.
 * @param CATSurfaceType
 * The surface type.
 * @param CATElementarySurfaceType
 * The elementary surface type.
 * @param CATCylinderType
 * The cylinder type.
 * @param CATSphereType
 * The sphere type.
 * @param CATTorusType
 * The torus type.
 * @param CATConeType
 * The cone type.
 * @param CATNurbsSurfaceType
 * The Nurbs surface type.
 * @param CATPlaneType
 * The plane type.
 * @param CATRevolutionSurfaceType
 * The revolution surface type.
 * @param CATTabulatedCylinderType
 * The tabulated cylinder type.
 * @param CATOffsetSurfaceType
 * The offset surface type.
 * @param CATIForeignSurfaceType
 * The foreign surface type.
 * @param  CATBodyType 
 * The body type.
 * @param  CATCellType
 * The cell type. 
 * @param  CATEdgeType 
 * The edge type.
 * @param  CATFaceType  
 * The face type.
 * @param  CATVertexType 
 * The vertex type.
 * @param  CATVolumeType 
 * The volume type.
 * @param  CATDomainType  
 * The domain type.
 * @param  CATLoopType   
 * The loop type.
 * @param  CATLumpType   
 * The lump type.
 * @param  CATShellType 
 * The shell type.
 * @param  CATVertexInFaceType 
 * The vertex in face type.
 * @param  CATVertexInVolumeType 
 * The vertex in volume type.
 * @param  CATWireType   
 * The wire type.
 * @param  CATLawType   
 * The law type.
 * @param  CATLinearLawType   
 * The linear law type.
 * @param  CATConstantLawType   
 * The constant law type.
 * @param  CATSplineLawType   
 * The spline law type.
 */
#define CATGeometricType        unsigned int
/** @nodoc */
#define CATLawType                          0x10000001
/** @nodoc */	
#define CATCompositeLawType                 0x11000002	
/** @nodoc */
#define CATConstantLawType                  0x12000002	
/** @nodoc */
#define CATLinearLawType                    0x13000002	
/** @nodoc */
#define CATSTypeLawType                     0x14000002
/** @nodoc */
#define CATSplineLawType                    0x15000002

/** @nodoc */
#define CATGeometryType                     0x00000001

/** @nodoc */
#define CATCloudOfPointsType                0x02000002
/** @nodoc */
#define CATSetOfPointsType                  0x02100003

/** @nodoc */
#define CATCurveType                        0x03000002
/** @nodoc */
#define CATBoundedCurveType                 0x03200003	
/** @nodoc */
#define CATBSplineCurveType                 0x03210004			
/** @nodoc */
#define CATConicType                        0x03300003
/** @nodoc */
#define CATCircleType                       0x03310004	
/** @nodoc */
#define CATEllipseType                      0x03320004	
/** @nodoc */
#define CATHyperbolaType                    0x03330004	
/** @nodoc */
#define CATParabolaType                     0x03340004	
/** @nodoc */
#define CATHelixType                        0x03350004	
/** @nodoc */
#define CATEdgeCurveType                    0x03400003	
/** @nodoc */
#define CATIntCurveType                     0x03410004	
/** @nodoc */
#define CATMergedCurveType                  0x03420004	
/** @nodoc */
#define CATSimCurveType                     0x03430004	
/** @nodoc */
#define CATContactCurveType                 0x03440004	
/** @nodoc */
#define CATLineType                         0x03500003	
/** @nodoc */
#define CATNurbsCurveType                   0x03600003	
/** @nodoc */
#define CATPCurveType                       0x03700003	
/** @nodoc */
#define CATPCircleType                      0x03710004	
/** @nodoc */
#define CATPCurveEquationType               0x03720004	
/** @nodoc */
#define CATPEllipseType                     0x03730004
/** @nodoc */
#define CATPParabolaType                    0x03780004
/** @nodoc */
#define CATPHyperbolaType	                  0x03790004
/** @nodoc */
#define CATPLineType                        0x03740004	
/** @nodoc */
#define CATPNurbsType  	                    0x03750004	
/** @nodoc */
#define CATIForeignPCurveType               0x03760004
/** @nodoc */
#define CATPSplineType                      0x03770004  
/** @nodoc */
#define CATNonLinearTransfoPCurveType       0x037A0004
/** @nodoc */
#define CATSplineCurveType                  0x03800003
/** @nodoc */
#define CATIForeignCurveType                0x03900003
/** @nodoc */
#define CATProcCurveType                    0x03A00003
	
/** @nodoc */
#define CATPointType                        0x04000002
/** @nodoc */	
#define CATCartesianPointType               0x04100003
/** @nodoc */
#define CATMacroPointType                   0x04200003	
/** @nodoc */
#define CATPointOnCurveType                 0x04300003	
/** @nodoc */
#define CATPointOnEdgeCurveType             0x04310004	
/** @nodoc */
#define CATPointOnSurfaceType               0x04400003	

/** @nodoc */
#define CATSurfaceType                      0x06000002
/** @nodoc */
#define CATChamferSurfaceType               0x06010004
/** @nodoc */
#define CATBoundedSurfaceType               0x06020004
/** @nodoc */
#define CATBSplineSurfaceType               0x06021005
/** @nodoc */
#define CATCircularSweepType                0x06030004
/** @nodoc */
#define CATDraftSurfaceType                 0x06040004
/** @nodoc */
#define CATElementarySurfaceType            0x06050004
/** @nodoc */
#define CATCylinderType                     0x06051005
/** @nodoc */
#define CATSphereType                       0x06052005
/** @nodoc */
#define CATConeType                         0x06053005
/** @nodoc */
#define CATTorusType                        0x06054005
/** @nodoc */
#define CATFilletSurfaceType                0x06060004
/** @nodoc */
#define CATNurbsSurfaceType                 0x06070004
/** @nodoc */
#define CATOffsetSurfaceType                0x06080004
/** @nodoc */
#define CATPlaneType                        0x06090004
/** @nodoc */
#define CATRevolutionSurfaceType            0x060A0004
/** @nodoc */
#define CATRuledSurfaceType                 0x060B0004
/** @nodoc */
#define CATSweepSurfaceType                 0x060C0004
/** @nodoc */
#define CATTabulatedCylinderType            0x060D0004
/** @nodoc */
#define CATProcOffsetSurfaceType            0x060E0004
/** @nodoc */
#define CATGenericFilletType                0x060F0004

/** @nodoc */
#define CATGenericRuledSurfaceType          0x06100004
/** @nodoc */
#define CATNonLinearTransfoSurfaceType      0x06110004
/** @nodoc */
#define CATLinearTransfoSurfaceType         0x06120004
/** @nodoc */
#define CATDirectionalSurfaceType           0x06130004
/** @nodoc */
#define CATIForeignSurfaceType              0x06140004
/** @nodoc */
#define CATSweepSegmentSurfaceType          0x06150004
/** @nodoc */
#define CATSpecSurfaceType                  0x06160004


/** @nodoc */
#define CATUserGeometryType                 0x07000002
	
/** @nodoc */
#define CATBodyType                         0x08000002	

/** @nodoc */	
#define CATCellType                         0x09000002	
/** @nodoc */
#define CATEdgeType                         0x09100003	
/** @nodoc */
#define CATFaceType                         0x09200003	
/** @nodoc */
#define CATVertexType                       0x09300003	
/** @nodoc */
#define CATVolumeType                       0x09400003
	
/** @nodoc */
#define CATDomainType                       0x0A000002	
/** @nodoc */
#define CATLoopType                         0x0A100003	
/** @nodoc */
#define CATLumpType                         0x0A200003	
/** @nodoc */
#define CATShellType                        0x0A300003
/** @nodoc */
#define CATVertexInFaceType                 0x0A400003
/** @nodoc */	
#define CATVertexInVolumeType               0x0A500003	
/** @nodoc */
#define CATWireType                         0x0A600003	

/** @nodoc */
#define CATClayType                         0x0B000002
/** @nodoc */
#define CATCloudType                        0x0B100003
/** @nodoc */
#define CATScanType                         0x0B200003
/** @nodoc */
#define CATTessClayType                     0x0C000002
/** @nodoc */
#define CATTessCloudType                    0x0C100003
/** @nodoc */
#define CATTessScanType                     0x0C200003

/** @nodoc */
#define CATCldGenEntityType                 0x0D000002
/** @nodoc */
#define CATCldBodyType                      0x0D100003
/** @nodoc */
#define CATCldCellType                      0x0D200003
/** @nodoc */
#define CATCldUniCellType                   0x0D210004
/** @nodoc */
#define CATCldCloudType                     0x0D211005
/** @nodoc */
#define CATCldScanType                      0x0D212005
/** @nodoc */
#define CATCldGridType                      0x0D213005
/** @nodoc */
#define CATCldPolygonType                   0x0D214005
/** @nodoc */
#define CATCldMultiCellType                 0x0D220004
/** @nodoc */
#define CATCldSetOfScansType                0x0D222005
/** @nodoc */
#define CATCldSetOfGridsType                0x0D223005
/** @nodoc */
#define CATCldScanOnPolygonType             0x0D212106
/** @nodoc */
#define CATCldSetOfPointsType               0x0E000002
/** @nodoc */
#define CATCldSetOfPointsFType              0x0E100003
/** @nodoc */
#define CATCldSetOfPointsDType              0x0E200003
  
#endif