API Reference > OdGe Classes > OdGe Structure
OdGe Structure
Syntax
C++
struct OdGe { const OdGeLibVersion gLibVersion; enum EntityId { kEntity2d, kEntity3d, kPointEnt2d, kPointEnt3d, kPosition2d, kPosition3d, kPointOnCurve2d, kPointOnCurve3d, kPointOnSurface, kBoundedPlane, kCircArc2d, kCircArc3d, kConic2d, kConic3d, kCurve2d, kCurve3d, kEllipArc2d, kEllipArc3d, kLine2d, kLine3d, kLinearEnt2d, kLinearEnt3d, kLineSeg2d, kLineSeg3d, kPlanarEnt, kPlane, kRay2d, kRay3d, kSurface, kSphere, kCylinder, kTorus, kCone, kSplineEnt2d, kPolyline2d, kAugPolyline2d, kNurbCurve2d, kDSpline2d, kCubicSplineCurve2d, kSplineEnt3d, kPolyline3d, kAugPolyline3d, kNurbCurve3d, kDSpline3d, kCubicSplineCurve3d, kTrimmedCrv2d, kCompositeCrv2d, kCompositeCrv3d, kExternalSurface, kNurbSurface, kTrimmedSurface, kOffsetSurface, kEnvelope2d, kCurveBoundedSurface, kExternalCurve3d, kExternalCurve2d, kSurfaceCurve2dTo3d, kSurfaceCurve3dTo2d, kExternalBoundedSurface, kCurveCurveInt2d, kCurveCurveInt3d, kBoundBlock2d, kBoundBlock3d, kOffsetCurve2d, kOffsetCurve3d, kPolynomCurve3d, kBezierCurve3d, kObject, kFitData3d, kHatch, kTrimmedCurve2d, kTrimmedCurve3d, kCurveSampleData, kEllipCone, kEllipCylinder, kIntervalBoundBlock, kClipBoundary2d, kExternalObject, kCurveSurfaceInt, kSurfaceSurfaceInt, kHelix, kSpunSurface, kSegmentChain2d, kRevolvedSurface, kRuled, kEdgeCurve, kDummy1, kDummy2, kDummy3, kDummy4, kDummy5, kDummy6, kDummy7, kDummy8, kDummy9 }; enum ExternalEntityKind { kAcisEntity = 0, kGe3dCurveEntity = 1, kGe3dSurfaceEntity = 2, kExternalEntityUndefined, kBimEntity, kIfcEntity }; enum PointContainment { kInside, kOutside, kOnBoundary }; enum NurbSurfaceProperties { kUninit = 0x00, kOpen = 0x01, kClosed = 0x02, kPeriodic = 0x04, kRational = 0x08, kNoPoles = 0x10, kPoleAtMin = 0x20, kPoleAtMax = 0x40, kPoleAtBoth = 0x80 }; enum OffsetCrvExtType { kFillet, kChamfer, kExtend }; enum OdGeXConfig { kNotDefined = 1<<0, kUnknown = 1<<1, kLeftRight = 1<<2, kRightLeft = 1<<3, kLeftLeft = 1<<4, kRightRight = 1<<5, kPointLeft = 1<<6, kPointRight = 1<<7, kLeftOverlap = 1<<8, kOverlapLeft = 1<<9, kRightOverlap = 1<<10, kOverlapRight = 1<<11, kOverlapStart = 1<<12, kOverlapEnd = 1<<13, kOverlapOverlap = 1<<14 }; enum BooleanType { kUnion, kSubtract, kCommon }; enum ClipError { eOk, eInvalidClipBoundary, eNotInitialized }; enum ClipCondition { kInvalid, kAllSegmentsInside, kSegmentsIntersect, kAllSegmentsOutsideZeroWinds, kAllSegmentsOutsideOddWinds, kAllSegmentsOutsideEvenWinds }; enum ErrorCondition { kOk, k0This, k0Arg1, k0Arg2, kPerpendicularArg1Arg2, kEqualArg1Arg2, kEqualArg1Arg3, kEqualArg2Arg3, kLinearlyDependentArg1Arg2Arg3, kArg1TooBig, kArg1OnThis, kArg1InsideThis, kNonCoplanarGeometry, kDegenerateGeometry, kSingularPoint }; enum csiConfig { kXUnknown, kXOut, kXIn, kXTanOut, kXTanIn, kXCoincident, kXCoincidentUnbounded }; enum ssiType { kSSITransverse, kSSITangent, kSSIAntiTangent }; enum ssiConfig { kSSIUnknown, kSSIOut, kSSIIn, kSSICoincident }; enum OdGeIntersectError { kXXOk, kXXIndexOutOfRange, kXXWrongDimensionAtIndex, kXXUnknown }; enum OdGeKnotParameterization { kChord = 0x0, kSqrtChord = 0x1, kUniform = 0x2, kCustomParameterization = 0xF, kNotDefinedKnotParam = 0x10 }; };

Ge.h

Members 
Description 
const OdGeLibVersion gLibVersion; 
Version of the OdGe library being used 
kEntity2d 
Entity 2d. 
kEntity3d 
Entity 3d. 
kPointEnt2d 
Point entity 2d. 
kPointEnt3d 
Point entity 3d. 
kPosition2d 
Position 2d. 
kPosition3d 
Position 3d. 
kPointOnCurve2d 
Point on curve 2d. 
kPointOnCurve3d 
Point on curve 3d. 
kPointOnSurface 
Point on surface. 
kBoundedPlane 
Bounded plane. 
kCircArc2d 
Circular arc 2d. 
kCircArc3d 
Circular arc 3d. 
kConic2d 
Conic 2d. 
kConic3d 
Conic 3d. 
kCurve2d 
Curve 2d. 
kCurve3d 
Curve 3d. 
kEllipArc2d 
Elliptical arc 2d. 
kEllipArc3d 
Elliptical arc 3d. 
kLine2d 
Line 2d. 
kLine3d 
Line 3d. 
kLinearEnt2d 
Linear entity 2d. 
kLinearEnt3d 
Linear entity 3d. 
kLineSeg2d 
Line segment 2d. 
kLineSeg3d 
Line segment 3d. 
kPlanarEnt 
Planar entity. 
kPlane 
Plane. 
kRay2d 
Ray 2d. 
kRay3d 
Ray 3d. 
kSurface 
Surface. 
kSphere 
Sphere. 
kCylinder 
Cylinder. 
kTorus 
Torus. 
kCone 
Cone. 
kSplineEnt2d 
Spline entity 2d. 
kPolyline2d 
Polyline 2d. 
kAugPolyline2d 
Augmented polyline 2d. 
kNurbCurve2d 
Nurb curve 2d. 
kDSpline2d 
DSpline 2d. 
kCubicSplineCurve2d 
Cubic spline curve 2d. 
kSplineEnt3d 
Spline entity 3d. 
kPolyline3d 
Polyline 3d. 
kAugPolyline3d 
Augmented polyline 3d. 
kNurbCurve3d 
NurbCurve3d. 
kDSpline3d 
DSpline 3d. 
kCubicSplineCurve3d 
Cubic spline curve 3d. 
kTrimmedCrv2d 
Trimmed Curve 2d. 
kCompositeCrv2d 
Composite curve 2d. 
kCompositeCrv3d 
Composite curve 3d. 
kExternalSurface 
External Surface. 
kNurbSurface 
Nurb surface. 
kTrimmedSurface 
Trimmed surface. 
kOffsetSurface 
Offset surface. 
kEnvelope2d 
Envelope 2d. 
kCurveBoundedSurface 
Curve bounded surface. 
kExternalCurve3d 
External curve 3d. 
kExternalCurve2d 
External curve 2d. 
kSurfaceCurve2dTo3d 
Surface curve 2d to 3d. 
kSurfaceCurve3dTo2d 
Surface curve 3d to 2d. 
kExternalBoundedSurface 
External bounded surface. 
kCurveCurveInt2d 
Curve-curve intersector 2d. 
kCurveCurveInt3d 
Curve-curve intersector 3d. 
kBoundBlock2d 
Bounding block 2d. 
kBoundBlock3d 
Bounding block 3d. 
kOffsetCurve2d 
Offset curve 2d. 
kOffsetCurve3d 
Offset curve 3d. 
kPolynomCurve3d 
Polynomial curve 3d. 
kBezierCurve3d 
Bezier curve 3d. 
kObject 
Object. 
kFitData3d 
Fit data 3d. 
kHatch 
Hatch. 
kTrimmedCurve2d 
Trimmed curve 2d. 
kTrimmedCurve3d 
Trimmed curve 3d. 
kCurveSampleData 
Curve sample data. 
kEllipCone 
Elliptical cone. 
kEllipCylinder 
Elliptical cylinder. 
kIntervalBoundBlock 
Interval bounding block. 
kClipBoundary2d 
Clip boundary 2d. 
kExternalObject 
External object. 
kCurveSurfaceInt 
Curve-surface intersector. 
kSurfaceSurfaceInt 
Surface-surface intersector. 
kHelix 
Helix. 
kSpunSurface 
Spun surface. 
kSegmentChain2d 
Segment chain 2d. 
kRevolvedSurface 
Revolved surface. 
kRuled 
Ruled surface. 
kEdgeCurve 
Edge curve (for internal use only). 
kDummy1 
Dummy value 1. 
kDummy2 
Dummy value 2. 
kDummy3 
Dummy value 3. 
kDummy4 
Dummy value 4. 
kDummy5 
Dummy value 5. 
kDummy6 
Dummy value 6. 
kDummy7 
Dummy value 7. 
kDummy8 
Dummy value 8. 
kDummy9 
Dummy value 9. 
kAcisEntity = 0 
External Entity is an ACIS entity. 
kGe3dCurveEntity = 1 
External Entity is an OdGeCurve3d* entity. 
kGe3dSurfaceEntity = 2 
External Entity is an OdGeSurface3d* entity. 
kExternalEntityUndefined 
External Entity is undefined. 
kBimEntity 
External Entity is a BimRv entity. 
kIfcEntity 
External Entity is IFC entity 
kInside 
Point is inside the boundary. 
kOutside 
Point is outside the boundary. 
kOnBoundary 
Point is the boundary. 
kUninit = 0x00 
Nurb surface is uninitialized. 
kOpen = 0x01 
Nurb surface is open. 
kClosed = 0x02 
Nurb surface is closed. 
kPeriodic = 0x04 
Nurb surface is periodic. 
kRational = 0x08 
Nurb surface is rational. 
kNoPoles = 0x10 
Nurb surface has no poles. 
kPoleAtMin = 0x20 
Nurb surface has a pole at the lower bound. 
kPoleAtMax = 0x40 
Nurb surface has a pole at the upper bound. 
kPoleAtBoth = 0x80 
Nurb surface has poles at the lower and upper bounds. 
kFillet 
Fillet. 
kChamfer 
Chamfer. 
kExtend 
Extend. 
kNotDefined = 1<<0 
Configuration is not defined. 
kUnknown = 1<<1 
Unknown configuration. 
kLeftRight = 1<<2 
First curve crosses the second curve from left to right. 
kRightLeft = 1<<3 
First curve crosses the second curve from right to left. 
kLeftLeft = 1<<4 
First curve touches the second curve from the left. 
kRightRight = 1<<5 
First curve touches the second curve from the right. 
kPointLeft = 1<<6 
First curve starts or ends in the intersection point and is to the left from the second curve. 
kPointRight = 1<<7 
First curve starts or ends in the intersection point and is to the right from the second curve. 
kLeftOverlap = 1<<8 
First curve is to the left from the second curve before the intersection point and curves are overlapping after the intersection point. 
kOverlapLeft = 1<<9 
Curves are overlapping before the intersection point and first curve is to the left from the second curve after the intersection point. 
kRightOverlap = 1<<10 
First curve is to the right from the second curve before the intersection point and curves are overlapping after the intersection point. 
kOverlapRight = 1<<11 
Curves are overlapping before the intersection point and first curve is to the right from the second curve after the intersection point. 
kOverlapStart = 1<<12 
First curve starts in the intersection point and is overlapping with the second curve nearby. 
kOverlapEnd = 1<<13 
First curve ends in the intersection point and is overlapping with the second curve nearby. 
kOverlapOverlap = 1<<14 
Curves are overlapping before and after the intersection point. 
kUnion 
Boolean union. 
kSubtract 
Boolean subtraction. 
kCommon 
Boolean intersection. 
eOk 
No error. 
eInvalidClipBoundary 
Invalid clip boundary. 
eNotInitialized 
Clip boundary was not initialized. 
kInvalid 
An error occurred, probably due to invalid initialization of clipping object. 
kAllSegmentsInside 
All segments are inside the clip boundary. 
kSegmentsIntersect 
At least one segment crosses the clip boundary. 
kAllSegmentsOutsideZeroWinds 
The clipped polygon is outside the clip region, and the clip region is not encircled by the clipped polygon. 
kAllSegmentsOutsideOddWinds 
The clipped polygon is outside the clip region, and the clip region is encircled by the clipped polygon an odd number of times. This normally indicates that the clip region is inside the region enclosed by the input polygon. 
kAllSegmentsOutsideEvenWinds 
The clipped polygon is outside the clip region, and the clip region is encircled by the clipped polygon an even number of times. 
kOk 
No error. 
k0This 
This object is 0. 
k0Arg1 
Argument 1 is 0. 
k0Arg2 
Argument 2 is 0. 
kPerpendicularArg1Arg2 
Arguments 1 and 2 are perpendicular to each other. 
kEqualArg1Arg2 
Arguments 1 and 2 are equal. 
kEqualArg1Arg3 
Arguments 1 and 3 are equal. 
kEqualArg2Arg3 
Arguments 2 and 3 are equal. 
kLinearlyDependentArg1Arg2Arg3 
Arguments 1, 2, and 3 are linearly dependent. 
kArg1TooBig 
Argument 1 is too big. 
kArg1OnThis 
Argument 1 is on this object. 
kArg1InsideThis 
Argument 1 is inside this object. 
kNonCoplanarGeometry 
Geometry is not coplanar. 
kDegenerateGeometry 
Geometry is degenerate. 
kSingularPoint 
Geometry is one point. 
kXUnknown 
Unknown configuration. 
kXOut 
Transverse -- Curve neighborhood is outside this surface. 
kXIn 
Transverse -- Curve neighborhood is inside this surface. 
kXTanOut 
Tangent -- Curve neighborhood is outside this surface. 
kXTanIn 
Tangent -- Curve neighborhood is inside this surface. 
kXCoincident 
Non-zero length -- Point is on the intersection boundary. 
kXCoincidentUnbounded 
Non-zero length -- Point is on an arbitrary *point* on an unbounded intersection. 
kSSITransverse 
Non-tangent intersection. 
kSSITangent 
Tangent intersection with surface normals codirectional at any point within the component. 
kSSIAntiTangent 
Tangent intersection with surface normals antidirectional at any point within the component. 
kSSIUnknown 
Unknown configuration. 
kSSIOut 
Neighborhood is outside this surface. 
kSSIIn 
Neighborhood is inside this surface. 
kSSICoincident 
Non-zero area intersection. 
kXXOk 
No error. 
kXXIndexOutOfRange 
Index out of range. 
kXXWrongDimensionAtIndex 
Wrong dimension at index. 
kXXUnknown 
Unknown error. 
kChord = 0x0 
Chord parametrization. 
kSqrtChord = 0x1 
Chord square root parametrization. 
kUniform = 0x2 
Uniform parametrization. 
kCustomParameterization = 0xF 
Custom parametrization. 
kNotDefinedKnotParam = 0x10 
Knot parametrization isn't defined. 

The OdGe classes are used to carry out general 2D and 3D geometric operations. 

Corresponding C++ library: TD_Ge 

 

Copyright © 2002–2022. Open Design Alliance. All rights reserved.