CFx SDK Documentation  2020SP3
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
OdModelerGeometry Class Referenceabstract

#include <ModelerGeometry.h>

Inheritance diagram for OdModelerGeometry:
OdRxObject

Classes

struct  NumIsolines
 

Public Types

enum  MaterialState { kNoMaterials = 0, kHasMaterials = 1, kUnknown = 2 }
 
enum  geomType {
  kUndefined = 0, kBody = 1, kSolid = 2, kRegion = 3,
  kSurface = 4
}
 

Public Member Functions

 ODRX_DECLARE_MEMBERS (OdModelerGeometry)
 
virtual OdResult in (OdStreamBuf *pStreamBuf, AfTypeVer *typeVer=0, bool standardSaveFlag=true)=0
 
virtual OdResult out (OdStreamBuf *pStreamBuf, AfTypeVer typeVer, bool standardSaveFlag=true) const =0
 
virtual bool brep (OdBrBrep &brBrep) const =0
 
virtual OdResult setSubentPath (OdBrEntity &, OdDbFullSubentPath &)
 
virtual OdResult generateMesh (const OdBrMesh2dFilter &filter, OdBrMesh2d &mesh2d)
 
virtual bool setFACETRES (double facetRes)=0
 
virtual bool worldDraw (OdGiCommonDraw *pWd, OdUInt32 geomType, const NumIsolines *pNumIsolines=0)=0
 
virtual bool drawSilhouettes (OdGiViewportDraw *pVd)=0
 
virtual OdResult getCachedSilhouettes (OdGeCurve3dPtrArray *cachedSilhouettes)=0
 
virtual bool explode (OdDbEntityPtrArray &entitySet) const =0
 
virtual bool getTransformation (OdGeMatrix3d &xfm)=0
 
virtual void transformBy (const OdGeMatrix3d &xfm)=0
 
virtual void createBox (double xLen, double yLen, double zLen)=0
 
virtual void createFrustum (double height, double xRadius, double yRadius, double topXRadius)=0
 
virtual void createSphere (double radius)=0
 
virtual void createTorus (double majorRadius, double minorRadius)=0
 
virtual void createWedge (double xLen, double yLen, double zLen)=0
 
virtual OdResult extrude (const OdDbRegion *pRegion, double height, double taperAngle, bool isSolid=true)=0
 
virtual OdResult revolve (const OdDbRegion *pRegion, const OdGePoint3d &axisPoint, const OdGeVector3d &axisDir, double angleOfRevolution, bool isSolid=true)=0
 
virtual void ClearColorAttributes ()=0
 
virtual void ClearMaterialAttributes ()=0
 
virtual void ClearMaterialMapperAttributes ()=0
 
virtual MaterialState hasMaterials () const
 
virtual bool hasTrueColorAttributes () const =0
 
virtual OdResult getPlane (OdGePlane &regionPlane) const =0
 
virtual bool setMMPerUnit (double mmPerUnit)=0
 
virtual bool getMMPerUnit (double &mmPerUnit) const =0
 
virtual geomType bodyType () const =0
 
virtual OdResult booleanOper (OdDb::BoolOperType operation, OdSmartPtr< OdModelerGeometry > otherRegion)=0
 
virtual OdResult booleanOper (OdDb::BoolOperType operation, const OdSmartPtr< OdModelerGeometry > pModelerPar, OdDbEntityPtrArray &intersectionEntities)=0
 
virtual OdResult getArea (double &regionArea) const =0
 
virtual OdResult getPerimeter (double &) const =0
 
virtual OdResult getAreaProp (const OdGePoint3d &origin, const OdGeVector3d &xAxis, const OdGeVector3d &yAxis, double &perimeter, double &area, OdGePoint2d &centroid, double momInertia[2], double &prodInertia, double prinMoments[2], OdGeVector2d prinAxes[2], double radiiGyration[2], OdGePoint2d &extentsLow, OdGePoint2d &extentsHigh) const =0
 
virtual OdResult clear ()=0
 
virtual OdResult extrudeAlongPath (const OdDbRegion *region, const OdDbCurve *path, double taperAngle=0.0, bool isSolid=true)=0
 
virtual OdResult imprintEntity (const OdDbEntity *pEntity)=0
 
virtual OdResult checkInterference (const OdDb3dSolid *otherSolid, bool createNewSolid, bool &solidsInterfere, OdDb3dSolidPtr &commonVolumeSolid) const =0
 
virtual OdResult getMassProp (double &volume, OdGePoint3d &centroid, double momInertia[3], double prodInertia[3], double prinMoments[3], OdGeVector3d prinAxes[3], double radiiGyration[3], OdGeExtents3d &extents) const =0
 
virtual OdResult getSection (const OdGePlane &plane, OdDbRegionPtr &sectionRegion, OdDbEntityPtrArray *pSectionCurves=NULL) const =0
 
virtual OdResult getSlice (const OdGePlane &plane, bool getNegHalfToo, OdDb3dSolidPtr &negHalfSolid)=0
 
virtual OdResult getSlice (OdDbSurface *pSurface, bool bGetNegHalfToo, OdDb3dSolidPtr &pNegHalfSolid)=0
 
virtual OdResult cleanBody ()=0
 
virtual OdResult offsetBody (double offsetDistance)=0
 
virtual OdResult separateBody (OdDb3dSolidPtrArray &newSolids)=0
 
virtual OdResult createExtrudedObject (OdDbEntity *pSweepEnt, const OdGeVector3d &directionVec, OdDbSweepOptions &sweepOptions, bool isSolid=true, bool bHistoryEnabled=false)=0
 
virtual OdResult createLoftedObject (OdDbEntityPtrArray &crossSectionCurves, OdDbEntityPtrArray &guideCurves, OdDbEntity *pPathCurve, OdDbLoftOptions &loftOptions, bool isSolid=true)=0
 
virtual OdResult createPyramid (double height, int sides, double radius, double topRadius=0.0)=0
 
virtual OdResult createRevolvedObject (OdDbEntity *pRevEnt, const OdGePoint3d &axisPnt, const OdGeVector3d &axisDir, double revAngle, double startAngle, OdDbRevolveOptions &revolveOptions, bool isSolid=true, bool bHistoryEnabled=false)=0
 
virtual OdResult createSweptObject (OdDbEntity *pSweepEnt, OdDbEntity *pPathEnt, OdDbSweepOptions &sweepOptions, bool isSolid=true, bool bHistoryEnabled=false)=0
 
virtual OdResult checkCrossSectionCurves (OdDbEntityPtrArray &crossSectionCurves, bool &allOpen, bool &allClosed, bool &allPlanar, bool displayErrorMessages=false)=0
 
virtual OdResult checkGuideCurves (OdDbEntityPtrArray &guideCurves, bool displayErrorMessages=false)=0
 
virtual OdResult checkPathCurve (OdDbEntity *pPathCurve, bool displayErrorMessages=false)=0
 
virtual OdResult checkSweepCurve (OdDbEntity *pSweepEnt, OdDb::Planarity &planarity, OdGePoint3d &pnt, OdGeVector3d &vec, bool &closed, double &approxArcLen, bool displayErrorMessages=false)=0
 
virtual OdResult checkSweepPathCurve (OdDbEntity *pPathEnt, bool displayErrorMessages=false)=0
 
virtual OdResult checkRevolveCurve (OdDbEntity *pRevEnt, const OdGePoint3d &axisPnt, const OdGeVector3d &axisDir, bool &closed, bool &endPointsOnAxis, bool &planar, bool displayErrorMessages=false)=0
 
virtual OdResult createFrom (const OdDbEntity *pFromEntity)=0
 
virtual OdResult convertToRegion (OdDbEntityPtrArray &regions)=0
 
virtual OdResult thicken (double thickness, bool bBothSides, OdDb3dSolidPtr &pSolid) const =0
 
virtual OdResult intersectWith (const OdDbEntity *ent, OdDb::Intersect intType, OdGePoint3dArray &points, OdGsMarker thisGsMarker, OdGsMarker otherGsMarker) const =0
 
virtual OdResult intersectWith (const OdDbEntity *ent, OdDb::Intersect intType, const OdGePlane &projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker, OdGsMarker otherGsMarker) const =0
 
virtual OdResult copySubEntity (const OdDbSubentId &subentId, OdDbEntityPtr &newEntity) const =0
 
virtual OdResult taperFaces (const OdArray< OdDbSubentId * > &faceSubentIds, const OdGePoint3d &basePoint, const OdGeVector3d &draftVector, double draftAngle)=0
 
virtual OdResult removeFaces (const OdArray< OdDbSubentId * > &faceSubentIds)=0
 
virtual OdResult offsetFaces (const OdArray< OdDbSubentId * > &faceSubentIds, double offsetDistance)=0
 
virtual OdResult shellBody (const OdArray< OdDbSubentId * > &faceSubentIds, double offsetDistance)=0
 
virtual OdResult transformFaces (const OdArray< OdDbSubentId * > &faceSubentIds, const OdGeMatrix3d &matrix)=0
 
virtual OdResult getSubentPathsAtGsMarker (OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &viewXform, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *entAndInsertStack=0) const =0
 
virtual OdResult getGsMarkersAtSubentPath (const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const =0
 
virtual OdDbSubentId internalSubentId (void *ent) const =0
 
virtual voidinternalSubentPtr (const OdDbSubentId &id) const =0
 
virtual bool getNurbCurvesCache (OdGeCurve3dPtrArray &) const
 
virtual OdResult setBody (const void *)
 
virtual voidbody () const
 
virtual OdResult setSubentColor (const OdDbSubentId &subentId, const OdCmColor &color)=0
 
virtual OdResult getSubentColor (const OdDbSubentId &subentId, OdCmColor &color) const =0
 
virtual OdResult setSubentMaterial (const OdDbSubentId &subentId, OdDbObjectId matId)=0
 
virtual OdResult getSubentMaterial (const OdDbSubentId &subentId, OdUInt64 &matId) const =0
 
virtual OdResult setSubentMaterialMapper (const OdDbSubentId &subentId, OdGeMatrix3d &mx, OdUInt8 &projection, OdUInt8 &tiling, OdUInt8 &autoTransform)=0
 
virtual OdResult getSubentMaterialMapper (const OdDbSubentId &subentId, OdGeMatrix3d &mx, OdUInt8 &projection, OdUInt8 &tiling, OdUInt8 &autoTransform) const =0
 
virtual OdResult chamferEdges (const OdArray< OdDbSubentId * > &edgeSubentIds, const OdDbSubentId &baseFaceSubentId, double baseDist, double otherDist)=0
 
virtual OdResult filletEdges (const OdArray< OdDbSubentId * > &edgeSubentIds, const OdGeDoubleArray &radius, const OdGeDoubleArray &startSetback, const OdGeDoubleArray &endSetback)=0
 
virtual OdResult createSectionObjects (const OdGePlane &sectionPlane, OdDbEntityPtrArray &sectionObjects) const =0
 
virtual OdResult createInterferenceObjects (OdDbEntityPtrArray &interferenceObjects, OdDbEntityPtr pEntity, unsigned int flags) const =0
 
virtual OdResult sliceByPlane (const OdGePlane &slicePlane, OdDbSurfacePtr &pNegHalfSurface, OdDbSurfacePtr &pNewSurface, bool bNotModifyItself)=0
 
virtual OdResult sliceBySurface (const OdDbSurfacePtr pSlicingSurface, OdDbSurfacePtr &pNegHalfSurface, OdDbSurfacePtr &pNewSurface, bool bNotModifyItself)=0
 
virtual OdResult extrudeFaces (const OdArray< OdDbSubentId * > &faceSubentIds, double height, double taper)=0
 
virtual OdResult extrudeFacesAlongPath (const OdArray< OdDbSubentId * > &faceSubentIds, const OdDbCurve *path)=0
 
virtual OdResult ChangeFacesDoubleSidedParam (bool isDoubleSided)=0
 
virtual OdResult convertToNurbSurface (OdDbNurbSurfaceArray &nurbSurfaceArray)=0
 
virtual OdResult get (int &iUDegree, int &iVDegree, bool &bRational, int &iUNumControlPoints, int &iVNumControlPoints, OdGePoint3dArray &ctrlPtsArr, OdGeDoubleArray &weights, OdGeKnotVector &uKnots, OdGeKnotVector &vKnots) const =0
 
virtual OdResult set (int iUDegree, int iVDegree, bool bRational, int iUNumControlPoints, int iVNumControlPoints, const OdGePoint3dArray &ctrlPtsArr, const OdGeDoubleArray &weights, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots)=0
 
virtual OdResult getNumberOfControlPointsInU (int &iCount) const =0
 
virtual OdResult getNumberOfControlPointsInV (int &iCount) const =0
 
virtual OdResult getNumberOfKnotsInU (int &iCount) const =0
 
virtual OdResult getNumberOfKnotsInV (int &iCount) const =0
 
virtual OdResult getUKnots (OdGeKnotVector &knots) const =0
 
virtual OdResult getVKnots (OdGeKnotVector &knots) const =0
 
virtual OdResult getDegreeInU (int &iDegree) const =0
 
virtual OdResult getDegreeInV (int &iDegree) const =0
 
virtual OdResult isClosedInU (bool &bIsClosed) const =0
 
virtual OdResult isClosedInV (bool &bIsClosed) const =0
 
virtual OdResult isPeriodicInU (bool &bIsPeriodic) const =0
 
virtual OdResult isPeriodicInV (bool &bIsPeriodic) const =0
 
virtual OdResult getPeriodInU (double &dPeriod) const =0
 
virtual OdResult getPeriodInV (double &dPeriod) const =0
 
virtual OdResult evaluate (double dU, double dV, OdGePoint3d &pos) const =0
 
virtual OdResult evaluate (double dU, double dV, OdGePoint3d &pos, OdGeVector3d &uDeriv, OdGeVector3d &vDeriv) const =0
 
virtual OdResult evaluate (double dU, double dV, OdGePoint3d &pos, OdGeVector3d &uDeriv, OdGeVector3d &vDeriv, OdGeVector3d &uuDeriv, OdGeVector3d &uvDeriv, OdGeVector3d &vvDeriv) const =0
 
virtual OdResult evaluate (double dU, double dV, int iDerivDegree, OdGePoint3d &point, OdGeVector3dArray &derivatives) const =0
 
virtual OdResult isRational (bool &bIsRational) const =0
 
virtual OdResult isPlanar (bool &bIsPlanar, OdGePoint3d &ptOnSurface, OdGeVector3d &normal) const =0
 
virtual OdResult isPointOnSurface (const OdGePoint3d &point, bool &bOnSurface) const =0
 
virtual OdResult getNormal (double dU, double dV, OdGeVector3d &normal) const =0
 
virtual OdResult getNumberOfSpansInU (int &iSpan) const =0
 
virtual OdResult getNumberOfSpansInV (int &iSpan) const =0
 
virtual OdResult getIsolineAtU (double dNumberSegments, OdDbCurvePtrArray &lineSegments) const =0
 
virtual OdResult getIsolineAtV (double dNumberSegments, OdDbCurvePtrArray &lineSegments) const =0
 
virtual OdResult InsertKnot (double dVal, int iUorV)=0
 
virtual OdResult InsertControlPointsAtU (double dU, const OdGePoint3dArray &vCtrlPts, const OdGeDoubleArray &vWeights)=0
 
virtual OdResult InsertControlPointsAtV (double dV, const OdGePoint3dArray &uCtrlPts, const OdGeDoubleArray &uWeights)=0
 
virtual OdResult RemoveControlPointsAtU (int iUDegree)=0
 
virtual OdResult RemoveControlPointsAtV (int iVDegree)=0
 
virtual OdResult rebuild (int iUDegree, int iVDegree, int iNumUCtrlPts, int iNumVCtrlPts, bool bRestore)=0
 
virtual OdResult modifyPositionAndTangent (double dU, double dV, const OdGePoint3d &point, const OdGeVector3d *uDeriv, const OdGeVector3d *vDeriv)=0
 
virtual OdResult getParameterOfPoint (const OdGePoint3d &point, double &dU, double &dV) const =0
 
virtual OdResult getControlPoints (int &iUCount, int &iVCount, OdGePoint3dArray &points) const =0
 
virtual OdResult setControlPoints (int iUCount, int iVCount, const OdGePoint3dArray &points)=0
 
virtual OdResult getControlPointAndWeight (int iUIndex, int iVIndex, OdGePoint3d &point, double &weight, bool &bIsRational) const =0
 
virtual OdResult setControlPointAndWeight (int iUIndex, int iVIndex, const OdGePoint3d &point, double weight)=0
 
virtual OdResult setColorToSubents (OdCmColor const &color)=0
 
virtual OdResult setMaterialToSubents (OdDbObjectId materialId)=0
 
virtual OdResult setMaterialResolver (const OdMaterialResolver *pResolver)=0
 
virtual OdResult setMaterialMapperToSubents (OdGeMatrix3d &mx, OdUInt8 &projection, OdUInt8 &tiling, OdUInt8 &autoTransform)=0
 
virtual OdResult generateSectionGeometry (const OdDbSection *pSection, OdDbEntityPtrArray &sourceEntArr, OdArray< OdDbEntityPtr > &intBoundaryEnts, OdArray< OdDbEntityPtr > &intFillEnts, OdArray< OdDbEntityPtr > &backgroundEnts, OdArray< OdDbEntityPtr > &foregroundEnts, OdArray< OdDbEntityPtr > &curveTangencyEnts, bool bIsSetProperties)=0
 
virtual OdResult trimSurface (const OdDbObjectIdArray &toolIds, const OdDbObjectIdArray &toolCurveIds, const OdGeVector3dArray &projVectors, const OdGePoint3d &pickPoint, const OdGeVector3d &viewVector, bool bAutoExtend, bool bAssociativeEnabled)=0
 
virtual OdResult projectOnToEntity (const OdDbEntity *pEntityToProject, const OdGeVector3d &projectionDirection, OdDbEntityPtrArray &projectedEntities) const =0
 
virtual OdResult createSculptedSolid (OdDbEntityPtrArray &limitingBodies, const OdGeIntArray &limitingFlags)=0
 
virtual OdResult rayTestEntities (const OdGePoint3d &rayBasePoint, const OdGeVector3d &rayDir, double dRayRadius, std::vector< OdDbEntityPtr > &i_entities, OdArray< OdDbSubentId > &o_subEntIds, std::vector< int > &o_indexentities, OdGeDoubleArray &parameters) const =0
 
virtual OdResult rayTestSolids (const OdGePoint3d &rayBasePoint, const OdGeVector3d &rayDir, double dRayRadius, std::vector< OdDb3dSolidPtr > &i_solids, OdArray< OdDbSubentId > &o_subEntIds, std::vector< int > &o_indexsolids, OdGeDoubleArray &parameters) const =0
 
virtual OdResult rayTest (const OdGePoint3d &rayBasePoint, const OdGeVector3d &rayDir, double rayRadius, OdArray< OdDbSubentId > &subEntIds, OdGeDoubleArray &parameters) const =0
 
virtual OdResult createFilletSurface (OdDbSurfacePtr &surf1, const OdGePoint3d &pickPt1, OdDbSurfacePtr &surf2, const OdGePoint3d &pickPt2, double dRadius, OdDb::FilletTrimMode trimMode, const OdGeVector3d &projDir)=0
 
virtual OdResult extendEdges (OdDbFullSubentPathArray &edgesId, double dExtDist, EdgeExtensionType extOption)=0
 
virtual OdResult getObjectMesh (const OdDbFaceterSettings *faceter, OdGePoint3dArray &vertexArray, OdInt32Array &faceArray, OdGiFaceData *&faceData)=0
 
virtual OdResult getBoundingBox (OdGeExtents3d &box)=0
 
virtual OdResult generateSectionGeometry (SectArgs &sectArgs, OdDbEntity *pEnt, bool *bHasForeground)=0
 
virtual OdResult createCachedCurves (OdGeCurve3dPtrArray &pCurves)=0
 
virtual OdResult convertTo (const OdGePoint3dArray &arrVertexes, const OdInt32Array &arrEdges, const OdInt32Array &arrFaces, OdGiFaceData &fd, OdInt32Array &arrFacesColors, OdInt32Array &arrFacesMaterials, OdDbEntity *pEntity)=0
 
- Public Member Functions inherited from OdRxObject
 ODRX_HEAP_OPERATORS ()
 
 OdRxObject ()
 
virtual ~OdRxObject ()
 
virtual OdRxObjectqueryX (const OdRxClass *pClass) const
 
virtual OdRxObjectx (const OdRxClass *pClass) const
 
virtual OdRxClassisA () const
 
virtual void addRef ()=0
 
virtual void release ()=0
 
virtual long numRefs () const
 
bool isKindOf (const OdRxClass *pClass) const
 
virtual OdRxObjectPtr clone () const
 
virtual void copyFrom (const OdRxObject *pSource)
 
virtual OdRx::Ordering comparedTo (const OdRxObject *pOther) const
 
virtual bool isEqualTo (const OdRxObject *pOther) const
 

Protected Member Functions

 OdModelerGeometry ()
 

Additional Inherited Members

- Static Public Member Functions inherited from OdRxObject
static OdRxObjectPtr cast (const OdRxObject *pointer)
 
static OdRxClassdesc ()
 

Detailed Description

This class defines the interface for classes that provide conversion services for ACIS SAT and SAB data.

Remarks
This class is used to convert ACIS data between various versions of SAT and SAB.

For example, if a version 2004 .dwg file is saved as an R15 .dxf file, the SAB data in the 2004 file must be converted to version 700 SAT, so as to be be valid within the R15 .dxf file.

Corresponding C++ library: ModelerGeometry <group Other_Classes>

Definition at line 77 of file ModelerGeometry.h.

Member Enumeration Documentation

◆ geomType

Geometry type.

Enumerator
kUndefined 
kBody 
kSolid 
kRegion 
kSurface 

Definition at line 429 of file ModelerGeometry.h.

◆ MaterialState

Describes a material state.

Enumerator
kNoMaterials 
kHasMaterials 
kUnknown 

Definition at line 387 of file ModelerGeometry.h.

Constructor & Destructor Documentation

◆ OdModelerGeometry()

OdModelerGeometry::OdModelerGeometry ( )
inlineprotected

Definition at line 80 of file ModelerGeometry.h.

Member Function Documentation

◆ body()

virtual void* OdModelerGeometry::body ( ) const
inlinevirtual

Definition at line 1119 of file ModelerGeometry.h.

◆ bodyType()

virtual geomType OdModelerGeometry::bodyType ( ) const
pure virtual

Returns the body type of this ModelerGeometry object:

Remarks
bodyType returns one of the following:

Value kUndefined 0 kBody 1 kSolid 2 kRegion 3

◆ booleanOper() [1/2]

virtual OdResult OdModelerGeometry::booleanOper ( OdDb::BoolOperType  operation,
const OdSmartPtr< OdModelerGeometry pModelerPar,
OdDbEntityPtrArray intersectionEntities 
)
pure virtual

Performs a Boolean operation between this ModelerGeometry object and another ModelerGeometry object.

Parameters
operation[in] Type of Boolean operation.
pModelerPar[in] Pointer to the other ModelerGeometry object which also will contain the result of the Boolean operation.
intersectionEntities[out] Array of intersection entities.
Returns
Returns eOk if Boolean operation is successful or an appropriate error code if not. If ModelerGeometry is null, eInvalidInput is returned.
Remarks
Possible operation types are: kBoolUnite - Unites two ModelerGeometry objects into one. kBoolIntersect - Returns the intersection of two ModelerGeometry objects. kBoolSubtract - Subtracts the second ModelerGeometry object from the first one.

◆ booleanOper() [2/2]

virtual OdResult OdModelerGeometry::booleanOper ( OdDb::BoolOperType  operation,
OdSmartPtr< OdModelerGeometry otherRegion 
)
pure virtual

Performs a Boolean operation between this ModelerGeometry object and another ModelerGeometry object.

Parameters
operation[in] Type of Boolean operation.
otherRegion[out] Pointer to the other ModelerGeometry object which also will contain the result of the Boolean operation.
Returns
Returns eOk if the Boolean operation is successful or an appropriate error code if not. If ModelerGeometry is null, eInvalidInput is returned.
Remarks
Possible operation types are: kBoolUnite - Unites two ModelerGeometry objects into one. kBoolIntersect - Returns the intersection of two ModelerGeometry objects. kBoolSubtract - Subtracts the second ModelerGeometry object from the first one.

◆ brep()

virtual bool OdModelerGeometry::brep ( OdBrBrep brBrep) const
pure virtual

Populates the specified BrBrep object with the ACIS BREP data of this ModelerGeometry object.

Parameters
brBrep[out] Receives the BREP data.
Returns
Returns true if and only if successful.

◆ chamferEdges()

virtual OdResult OdModelerGeometry::chamferEdges ( const OdArray< OdDbSubentId * > &  edgeSubentIds,
const OdDbSubentId baseFaceSubentId,
double  baseDist,
double  otherDist 
)
pure virtual

Creates chamfers at the edges of a ModelerGeometry object.

Parameters
edgeSubentIds[in] Array of edge object IDs. The chamfer will be applied at the specified edges.
baseFaceSubentId[in] Base face object IDs. Chamfer will be applied on the specified face.
baseDist[in] Chamfer distance for the base face.
otherDist[in] Chamfer distance for the other faces.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ ChangeFacesDoubleSidedParam()

virtual OdResult OdModelerGeometry::ChangeFacesDoubleSidedParam ( bool  isDoubleSided)
pure virtual

◆ checkCrossSectionCurves()

virtual OdResult OdModelerGeometry::checkCrossSectionCurves ( OdDbEntityPtrArray crossSectionCurves,
bool &  allOpen,
bool &  allClosed,
bool &  allPlanar,
bool  displayErrorMessages = false 
)
pure virtual

Checks whether cross section curves are valid for the lofting operation.

Parameters
crossSectionCurves[in] A list of cross-section curves.
allOpen[out] A passed-in parameter indicating whether all of the cross-section curves are open.
allClosed[out] A passed-in parameter indicating whether all of the cross-section curves are closed.
allPlanar[out] A passed-in parameter indicating whether all of the cross-section curves are planar.
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
Returns eOk if curves are valid or eInvalidInput otherwise.

◆ checkGuideCurves()

virtual OdResult OdModelerGeometry::checkGuideCurves ( OdDbEntityPtrArray guideCurves,
bool  displayErrorMessages = false 
)
pure virtual

Checks whether guide curves are valid for the lofting operation.

Parameters
guideCurves[in] A list of guide curves.
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
Returns eOk if guide curves are valid or eInvalidInput otherwise.

◆ checkInterference()

virtual OdResult OdModelerGeometry::checkInterference ( const OdDb3dSolid otherSolid,
bool  createNewSolid,
bool &  solidsInterfere,
OdDb3dSolidPtr commonVolumeSolid 
) const
pure virtual

Checks whether the solid interferes with another solid object.

Parameters
otherSolid[in] A pointer to another solid object for checking interference.
createNewSolid[in] A flag determining where a new solid object containing the interference must be created.
solidsInterfere[out] A reference to a boolean variable where the result of the interference checking will be stored and returned.
commonVolumeSolid[out] A reference to a pointer to a new solid containing the interference of the origin solid and otherSolid.
Returns
Returns eOk if interference checking is successful or an appropriate error code in other case.
Remarks
The caller of this function is responsible for the memory used by the object pointed to by commonVolumeSolid (resulting from intersection of this solid and otherSolid) when the function finishes. If commonVolumeSolid is added to a database, the database takes responsibility for the memory pointed to by commonVolumeSolid. If commonVolumeSolid is not added to a database, the caller must delete memory when it is no longer needed to avoid a memory leak.

◆ checkPathCurve()

virtual OdResult OdModelerGeometry::checkPathCurve ( OdDbEntity pPathCurve,
bool  displayErrorMessages = false 
)
pure virtual

Checks whether a path curve is valid for the lofting operation.

Parameters
pPathCurve[in] A pointer to the path curve (can be NULL).
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
Returns eOk if a path curve is valid or eInvalidInput otherwise.

◆ checkRevolveCurve()

virtual OdResult OdModelerGeometry::checkRevolveCurve ( OdDbEntity pRevEnt,
const OdGePoint3d axisPnt,
const OdGeVector3d axisDir,
bool &  closed,
bool &  endPointsOnAxis,
bool &  planar,
bool  displayErrorMessages = false 
)
pure virtual

Checks whether a specified entity is valid for the revolve operation.

Parameters
pRevEnt[in] A pointer to the entity (curve or region) to be revolved.
axisPnt[in] A point on the axis of revolution.
axisDir[in] A vector determining the direction of the revolution axis.
closed[out] A passed-in parameter for returning the indicator determining whether the revolved entity is closed.
endPointsOnAxis[out] A passed-in parameter for returning the indicator determining whether the revolved entity is open and whether its endpoints lie on the axis of revolution.
planar[out] A passed-in parameter for returning the indicator determining whether the revolved entity is planar.
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
Returns eOk if a specified entity is valid for revolving, or eInvalidInput otherwise.

◆ checkSweepCurve()

virtual OdResult OdModelerGeometry::checkSweepCurve ( OdDbEntity pSweepEnt,
OdDb::Planarity planarity,
OdGePoint3d pnt,
OdGeVector3d vec,
bool &  closed,
double &  approxArcLen,
bool  displayErrorMessages = false 
)
pure virtual

Determines if the specified sweep entity is valid and returns the planarity of the sweep entity.

Parameters
pSweepEnt[in] A pointer to the curve, region, or planar surface to be swept.
planarity[out] A passed-in parameter for returning the planarity flag of the entity.
pnt[out] A passed-in parameter for returning the point on the sweep entity if planarity is kPlanar, or a point on the line if planarity is kLinear.
vec[out] A passed-in parameter for returning the normal vector of the entity if planarity is kPlanar, or the line direction if planarity is kLinear.
closed[out] A passed-in parameter for returning the closed flag determining whether an entity to be swept is a closed entity.
approxArcLen[out] A passed-in parameter for returning the approximate arc length.
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
If kPlanar is returned, then pnt and vec will specify the normal plane of the entity. If kLinear is returned, then pnt and vec will specify a defining point and direction of the sweep entity.

◆ checkSweepPathCurve()

virtual OdResult OdModelerGeometry::checkSweepPathCurve ( OdDbEntity pPathEnt,
bool  displayErrorMessages = false 
)
pure virtual

◆ cleanBody()

virtual OdResult OdModelerGeometry::cleanBody ( )
pure virtual

Removes all edges and faces that are not needed for supporting the topology of the ModelerGeometry object.

Returns
Returns eOk if successful or an appropriate error code in other case.

◆ clear()

virtual OdResult OdModelerGeometry::clear ( )
pure virtual

Clears the contents of this ModelerGeometry object.

Returns
Returns eOk if successful, or an appropriate error code otherwise.

◆ ClearColorAttributes()

virtual void OdModelerGeometry::ClearColorAttributes ( )
pure virtual

Clears the color attributes of this ModelerGeometry object.

◆ ClearMaterialAttributes()

virtual void OdModelerGeometry::ClearMaterialAttributes ( )
pure virtual

Clears the material attributes of this ModelerGeometry object.

◆ ClearMaterialMapperAttributes()

virtual void OdModelerGeometry::ClearMaterialMapperAttributes ( )
pure virtual

Clears the material mapper attributes of this ModelerGeometry object.

◆ convertTo()

virtual OdResult OdModelerGeometry::convertTo ( const OdGePoint3dArray arrVertexes,
const OdInt32Array arrEdges,
const OdInt32Array arrFaces,
OdGiFaceData fd,
OdInt32Array arrFacesColors,
OdInt32Array arrFacesMaterials,
OdDbEntity pEntity 
)
pure virtual

◆ convertToNurbSurface()

virtual OdResult OdModelerGeometry::convertToNurbSurface ( OdDbNurbSurfaceArray nurbSurfaceArray)
pure virtual

Converts this ModelerGeometry object to nurb surfaces.

Parameters
nurbSurfaceArray[in] Array of generated nurb surfaces.
Returns
Returns eOk if converting operation was successfully finished or an appropriate error code otherwise.

◆ convertToRegion()

virtual OdResult OdModelerGeometry::convertToRegion ( OdDbEntityPtrArray regions)
pure virtual

Creates region (OdDbRegion class) entities for each face of the ModelerGeometry object.

Parameters
regions[out] Reference to an array of the OdDbRegion entities created from the face of the ModelerGeometry object.
Returns
Returns eOk if successful, or an appropriate error code otherwise.

◆ copySubEntity()

virtual OdResult OdModelerGeometry::copySubEntity ( const OdDbSubentId subentId,
OdDbEntityPtr newEntity 
) const
pure virtual

◆ createBox()

virtual void OdModelerGeometry::createBox ( double  xLen,
double  yLen,
double  zLen 
)
pure virtual

Creates a WCS aligned solid box centered about the world origin.

Parameters
xLen[in] Dimension along the WCS X-axis.
yLen[in] Dimension along the WCS Y-axis.
zLen[in] Dimension along the WCS Z-axis.
Returns
Returns eOk if successful, or an appropriate error code if not.
Remarks
The following constraints apply:

xLen >= 1e-6. yLen >= 1e-6. zLen >= 1e-6.

◆ createCachedCurves()

virtual OdResult OdModelerGeometry::createCachedCurves ( OdGeCurve3dPtrArray pCurves)
pure virtual

◆ createExtrudedObject()

virtual OdResult OdModelerGeometry::createExtrudedObject ( OdDbEntity pSweepEnt,
const OdGeVector3d directionVec,
OdDbSweepOptions sweepOptions,
bool  isSolid = true,
bool  bHistoryEnabled = false 
)
pure virtual

Creates an object by sweeping a planar curve, region, or planar surface in the direction of the given vector using a distance equal to the length of the vector.

Parameters
pSweepEnt[in] A pointer to the swept entity.
directionVec[in] Vector determining the direction and length of extruding.
sweepOptions[in] A set of sweeping options.
isSolid[in] Boolean flag that indicates that this ModelerGeometry object is solid.
Returns
Returns eOk if extruding was successful or an appropriate error code in other case.
Remarks
Sweeping parameters (for example, angle) are set through the sweepOptions object reference.

◆ createFilletSurface()

virtual OdResult OdModelerGeometry::createFilletSurface ( OdDbSurfacePtr surf1,
const OdGePoint3d pickPt1,
OdDbSurfacePtr surf2,
const OdGePoint3d pickPt2,
double  dRadius,
OdDb::FilletTrimMode  trimMode,
const OdGeVector3d projDir 
)
pure virtual

Creates a tangent surface between two edges of a surface with constant radius and trimming or no trimming of the original surfaces.

Parameters
surf1[out] Pointer to a first source surface.
pickPt1[in] 3D point specifying the side on the first source surface that will be kept after filleting.
surf2[out] Pointer to a second source surface.
pickPt2[in] 3D point specifying the side on the second source surface that will be kept after filleting.
dRadius[in] Radius for fillet operation (positive value).
trimMode[in] Flag that specifies the OdDb::FilletTrimMode value.
projDir[in] 3D vector specifying the projection (view) direction for pick points.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks

The trimMode can be one of the following: kTrimNone kTrimFirst kTrimSecond kTrimBoth

◆ createFrom()

virtual OdResult OdModelerGeometry::createFrom ( const OdDbEntity pFromEntity)
pure virtual

Creates an extruded surface when given a planar entity with thickness, or creates a plane surface when given a simple, closed planar entity.

Parameters
pFromEntity[in] Pointer to either a planar entity with thickness, a simple, closed planar entity, or an OdDbSolid entity pointed to by pFromEntity.
Returns
Returns eOk if successful, or an appropriate error code if not.

◆ createFrustum()

virtual void OdModelerGeometry::createFrustum ( double  height,
double  xRadius,
double  yRadius,
double  topXRadius 
)
pure virtual

Creates a WCS aligned frustum centered about the world origin.

Parameters
height[in] Dimension along the WCS Z-axis.
xRadius[in] Base radius along the WCS X-axis.
yRadius[in] Base radius along the WCS Y-axis.
topXRadius[in] Top radius along the WCS X-axis.
Remarks
The function can generate a frustum that is any one of the following:

A circular cylinder An elliptical cylinder A circular cone An elliptical cone A truncated circular cone A truncated elliptical cone

Remarks
The following constraints apply:

height >= 1e-6. xRadius >= 1e-6. yRadius >= 1e-6. topXRadius >= 1e-6.

◆ createInterferenceObjects()

virtual OdResult OdModelerGeometry::createInterferenceObjects ( OdDbEntityPtrArray interferenceObjects,
OdDbEntityPtr  pEntity,
unsigned int  flags 
) const
pure virtual

Creates new entities that represent the result of interference between this ModelerGeometry object and a specified entity. Created entities are appended to the specified array.

Parameters
interferenceObjects[out] Output array of interference entities.
pEntity[in] Pointer to an entity the object must interfere with. pEntity can point to the following entity types: OdDbSurface, OdDb3dSolid, OdDbRegion, or OdDbBody.
flags[in] Interference flags; equal to kDefault (0x00).
Returns
Returns eOk if interference entities are successfully created or an appropriate error code otherwise. For example, if interference entities are not created, eNoIntersection error code is returned. eInvalidInput is returned if an unsupported entity or NULL pointer is provided as a value of pEntity.

◆ createLoftedObject()

virtual OdResult OdModelerGeometry::createLoftedObject ( OdDbEntityPtrArray crossSectionCurves,
OdDbEntityPtrArray guideCurves,
OdDbEntity pPathCurve,
OdDbLoftOptions loftOptions,
bool  isSolid = true 
)
pure virtual

Creates a lofted object from the given curves.

Parameters
crossSectionCurves[in] Array of curve entities to be used as cross sections for the lofting operation.
guideCurves[in] Array of guide curves.
pPathCurve[in] Path curve.
loftOptions[in] Options for lofting.
isSolid[in] Boolean flag.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
Lofting parameters can be passed with the loftOptions parameter.

◆ createPyramid()

virtual OdResult OdModelerGeometry::createPyramid ( double  height,
int  sides,
double  radius,
double  topRadius = 0.0 
)
pure virtual

Creates a lofted object from the given curves by coedges.

Parameters
crossSectionCurves[in] Array of curve entities to be used as cross sections for the lofting operation.
guideCurves[in] Array of guide curves.
pPathCurve[in] Path curve.
loftOptions[in] Options for lofting.
isSolid[in] Boolean flag.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
Lofting parameters can be passed with the loftOptions parameter.

Creates a pyramid. World origin is centered about the base of the pyramid and the pyramid is positioned at half of the specified height above the world origin.

Parameters
height[in] Value of the pyramid's height.
sides[in] Quantity of sides for the pyramid.
radius[in] Radius for circle inscribed into the bottom polygon.
topRadius[in] Radius for circle inscribed into the top polygon.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
The pyramid's base is located in the X-Y plane of the WCS. The pyramid's direction (from the base to the top) coincides with the positive direction of the Z-axis. When radius and topRadius values are equal, a prism is created.

The following constraints are applied: |height| >= 1e-6; |radius| >= 1e-6; |topRadius| >= 1e-6; 3 <= sides <= 64.

◆ createRevolvedObject()

virtual OdResult OdModelerGeometry::createRevolvedObject ( OdDbEntity pRevEnt,
const OdGePoint3d axisPnt,
const OdGeVector3d axisDir,
double  revAngle,
double  startAngle,
OdDbRevolveOptions revolveOptions,
bool  isSolid = true,
bool  bHistoryEnabled = false 
)
pure virtual

Creates an object by revolving a specified curve, region, or planar surface around the specified axis of revolution.

Parameters
pRevEnt[in] Pointer to the planar curve, region, or planar surface that must be revolved.
axisPnt[in] Point on the axis of revolution.
axisDir[in] Direction of the revolution axis.
revAngle[in] Revolve angle in radians.
startAngle[in] Start angle of rotation. If 0, rotation will start from the current position of pRevEnt.
revolveOptions[in] Revolve options.
isSolid[in] Boolean flag.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
Axis of revolution is defined by a point (axisPnt) and vector (axisDir). pRevEnt will be revolved according to the start and revolve angles counter-clockwise about the axisDir vector.

Options for revolving can be specified with the revolveOptions object reference.

◆ createSculptedSolid()

virtual OdResult OdModelerGeometry::createSculptedSolid ( OdDbEntityPtrArray limitingBodies,
const OdGeIntArray limitingFlags 
)
pure virtual

Creates a solid by trimming and (or) extending the specified surfaces and 3D solids, forming an enclosed volume.

Parameters
limitingBodies[in] Reference to the entity array (representing surface and solids) that are used to create a solid. \params limitingFlags [in] Reserved for internal use.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ createSectionObjects()

virtual OdResult OdModelerGeometry::createSectionObjects ( const OdGePlane sectionPlane,
OdDbEntityPtrArray sectionObjects 
) const
pure virtual

Intersects the specified plane with this ModelerGeometry object and creates the intersection in a resulting array.

Parameters
sectionPlane[in] Pointer to a plane object used for intersection (section cutting plane).
sectionObjects[out] A reference to an entity array for representing resulting sections.
Returns
Returns eOk if the intersection operation is successfully performed, or an appropriate error code otherwise.

◆ createSphere()

virtual void OdModelerGeometry::createSphere ( double  radius)
pure virtual

Creates a sphere centered about the world origin.

Parameters
radius[in] Radius.
Remarks
The following constraints apply:

radius >= 1e-6.

◆ createSweptObject()

virtual OdResult OdModelerGeometry::createSweptObject ( OdDbEntity pSweepEnt,
OdDbEntity pPathEnt,
OdDbSweepOptions sweepOptions,
bool  isSolid = true,
bool  bHistoryEnabled = false 
)
pure virtual

Creates a swept object by sweeping a face along the specified path.

Parameters
pSweepEnt[in] Pointer to the face entity for sweeping.
pPathEnt[in] Pointer to the curve entity that determines the path to sweep along.
sweepOptions[in] Sweep options.
isSolid[in] Boolean flag.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
To set optional sweep parameters (for example, draft angle) use the sweepOptions parameter. The default value for the alignment option of OdDbSweepOptions (returned by align() method) is kNoAlignment. Set it to kAlignSweepEntityToPath before calling this method.

◆ createTorus()

virtual void OdModelerGeometry::createTorus ( double  majorRadius,
double  minorRadius 
)
pure virtual

Creates a WCS aligned torus centered about the world origin and with the Z-axis as its axis of rotation.

Parameters
majorRadius[in] Radius of the torus
minorRadius[in] Radius of the tube.
Remarks
The following constraints apply:

minorRadius >= 1e-6. |majorRadius| >= 1e-6 if majorRadius < 0, then minorRadius > |majorRadius| + 1e-6

◆ createWedge()

virtual void OdModelerGeometry::createWedge ( double  xLen,
double  yLen,
double  zLen 
)
pure virtual

Creates a WCS aligned wedge centered about the world origin.

Parameters
xLen[in] Dimension along the WCS X-axis.
yLen[in] Dimension along the WCS Y-axis.
zLen[in] Dimension along the WCS Z-axis.
Remarks
The inclined face is defined by the points
      ( xLen/2, -yLen/2, -zLen/2)
      (-xLen/2, -yLen/2,  zLen/2)  
      ( xLen/2,  yLen/2, -zLen/2)
      (-xLen/2, +yLen/2,  zLen/2)  
The following constraints apply:

xLen >= 1e-6. yLen >= 1e-6. zLen >= 1e-6.

◆ drawSilhouettes()

virtual bool OdModelerGeometry::drawSilhouettes ( OdGiViewportDraw pVd)
pure virtual

Creates a viewport-dependent silhouette representation of this ModelerGeometry object.

Remarks
Causes this ModelerGeometry object to describe its geometry to the specified OdGiViewportDraw object.

This function is called once per viewport.

Remarks
It is possible to have totally different images in each viewport; a schematic in one viewport, a layout in another.
Parameters
pVd[in] Pointer to the OdGiViewportDraw interface.

◆ evaluate() [1/4]

virtual OdResult OdModelerGeometry::evaluate ( double  dU,
double  dV,
int  iDerivDegree,
OdGePoint3d point,
OdGeVector3dArray derivatives 
) const
pure virtual

Evaluates the position and an arbitrary number of derivatives of the ModelerGeometry object at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
iDerivDegree[in] The degree of derivatives to evaluate.
point[out] A passed-in parameter for returning the evaluated position on the ModelerGeometry object.
derivatives[out] A passed-in parameter for returning derivatives array of vectors, in the order of uDeriv, vDeriv, uuDeriv, uvDeriv, vvDeriv.
Returns
Returns eOk if evaluation is successfully done. If the u or v value is out of range, returns eOutOfRange.

◆ evaluate() [2/4]

virtual OdResult OdModelerGeometry::evaluate ( double  dU,
double  dV,
OdGePoint3d pos 
) const
pure virtual

Evaluates the position on the ModelerGeometry object at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
pos[out] A passed-in parameter for returning the evaluated position on the ModelerGeometry object.
Returns
Returns eOk if evaluation is successfully done. If the u or v value is out of range, returns eOutOfRange.

◆ evaluate() [3/4]

virtual OdResult OdModelerGeometry::evaluate ( double  dU,
double  dV,
OdGePoint3d pos,
OdGeVector3d uDeriv,
OdGeVector3d vDeriv 
) const
pure virtual

Evaluates the position and first derivatives on the ModelerGeometry object at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
pos[out] A passed-in parameter for returning the evaluated position on the ModelerGeometry object.
uDeriv[out] A passed-in parameter for returning the first derivative with respect to u.
vDeriv[out] A passed-in parameter for returning the first derivative with respect to v.
Returns
Returns eOk if evaluation is successfully done. If the u or v value is out of range, returns eOutOfRange.

◆ evaluate() [4/4]

virtual OdResult OdModelerGeometry::evaluate ( double  dU,
double  dV,
OdGePoint3d pos,
OdGeVector3d uDeriv,
OdGeVector3d vDeriv,
OdGeVector3d uuDeriv,
OdGeVector3d uvDeriv,
OdGeVector3d vvDeriv 
) const
pure virtual

Evaluates the position and first and second derivatives on the ModelerGeometry object at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
pos[out] A passed-in parameter for returning the evaluated position on the surface.
uDeriv[out] A passed-in parameter for returning the first derivative with respect to u.
vDeriv[out] A passed-in parameter for returning the first derivative with respect to v.
uuDeriv[out] A passed-in parameter for returning the second derivative with respect to u twice.
uvDeriv[out] A passed-in parameter for returning the second derivative with respect to u and v.
vvDeriv[out] A passed-in parameter for returning the second derivative with respect to v twice.
Returns
Returns eOk if evaluation is successfully done. If the u or v value is out of range, returns eOutOfRange.

◆ explode()

virtual bool OdModelerGeometry::explode ( OdDbEntityPtrArray entitySet) const
pure virtual

Explodes this ModelerGeometry object into a set of OdDbEntity objects.

Parameters
entitySet[in/out] Receives an array of pointers to the new entities.
Returns
Returns eOk if successful, or an appropriate error code if not.
Remarks
Entities resulting from the explosion are appended to the specified array.

The newly created entities are not database residents.

◆ extendEdges()

virtual OdResult OdModelerGeometry::extendEdges ( OdDbFullSubentPathArray edgesId,
double  dExtDist,
EdgeExtensionType  extOption 
)
pure virtual

Extends the edges of this ModelerGeometry object.

Parameters
edgesId[out] Array of full sub-entity paths of the edges that need to be extended.
dExtDist[in] Distance at which the ModelerGeometry object should be expanded.
extOption[in] Extension option, if edges need to be extended or stretched.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ extrude()

virtual OdResult OdModelerGeometry::extrude ( const OdDbRegion pRegion,
double  height,
double  taperAngle,
bool  isSolid = true 
)
pure virtual

Creates a solid by extruding the specified region.

Parameters
pRegion[in] Pointer to the region to be extruded.
height[in] Height of the extrusion.
taperAngle[in] Taper angle.
Remarks
The extrusion direction is along the normal of the region. Height may be negative.
All angles are expressed in radians.

The following constraints apply:

|height| >= 1e-6. |taperAngle| < OdaPI2 - 1e-6.

◆ extrudeAlongPath()

virtual OdResult OdModelerGeometry::extrudeAlongPath ( const OdDbRegion region,
const OdDbCurve path,
double  taperAngle = 0.0,
bool  isSolid = true 
)
pure virtual

Creates a ModelerGeometry object by extruding a region along a path curve.

Parameters
region[in] Pointer to a region object for extruding from.
path[in] Pointer to a curve object to extrude along. Must be one of the following: Line OdDbArc OdDbCircle Ellipse OdDbSpline OdDb2dPolyline non-spline fit OdDb3dPolyline
taperAngle[in] Extrusion taper angle in radians. Default value is 0.0. Value must be between 0.5 pi and -0.5 pi. If the path represented by the OdDbCurve object is closed, the taper angle parameter is ignored.
isSolid[in] Boolean flag that indicates that the ModelerGeometry object is a solid.
Returns
Returns eOk if extruding operation is successful or an appropriate error code if not.
Remarks
Entity path must not have self-intersections, and it is recommended that the path not have high curvature areas. The following constraints are applied: |taper Angle| >= 1e-6

◆ extrudeFaces()

virtual OdResult OdModelerGeometry::extrudeFaces ( const OdArray< OdDbSubentId * > &  faceSubentIds,
double  height,
double  taper 
)
pure virtual

Extrudes faces of the ModelerGeometry object with specified distance and taper angle.

Parameters
faceSubentIds[in] Face's subentity ID in the drawing object.
height[in] Distance of extrusion.
taper[in] Taper angle.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks

The distance of extrusion is determined by the height parameter and the taper angle (the taper parameter).

The extrusion direction can be along or opposite the normal of each extruded face depending on the height value: If height is positive, direction is along the normal (extruding faces outward from the drawing object). If height is negative, direction is opposite the normal (extruding faces into the drawing object).

If the absolute value of taper is less than 1e-6, taper angle is assumed to be equal to 0.0.

If taper value does not equal 0.0, each face should have edges that join together smoothly (i.e. tangents at the points of connection must be equal).

The following constraints are applied: number of specified faces (in faceSubentIds parameter) must be more than zero |height| >= 1e-6 |taper| >= (PI/2) - 1e-6

◆ extrudeFacesAlongPath()

virtual OdResult OdModelerGeometry::extrudeFacesAlongPath ( const OdArray< OdDbSubentId * > &  faceSubentIds,
const OdDbCurve path 
)
pure virtual

Extrudes specified faces along the specified path determined by a curve entity.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be extruded.
path[in] Pointer to a curve object to extrude along (extrusion path). Can not be NULL.
Returns
Returns eOk if successful or an appropriate error code in the other case.

Faces for extrusion must be planar.

Curve entity must be one of the following: OdDbLine OdDbArc OdDbEllipse OdDbSpline OdDb2dPolyline Non-spline fit OdDb3dPolyline

Extrusion path must not have self-intersections. Also it is recommended that the path doesn't have high curvature areas. If one of the end points of the path is not located on the region's plane, the path will move the point on the plane.

◆ filletEdges()

virtual OdResult OdModelerGeometry::filletEdges ( const OdArray< OdDbSubentId * > &  edgeSubentIds,
const OdGeDoubleArray radius,
const OdGeDoubleArray startSetback,
const OdGeDoubleArray endSetback 
)
pure virtual

Creates rounded fillets on the edges of a ModelerGeometry object.

Parameters
edgeSubentIds[in] Array of edges' object IDs. Fillet will be applied on the specified edges.
radius[in] Array of fillet radius values for the corresponding edges.
startSetback[in] Array of start setback values for the corresponding edges.
endSetback[in] Array of end setback values for the corresponding edges.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ generateMesh()

virtual OdResult OdModelerGeometry::generateMesh ( const OdBrMesh2dFilter filter,
OdBrMesh2d mesh2d 
)
inlinevirtual

Definition at line 141 of file ModelerGeometry.h.

◆ generateSectionGeometry() [1/2]

virtual OdResult OdModelerGeometry::generateSectionGeometry ( const OdDbSection pSection,
OdDbEntityPtrArray sourceEntArr,
OdArray< OdDbEntityPtr > &  intBoundaryEnts,
OdArray< OdDbEntityPtr > &  intFillEnts,
OdArray< OdDbEntityPtr > &  backgroundEnts,
OdArray< OdDbEntityPtr > &  foregroundEnts,
OdArray< OdDbEntityPtr > &  curveTangencyEnts,
bool  bIsSetProperties 
)
pure virtual

For internal use only.

◆ generateSectionGeometry() [2/2]

virtual OdResult OdModelerGeometry::generateSectionGeometry ( SectArgs &  sectArgs,
OdDbEntity pEnt,
bool *  bHasForeground 
)
pure virtual

For internal use only.

◆ get()

virtual OdResult OdModelerGeometry::get ( int &  iUDegree,
int &  iVDegree,
bool &  bRational,
int &  iUNumControlPoints,
int &  iVNumControlPoints,
OdGePoint3dArray ctrlPtsArr,
OdGeDoubleArray weights,
OdGeKnotVector uKnots,
OdGeKnotVector vKnots 
) const
pure virtual

◆ getArea()

virtual OdResult OdModelerGeometry::getArea ( double &  regionArea) const
pure virtual

Returns the area of this ModelerGeometry object.

Parameters
regionArea[out] Reference for returning the area value.
Returns
Returns eOk if successful or an appropriate error code in the other case. Area value is returned in square drawing units.

◆ getAreaProp()

virtual OdResult OdModelerGeometry::getAreaProp ( const OdGePoint3d origin,
const OdGeVector3d xAxis,
const OdGeVector3d yAxis,
double &  perimeter,
double &  area,
OdGePoint2d centroid,
double  momInertia[2],
double &  prodInertia,
double  prinMoments[2],
OdGeVector2d  prinAxes[2],
double  radiiGyration[2],
OdGePoint2d extentsLow,
OdGePoint2d extentsHigh 
) const
pure virtual

Calculates the area properties of this ModelerGeometry object.

The method validates the origin, xAxis, and yAxis parameters to ensure that: axes are perpendicular to each other. axes and the origin lie in the same plane as the region.

Parameters
origin[in] Origin of the coordinate system to use for evaluation (WCS).
xAxis[in] X-axis of the coordinate system to use for evaluation (WCS).
yAxis[in] Y-axis of the coordinate system to use for evaluation (WCS).
perimeter[out] Reference for returning the value of the ModelerGeometry object's perimeter.
area[out] Reference for returning the value of the ModelerGeometry object's area.
centroid[out] Reference for returning the centroid of the ModelerGeometry object.
momInertia[out] Static array for returning moments of inertia for the ModelerGeometry object.
prodInertia[out] Reference for returning the ModelerGeometry object's product of inertia.
prinMoments[out] Static array for returning principal moments for the ModelerGeometry object.
prinAxes[out] Static array for returning principle axes of the ModelerGeometry object.
radiiGyration[out] Static array for returning radii of gyration of the ModelerGeometry object.
extentsLow[out] Reference for returning the ModelerGeometry object's minimum extents point.
extentsHigh[out] Reference for returning the ModelerGeometry object's maximum extents point.
Returns
Returns eOk if successful, or an appropriate error code otherwise.
Remarks
Returned values are measured using the values of origin, xAxis, and yAxis parameters, and are represented in WCS coordinates.

◆ getBoundingBox()

virtual OdResult OdModelerGeometry::getBoundingBox ( OdGeExtents3d box)
pure virtual

Returns the bounding box.

Parameters
box[out] 3D bounding boxes as minimum and maximum 3D points.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getCachedSilhouettes()

virtual OdResult OdModelerGeometry::getCachedSilhouettes ( OdGeCurve3dPtrArray cachedSilhouettes)
pure virtual

◆ getControlPointAndWeight()

virtual OdResult OdModelerGeometry::getControlPointAndWeight ( int  iUIndex,
int  iVIndex,
OdGePoint3d point,
double &  weight,
bool &  bIsRational 
) const
pure virtual

◆ getControlPoints()

virtual OdResult OdModelerGeometry::getControlPoints ( int &  iUCount,
int &  iVCount,
OdGePoint3dArray points 
) const
pure virtual

Returns the control points and the quantity of control points in both u and v directions.

Parameters
iUCount[out] The quantity of control points in the u direction.
iVCount[out] The quantity of control points in the v direction.
points[out] Array of control points (in WCS coordinates).
Returns
Returns eOk if control points were successfully returned, or an appropriate error code in the other case.
Remarks
The control points will be allocated in the passed-in OdGePoint3d array. The column indexes are for the v direction, and row indexes are for the u direction. For example, if the surface has n control points in the u direction and m control points in the v direction, the array looks like [0,0], [0,1], ...[0,vCount-1], ..., [uCount-1,0], [uCount-1,1], ...[uCount-1,vCount-1].

◆ getDegreeInU()

virtual OdResult OdModelerGeometry::getDegreeInU ( int &  iDegree) const
pure virtual

Returns the degree of the ModelerGeometry object in the u direction.

Parameters
iDegree[out] A passed-in parameter for returning the degree in the u direction.
Returns
Returns eOk if successful.

◆ getDegreeInV()

virtual OdResult OdModelerGeometry::getDegreeInV ( int &  iDegree) const
pure virtual

Returns the degree of the ModelerGeometry object in the v direction.

Parameters
iDegree[out] A passed-in parameter for returning the degree in the v direction.
Returns
Returns eOk if successful.

◆ getGsMarkersAtSubentPath()

virtual OdResult OdModelerGeometry::getGsMarkersAtSubentPath ( const OdDbFullSubentPath subPath,
OdGsMarkerArray gsMarkers 
) const
pure virtual

Returns an array of GS markers.

Parameters
subPath[in] A full subentity path object identifying the subentity.
gsMarkers[out] An array with GSMarkers for the subentities.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getIsolineAtU()

virtual OdResult OdModelerGeometry::getIsolineAtU ( double  dNumberSegments,
OdDbCurvePtrArray lineSegments 
) const
pure virtual

Returns the specified number of isolines created in the v direction.

Parameters
dNumberSegments[in] Number of isoline segments.
lineSegments[out] Array of isoline segments.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getIsolineAtV()

virtual OdResult OdModelerGeometry::getIsolineAtV ( double  dNumberSegments,
OdDbCurvePtrArray lineSegments 
) const
pure virtual

Returns the specified number of isolines created in the u direction.

Parameters
dNumberSegments[in] Number of isoline segments.
lineSegments[out] Array of isoline segments.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getMassProp()

virtual OdResult OdModelerGeometry::getMassProp ( double &  volume,
OdGePoint3d centroid,
double  momInertia[3],
double  prodInertia[3],
double  prinMoments[3],
OdGeVector3d  prinAxes[3],
double  radiiGyration[3],
OdGeExtents3d extents 
) const
pure virtual

Returns volume properties of the ModelerGeometry object.

Parameters
volume[out] Reference for returning the volume of the ModelerGeometry object.
centroid[out] Reference to an OdGePoint3d object for returning the point, representing the centroid of the ModelerGeometry object.
momInertia[out] A static array for returning X, Y, Z moments of inertia of the ModelerGeometry object.
prodInertia[out] A static array for returning X, Y, Z products of inertia of the ModelerGeometry object.
prinMoments[out] A static array for returning X, Y, Z principal moments of the ModelerGeometry object.
prinAxes[out] A static array for returning an OdGeVector3d object, determining principal axes of the ModelerGeometry object.
radiiGyration[out] A static array for returning X, Y, Z radii of gyration of the ModelerGeometry object.
extents[out] A reference to an OdGeExtents3d object for returning the bounding box of the ModelerGeometry object.
Returns
Returns the result of getting volume properties of the ModelerGeometry object: eOk if successful or an appropriate error code in other case. All properties are evaluated in the WCS.

◆ getMMPerUnit()

virtual bool OdModelerGeometry::getMMPerUnit ( double &  mmPerUnit) const
pure virtual

Returns the mm/unit for this ModelerGeometry object.

Parameters
mmPerUnit[out] mm/unit.
Returns
Returns true if and only if successful.

◆ getNormal()

virtual OdResult OdModelerGeometry::getNormal ( double  dU,
double  dV,
OdGeVector3d normal 
) const
pure virtual

Returns the normal vector at the specified parameter location ([u, v]).

Parameters
dU[in] u parameter.
dV[in] v parameter.
normal[out] A passed-in parameter for returning the normal vector.
Returns
Returns eOk if successful. If the dU or dV values are invalid, returns eOutOfRange.

◆ getNumberOfControlPointsInU()

virtual OdResult OdModelerGeometry::getNumberOfControlPointsInU ( int &  iCount) const
pure virtual

Returns the quantity of control points in the u direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of control points in the u direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.

◆ getNumberOfControlPointsInV()

virtual OdResult OdModelerGeometry::getNumberOfControlPointsInV ( int &  iCount) const
pure virtual

Returns the quantity of control points in the v direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of control points in the v direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.

◆ getNumberOfKnotsInU()

virtual OdResult OdModelerGeometry::getNumberOfKnotsInU ( int &  iCount) const
pure virtual

Returns the quantity of knots in the u direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of knots in the u direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.

◆ getNumberOfKnotsInV()

virtual OdResult OdModelerGeometry::getNumberOfKnotsInV ( int &  iCount) const
pure virtual

Returns the quantity of knots in the v direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of knots in the v direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.

◆ getNumberOfSpansInU()

virtual OdResult OdModelerGeometry::getNumberOfSpansInU ( int &  iSpan) const
pure virtual

Returns the simple patches in the u direction.

Parameters
span[out] A passed-in parameter for returning the number of simple patches in the u direction.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getNumberOfSpansInV()

virtual OdResult OdModelerGeometry::getNumberOfSpansInV ( int &  iSpan) const
pure virtual

Returns the simple patches in the v direction.

Parameters
span[out] A passed-in parameter for returning the number of simple patches in the v direction.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getNurbCurvesCache()

virtual bool OdModelerGeometry::getNurbCurvesCache ( OdGeCurve3dPtrArray ) const
inlinevirtual

Definition at line 1115 of file ModelerGeometry.h.

◆ getObjectMesh()

virtual OdResult OdModelerGeometry::getObjectMesh ( const OdDbFaceterSettings faceter,
OdGePoint3dArray vertexArray,
OdInt32Array faceArray,
OdGiFaceData *&  faceData 
)
pure virtual

◆ getParameterOfPoint()

virtual OdResult OdModelerGeometry::getParameterOfPoint ( const OdGePoint3d point,
double &  dU,
double &  dV 
) const
pure virtual

Returns the u and v parameter for a point on this ModelerGeometry object.

Parameters
point[in] A point on the ModelerGeometry object.
dU[in] A passed-in parameter for returning the value of the u parameter.
dV[in] A passed-in parameter for returning the value of the v parameter.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getPerimeter()

virtual OdResult OdModelerGeometry::getPerimeter ( double &  ) const
pure virtual

Returns the perimeter of this ModelerGeometry object.

Parameters
dRegionPerimeter[out] Reference to a double value to store the perimeter.
Returns
Returns eOk if the perimeter was successfully returned to the calling subroutine or an appropriate error code in the other case.

◆ getPeriodInU()

virtual OdResult OdModelerGeometry::getPeriodInU ( double &  dPeriod) const
pure virtual

Returns the period value in the u direction for the ModelerGeometry object. Returned value is valid only if the ModelerGeometry object is periodic in the u direction.

Parameters
dPeriod[out] A passed-in parameter for returning the period value in the u direction.
Returns
Returns eOk if successful.

◆ getPeriodInV()

virtual OdResult OdModelerGeometry::getPeriodInV ( double &  dPeriod) const
pure virtual

Returns the period value in the v direction for the ModelerGeometry object. Returned value is valid only if the ModelerGeometry object is periodic in the v direction.

Parameters
dPeriod[out] A passed-in parameter for returning the period value in the v direction.
Returns
Returns eOk if successful.

◆ getPlane()

virtual OdResult OdModelerGeometry::getPlane ( OdGePlane regionPlane) const
pure virtual

Returns the plane of this ModelerGeometry object.

Parameters
regionPlane[out] Receives the region plane.
Returns
Returns eOk if successful, or an appropriate error code if (bodyType() != kRegion).

◆ getSection()

virtual OdResult OdModelerGeometry::getSection ( const OdGePlane plane,
OdDbRegionPtr sectionRegion,
OdDbEntityPtrArray pSectionCurves = NULL 
) const
pure virtual

Creates a DbRegion entity as a result of the intersection between the specified plane and the ModelerGeometry object.

Parameters
plane[in] Reference to an OdGePlane object to use as the section cutting plane.
sectionRegion[out] Reference to a new region created as the result of the intersection between the specified plane and the ModelerGeometry object.
pSectionCurves[out] Pointer to an array of section curves.
Returns
Returns the result of intersecting the ModelerGeometry object with a plane: eOk if successful or an appropriate error code in other case. Value eOk is also returned when a plane and the ModelerGeometry object do not intersect each other or if the intersection region is not a valid region, that is, it intersects at a point, along a bounding face of the ModelerGeometry object and so on.

◆ getSlice() [1/2]

virtual OdResult OdModelerGeometry::getSlice ( const OdGePlane plane,
bool  getNegHalfToo,
OdDb3dSolidPtr negHalfSolid 
)
pure virtual

Slices the ModelerGeometry object with a plane and transforms the native ModelerGeometry object to be the portion remaining on the positive side of the normal of the slicing plane.

Parameters
plane[in] Reference to a slicing plane.
getNegHalfToo[in] Flag determining whether the other (negative) part of the native ModelerGeometry object should be created as a separate ModelerGeometry object (when true).
negHalfSolid[out] Reference to a pointer to the created ModelerGeometry object representing the negative half of the native ModelerGeometry object. If getNegHalfToo is false, NULL value is returned.
Returns
Returns eOk if the native ModelerGeometry object was successfully sliced or an appropriate error code in other case. If the slicing plane does not intersect the ModelerGeometry object, the ModelerGeometry object is left unchanged, negHalfSolid is set to NULL, and eOk is returned.
Remarks
The caller of this function is responsible for the memory used by the object pointed to by negHalfSolid when the function finishes. If negHalfSolid is added to a database, the database takes responsibility for the memory. If negHalfSolid is not added to a database, the caller must delete memory when it is no longer needed to avoid a memory leak.

◆ getSlice() [2/2]

virtual OdResult OdModelerGeometry::getSlice ( OdDbSurface pSurface,
bool  bGetNegHalfToo,
OdDb3dSolidPtr pNegHalfSolid 
)
pure virtual

Slices the ModelerGeometry object with a surface and transforms the native ModelerGeometry object to be the portion remaining on the positive side of the slicing surface normal.

Parameters
pSurface[in] Pointer to a slicing surface.
bGetNegHalfToo[in] Flag determining whether the other (negative) part of the native ModelerGeometry object should be created as a separate ModelerGeometry object (when true).
pNegHalfSolid[out] Reference to a pointer to the created ModelerGeometry object representing the negative half of the native ModelerGeometry object. If bGetNegHalfToo is false, NULL value is returned.
Returns
Returns eOk if the native ModelerGeometry object was successfully sliced or an appropriate error code in other case. If pSurface pointer is NULL or the ModelerGeometry object is empty, returns eInvalidInput.
Remarks
The native ModelerGeometry object will be transformed to a resulting body which is located in the negative side of the surface normal.

The caller of this function is responsible for the memory used by the object pointed to by pNegHalfSolid when the function finishes. If pNegHalfSolid is added to a database, the database takes responsibility for the memory. If pNegHalfSolid is not added to a database, the caller must delete memory when it is no longer needed to avoid a memory leak.

◆ getSubentColor()

virtual OdResult OdModelerGeometry::getSubentColor ( const OdDbSubentId subentId,
OdCmColor color 
) const
pure virtual

Returns the color of the specified subentity.

Parameters
subentId[in] ID of the subentity.
color[in] A reference to an OdCmColor object to store the current color of the specified subentity.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getSubentMaterial()

virtual OdResult OdModelerGeometry::getSubentMaterial ( const OdDbSubentId subentId,
OdUInt64 matId 
) const
pure virtual

Returns the material of the specified subentity.

Parameters
subentId[in] Subentity ID.
matId[in] Reference to an OdDbObjectId for returning the material object ID.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ getSubentMaterialMapper()

virtual OdResult OdModelerGeometry::getSubentMaterialMapper ( const OdDbSubentId subentId,
OdGeMatrix3d mx,
OdUInt8 projection,
OdUInt8 tiling,
OdUInt8 autoTransform 
) const
pure virtual

◆ getSubentPathsAtGsMarker()

virtual OdResult OdModelerGeometry::getSubentPathsAtGsMarker ( OdDb::SubentType  type,
OdGsMarker  gsMark,
const OdGePoint3d pickPoint,
const OdGeMatrix3d viewXform,
OdDbFullSubentPathArray subentPaths,
const OdDbObjectIdArray entAndInsertStack = 0 
) const
pure virtual

This method returns eOk if successful.

Parameters
type[in] A subentity type specified by the OdDb::SubentType enumeration.
gsMark[in] GS marker representing a specific subentity.
pickPoint[in] WCS coordinates of the point picked during the selection of the entity.
viewXform[in] A transformation matrix to transform from WCS to DCS.
subentPaths[out] An array of full subentity path objects identifying the subentities generated from the GS marker.
entAndInsertStack[in] An array of object IDs that are the nested containers of the subentity.

◆ getTransformation()

virtual bool OdModelerGeometry::getTransformation ( OdGeMatrix3d xfm)
pure virtual

Returns the transformation matrix for this ModelerGeometry object.

Parameters
xfm[out] Receives the transformation matrix.

◆ getUKnots()

virtual OdResult OdModelerGeometry::getUKnots ( OdGeKnotVector knots) const
pure virtual

Returns the knot vector in the u direction.

Parameters
knots[out] A passed-in parameter for returning the knot vector in the u direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.

◆ getVKnots()

virtual OdResult OdModelerGeometry::getVKnots ( OdGeKnotVector knots) const
pure virtual

Returns the knot vector in the v direction.

Parameters
knots[out] A passed-in parameter for returning the knot vector in the v direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.

◆ hasMaterials()

virtual MaterialState OdModelerGeometry::hasMaterials ( ) const
inlinevirtual

Definition at line 393 of file ModelerGeometry.h.

◆ hasTrueColorAttributes()

virtual bool OdModelerGeometry::hasTrueColorAttributes ( ) const
pure virtual

Returns true if and only if TrueColor attributes are attached to the faces and/or edges of this ModelerGeometry object.

◆ imprintEntity()

virtual OdResult OdModelerGeometry::imprintEntity ( const OdDbEntity pEntity)
pure virtual

Intersects the given entity with this ModelerGeometry object and imprints their intersection graph onto the ModelerGeometry object.

Parameters
pEntity[in] A pointer to an entity to be imprinted.
Returns
Returns eOk if imprinting entity onto the ModelerGeometry object is successful or an appropriate error code if not.
Remarks
The given entity must be one of the following: Curve OdDb3dSolid Body Region Trace OdDbSolid Face

If the ModelerGeometry object is null, or if the given entity is not one of the entities listed above, eInvalidInput is returned. If as a result of intersection a closed loop of new edges is created, a new face will be made. If an open loop of edges is made, it can be added to an existing loop as a spur. Or it can be added as a slit in the face.

◆ in()

virtual OdResult OdModelerGeometry::in ( OdStreamBuf pStreamBuf,
AfTypeVer typeVer = 0,
bool  standardSaveFlag = true 
)
pure virtual

Reads the ACIS data from the specified StreamBuf object into this ModelerGeometry object.

Remarks
The implementation of this function is responsible for determining the type (SAT/SAB) and version of the data read.
Parameters
pStreamBuf[in] Pointer to the StreamBuf object from which the data is to be read.
typeVer[out] Receives the type and version of the ACIS file.
standardSaveFlag[in] Controls the saving and restoring of used count data in the saved file.
Returns
Returns eOk if successful, or an appropriate error code if not.
Remarks
pStreamIn may be NULL.
See also
AfTypeVerEnum

◆ InsertControlPointsAtU()

virtual OdResult OdModelerGeometry::InsertControlPointsAtU ( double  dU,
const OdGePoint3dArray vCtrlPts,
const OdGeDoubleArray vWeights 
)
pure virtual

Inserts a row of control points at the given u knot parameter.

Parameters
dU[in] u parameter.
vCtrlPts[in] An array of control points to be added.
vWeights[in] Array of weight values to add if the surface is rational.
Returns
Returns eOk if successful. If the dU parameter is out of range, returns eOutOfRange.

◆ InsertControlPointsAtV()

virtual OdResult OdModelerGeometry::InsertControlPointsAtV ( double  dV,
const OdGePoint3dArray uCtrlPts,
const OdGeDoubleArray uWeights 
)
pure virtual

Inserts a row of control points at the given v knot parameter.

Parameters
dU[in] v parameter.
vCtrlPts[in] An array of control points to be added.
vWeights[in] Array of weight values to add if the surface is rational.
Returns
Returns eOk if successful. If the dU parameter is out of range, returns eOutOfRange.

◆ InsertKnot()

virtual OdResult OdModelerGeometry::InsertKnot ( double  dVal,
int  iUorV 
)
pure virtual

Inserts a knot at the specified u or v parameter. The knot insertion doesn't modify the shape of the ModelerGeometry object.

Parameters
dVal[in] New knot.
iUorV[in] u or v parameter.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ internalSubentId()

virtual OdDbSubentId OdModelerGeometry::internalSubentId ( void ent) const
pure virtual

For internal use only.

Parameters
ent[in] ACIS object pointer.

◆ internalSubentPtr()

virtual void* OdModelerGeometry::internalSubentPtr ( const OdDbSubentId id) const
pure virtual

For internal use only.

Parameters
id[out] Subentity ID in the ACIS object.

◆ intersectWith() [1/2]

virtual OdResult OdModelerGeometry::intersectWith ( const OdDbEntity ent,
OdDb::Intersect  intType,
const OdGePlane projPlane,
OdGePoint3dArray points,
OdGsMarker  thisGsMarker,
OdGsMarker  otherGsMarker 
) const
pure virtual

This method returns eOk if successful.

Parameters
ent[in] An entity with which this entity is intersected.
intType[in] Type of intersection.
projPlane[in] A projection plane for the intersection of the two entities.
points[out] An array of points in which the intersection points should be appended.
thisGsMarker[in] GS marker of the subentity of this entity which is involved in the intersection.
otherGsMarker[in] GS marker of the subentity of the entity pointed to by pEnt which is involved in the intersection.

◆ intersectWith() [2/2]

virtual OdResult OdModelerGeometry::intersectWith ( const OdDbEntity ent,
OdDb::Intersect  intType,
OdGePoint3dArray points,
OdGsMarker  thisGsMarker,
OdGsMarker  otherGsMarker 
) const
pure virtual

This method returns eOk if successful.

Parameters
ent[in] An entity with which this entity is intersected.
intType[in] Type of intersection.
points[out] An array of points in which the intersection points should be appended.
thisGsMarker[in] GS marker of the subentity of this entity which is involved in the intersection.
otherGsMarker[in] GS marker of the subentity of the entity pointed to by pEnt which is involved in the intersection.

◆ isClosedInU()

virtual OdResult OdModelerGeometry::isClosedInU ( bool &  bIsClosed) const
pure virtual

Determines whether the ModelerGeometry object is closed in the u direction.

Parameters
bIsClosed[out] A passed-in parameter for returning the indicator of whether the ModelerGeometry object is closed in the u direction. bIsClosed is equal to true if the ModelerGeometry object is closed in the u direction, otherwise it is equal to false.
Returns
Returns eOk if successful.

◆ isClosedInV()

virtual OdResult OdModelerGeometry::isClosedInV ( bool &  bIsClosed) const
pure virtual

Determines whether the ModelerGeometry object is closed in the v direction.

Parameters
bIsClosed[out] A passed-in parameter for returning the indicator of whether the ModelerGeometry object is closed in the v direction. bIsClosed is equal to true if the ModelerGeometry object is closed in the v direction, otherwise it is equal to false.
Returns
Returns eOk if successful.

◆ isPeriodicInU()

virtual OdResult OdModelerGeometry::isPeriodicInU ( bool &  bIsPeriodic) const
pure virtual

Determines whether the ModelerGeometry object is periodic in the u direction.

Parameters
bIsPeriodic[out] A passed-in parameter for returning the indicator of whether the ModelerGeometry object is periodic in the u direction. bIsPeriodic is equal to true if the ModelerGeometry object is periodic in the u direction, otherwise it is equal to false.
Returns
Returns eOk if successful.

◆ isPeriodicInV()

virtual OdResult OdModelerGeometry::isPeriodicInV ( bool &  bIsPeriodic) const
pure virtual

Determines whether the ModelerGeometry object is periodic in the v direction.

Parameters
bIsPeriodic[out] A passed-in parameter for returning the indicator of whether the ModelerGeometry object is periodic in the v direction. bIsPeriodic is equal to true if the ModelerGeometry object is periodic in the v direction, otherwise it is equal to false.
Returns
Returns eOk if successful.

◆ isPlanar()

virtual OdResult OdModelerGeometry::isPlanar ( bool &  bIsPlanar,
OdGePoint3d ptOnSurface,
OdGeVector3d normal 
) const
pure virtual

Determines whether the ModelerGeometry object is a planar surface. If the surface is planar, also returns the plane information and normal. If the surface is planar, the method returns true via the bIsPlanar parameter, otherwise the method returns false.

Parameters
bIsPlanar[out] A passed-in parameter for returning the indicator of whether the surface is planar.
ptOnSurface[out] A passed-in parameter for returning the point on the surface (if the surface is planar).
normal[out] A passed-in parameter for returning the plane normal (if the surface is planar).
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ isPointOnSurface()

virtual OdResult OdModelerGeometry::isPointOnSurface ( const OdGePoint3d point,
bool &  bOnSurface 
) const
pure virtual

Determines whether a specified point is on the ModelerGeometry object. If the specified point is on the ModelerGeometry object, the method returns true via bOnSurface, otherwise the method returns false.

Parameters
point[in] A point.
bOnSurface[out] A passed-in parameter for returning the indicator of whether the specified point is on the surface.
Returns
Returns eOk if successful.

◆ isRational()

virtual OdResult OdModelerGeometry::isRational ( bool &  bIsRational) const
pure virtual

Determines whether the ModelerGeometry object is rational. If the ModelerGeometry object is rational, the method returns true, otherwise the method returns false.

Parameters
bIsRational[out] A passed-in parameter for returning the indicator of whether the ModelerGeometry object is rational.
Returns
Returns eOk if successful.

◆ modifyPositionAndTangent()

virtual OdResult OdModelerGeometry::modifyPositionAndTangent ( double  dU,
double  dV,
const OdGePoint3d point,
const OdGeVector3d uDeriv,
const OdGeVector3d vDeriv 
)
pure virtual

Adjusts the location and tangent of a point on this ModelerGeometry object with the specified parameter ([u, v]). The local control points are adjusted accordingly. If the pointer uDeriv and vDeriv are equal to NULL, then only the location of the point is adjusted.

Parameters
dU[in] u parameter.
dV[in] v parameter.
point[in] A new location of the point on the surface.
uDeriv[in] The tangent vector in the u direction.
vDeriv[in] The tangent vector in the v direction.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ ODRX_DECLARE_MEMBERS()

OdModelerGeometry::ODRX_DECLARE_MEMBERS ( OdModelerGeometry  )

◆ offsetBody()

virtual OdResult OdModelerGeometry::offsetBody ( double  offsetDistance)
pure virtual

Offsets all faces by the specified distance.

Parameters
offsetDistance)[in] A distance for offset.
Returns
Returns eOk if all faces are successfully offset, or an appropriate error code in other case. Returns eInvalidInput if the offsetDistance is less than -maxSide/2, where maxSide is the size of the greater side of the ModelerGeometry object's bounding box. Also, eInvalidInput is returned when the absolute value of offsetDistance is less than 1e-6.
Remarks
If a face has surfaces that cannot be offset, it is removed. Therefore, the offset operation can cause the ModelerGeometry object to become invalid.

◆ offsetFaces()

virtual OdResult OdModelerGeometry::offsetFaces ( const OdArray< OdDbSubentId * > &  faceSubentIds,
double  offsetDistance 
)
pure virtual

Offsets the specified faces of this ModelerGeometry object for the specified distance.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be offset.
offsetDistance[in] Offset distance.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
The following constraints are applied: number of specified faces (in faceSubentIds parameter) must be more than zero offsetDistance >= minus half of the max side of the ModelerGeometry object's bounding box |offsetDistance| >= 1e-6

◆ out()

virtual OdResult OdModelerGeometry::out ( OdStreamBuf pStreamBuf,
AfTypeVer  typeVer,
bool  standardSaveFlag = true 
) const
pure virtual

Writes the ACIS data from this ModelerGeometry object to the specified StreamBuf object.

Remarks
This function is responsible for converting the contained ACIS data to the specified type and format. If afVer == kAfTypeVerAny, then any type or version may be written.
Parameters
pStreamBuf[in] Pointer to the StreamBuf object to which the data is to be written.
typeVer[in] Type and version of the ACIS file.
standardSaveFlag[in] Controls the saving and restoring of used count data in the saved file.
Returns
Returns eOk if successful, or an appropriate error code if not.
See also
AfTypeVerEnum

◆ projectOnToEntity()

virtual OdResult OdModelerGeometry::projectOnToEntity ( const OdDbEntity pEntityToProject,
const OdGeVector3d projectionDirection,
OdDbEntityPtrArray projectedEntities 
) const
pure virtual

◆ rayTest()

virtual OdResult OdModelerGeometry::rayTest ( const OdGePoint3d rayBasePoint,
const OdGeVector3d rayDir,
double  rayRadius,
OdArray< OdDbSubentId > &  subEntIds,
OdGeDoubleArray parameters 
) const
pure virtual

Creates a ray which starts from a specified point and has a specified direction.

Parameters
rayBasePoint[in] A base point to start a ray from.
rayDir[in] A ray direction.
rayRadius[in] A ray radius. It defines the tolerance used for intersection checking.
subEntIds[out] A reference to subentities array to return. Returned subentities can be one of the following: faces, edges, or vertices.
parameters[out] An array of parameters to return. Parameters shows the intersection between a ray and subentities.
Returns
Returns eOk if a ray was successfully created or an appropriate error code in the other case.

◆ rayTestEntities()

virtual OdResult OdModelerGeometry::rayTestEntities ( const OdGePoint3d rayBasePoint,
const OdGeVector3d rayDir,
double  dRayRadius,
std::vector< OdDbEntityPtr > &  i_entities,
OdArray< OdDbSubentId > &  o_subEntIds,
std::vector< int > &  o_indexentities,
OdGeDoubleArray parameters 
) const
pure virtual

◆ rayTestSolids()

virtual OdResult OdModelerGeometry::rayTestSolids ( const OdGePoint3d rayBasePoint,
const OdGeVector3d rayDir,
double  dRayRadius,
std::vector< OdDb3dSolidPtr > &  i_solids,
OdArray< OdDbSubentId > &  o_subEntIds,
std::vector< int > &  o_indexsolids,
OdGeDoubleArray parameters 
) const
pure virtual

◆ rebuild()

virtual OdResult OdModelerGeometry::rebuild ( int  iUDegree,
int  iVDegree,
int  iNumUCtrlPts,
int  iNumVCtrlPts,
bool  bRestore 
)
pure virtual

Rebuilds this ModelerGeometry object with a specified new degree and quantity of control points in the u and v directions. This operation modifies the shape of the ModelerGeometry object.

Parameters
iUDegree[in] The new degree value in the u direction.
iVDegree[in] The new degree value in the v direction.
iNumUCtrlPts[in] The new quantity of control points in the u direction.
iNumVCtrlPts[in] The new quantity of control points in the v direction.
bRestore[in] Restore flag.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ RemoveControlPointsAtU()

virtual OdResult OdModelerGeometry::RemoveControlPointsAtU ( int  iUDegree)
pure virtual

Removes a row of control points at the specified position in the control points array. The method modifies the shape of the ModelerGeometry object.

Parameters
iUDegree[in] An index of the control point to remove from the array.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ RemoveControlPointsAtV()

virtual OdResult OdModelerGeometry::RemoveControlPointsAtV ( int  iVDegree)
pure virtual

Removes a row of control points at the specified position in the control points array. The method modifies the shape of the ModelerGeometry object.

Parameters
iVDegree[in] An index of the control point to remove from the array.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ removeFaces()

virtual OdResult OdModelerGeometry::removeFaces ( const OdArray< OdDbSubentId * > &  faceSubentIds)
pure virtual

Removes the specified faces from this ModelerGeometry object.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be removed.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
After removing the specified faces, the adjacent faces will enlarge to fill the gaps.

◆ revolve()

virtual OdResult OdModelerGeometry::revolve ( const OdDbRegion pRegion,
const OdGePoint3d axisPoint,
const OdGeVector3d axisDir,
double  angleOfRevolution,
bool  isSolid = true 
)
pure virtual

Creates a solid by revolving the specified region.

Parameters
pRegion[in] Pointer to the region to be extruded.
axisPoint[in] Point on the axis of revolution.
axisDir[in] Vector defining the axis of revolution.
angleOfRevolution[in] Angle of revolution.
Remarks
The axis of revolution is projected onto the plane of the region, parallel to its normal.
All angles are expressed in radians.

The following constraints apply:

The projected axis of revolution cannot intersect the region. angleOfRevolution >= 1e-6

◆ separateBody()

virtual OdResult OdModelerGeometry::separateBody ( OdDb3dSolidPtrArray newSolids)
pure virtual

Separates the ModelerGeometry object into an array of solids representing the additional disjoint volumes. This ModelerGeometry object is reduced to a solid with one volume.

Parameters
newSolids[out] Reference to an array of pointers to OdDb3dSolid objects representing the additional disjoint volumes.
Returns
Returns eOk if separating was successful or an appropriate error code in other case.
Remarks
The calling application is responsible for the resulting entities (either appending them to a database or deleting them when they are no longer needed). If the new solids from the output array are not appended to the database, there will be a memory leak.

◆ set()

virtual OdResult OdModelerGeometry::set ( int  iUDegree,
int  iVDegree,
bool  bRational,
int  iUNumControlPoints,
int  iVNumControlPoints,
const OdGePoint3dArray ctrlPtsArr,
const OdGeDoubleArray weights,
const OdGeKnotVector uKnots,
const OdGeKnotVector vKnots 
)
pure virtual

◆ setBody()

virtual OdResult OdModelerGeometry::setBody ( const void )
inlinevirtual

Definition at line 1118 of file ModelerGeometry.h.

◆ setColorToSubents()

virtual OdResult OdModelerGeometry::setColorToSubents ( OdCmColor const &  color)
pure virtual

Sets the new color for subentities.

Parameters
color[in] New color value.
Returns
Returns eOk if the new color value was successfully set or an appropriate error code in the other case.

◆ setControlPointAndWeight()

virtual OdResult OdModelerGeometry::setControlPointAndWeight ( int  iUIndex,
int  iVIndex,
const OdGePoint3d point,
double  weight 
)
pure virtual

◆ setControlPoints()

virtual OdResult OdModelerGeometry::setControlPoints ( int  iUCount,
int  iVCount,
const OdGePoint3dArray points 
)
pure virtual

Sets the control points.

Parameters
iUCount[in] The new value of the quantity of control points in the u direction.
iVCount[in] The new value of the quantity of control points in the v direction.
points[in] New array of control points (in WCS coordinates).
Returns
Returns eOk if control points were successfully set or an appropriate error code in the other case.
Remarks
The new quantity of control points in the u and v direction must be equal to the current values. New control points are allocated in an AcGePoint3d array. The column indexes are for the v direction, and row indexes are for the u direction. For example, if the surface has n control points in the u direction and m control points in the v direction, the array looks like [0,0], [0,1], ...[0,vCount-1], ..., [uCount-1,0], [uCount-1,1], ...[uCount-1,vCount-1].

◆ setFACETRES()

virtual bool OdModelerGeometry::setFACETRES ( double  facetRes)
pure virtual

Sets the Facetres for this ModelerGeometry object.

Parameters
facetRes[in] Facet resolution.

◆ setMaterialMapperToSubents()

virtual OdResult OdModelerGeometry::setMaterialMapperToSubents ( OdGeMatrix3d mx,
OdUInt8 projection,
OdUInt8 tiling,
OdUInt8 autoTransform 
)
pure virtual

◆ setMaterialResolver()

virtual OdResult OdModelerGeometry::setMaterialResolver ( const OdMaterialResolver pResolver)
pure virtual

◆ setMaterialToSubents()

virtual OdResult OdModelerGeometry::setMaterialToSubents ( OdDbObjectId  materialId)
pure virtual

Sets the material.

Parameters
materialId[in] New material.
Returns
Returns eOk if the new material value was successfully set or an appropriate error code in the other case.

◆ setMMPerUnit()

virtual bool OdModelerGeometry::setMMPerUnit ( double  mmPerUnit)
pure virtual

Sets the mm/unit for this ModelerGeometry object.

Parameters
mmPerUnit[in] mm/unit.
Returns
Returns true if and only if successful.

◆ setSubentColor()

virtual OdResult OdModelerGeometry::setSubentColor ( const OdDbSubentId subentId,
const OdCmColor color 
)
pure virtual

Sets the color of the specified face or edge subentity.

Parameters
subentId[in] ID of the subentity (face or edge) to be colored.
color[in] Color value to set.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ setSubentMaterial()

virtual OdResult OdModelerGeometry::setSubentMaterial ( const OdDbSubentId subentId,
OdDbObjectId  matId 
)
pure virtual

Sets a material for the specified subentity.

Parameters
subentId[in] Subentity ID.
matId[in] Object ID for the material.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
To remove the currently assigned material, set matId parameter value to NULL.

◆ setSubentMaterialMapper()

virtual OdResult OdModelerGeometry::setSubentMaterialMapper ( const OdDbSubentId subentId,
OdGeMatrix3d mx,
OdUInt8 projection,
OdUInt8 tiling,
OdUInt8 autoTransform 
)
pure virtual

◆ setSubentPath()

virtual OdResult OdModelerGeometry::setSubentPath ( OdBrEntity ,
OdDbFullSubentPath  
)
inlinevirtual

Definition at line 139 of file ModelerGeometry.h.

◆ shellBody()

virtual OdResult OdModelerGeometry::shellBody ( const OdArray< OdDbSubentId * > &  faceSubentIds,
double  offsetDistance 
)
pure virtual

Transforms this ModelerGeometry object into a thin-walled ModelerGeometry object shell by offsetting faces.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be removed from the shell.
offsetDistance[in] Offset distance for each face.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
Offset can have an outside or inside direction related to the ModelerGeometry object, depending on the sign of the offsetDistance parameter: positive value means outside direction negative value means inside direction

◆ sliceByPlane()

virtual OdResult OdModelerGeometry::sliceByPlane ( const OdGePlane slicePlane,
OdDbSurfacePtr pNegHalfSurface,
OdDbSurfacePtr pNewSurface,
bool  bNotModifyItself 
)
pure virtual

Slices this ModelerGeometry object with the specified plane and sets the object to be the portion on the positive normal side plane.

Parameters
slicePlane[in] Reference to a plane object to be used for slicing the ModelerGeometry object.
pNegHalfSurface[out] Pointer to a new surface representing the negative side of the object that is sliced by the specified plane.
pNewSurface[out] Pointer to a new surface representing the positive half of the object that is sliced by the specified plane.
bNotModifyItself[in] Boolean flag.
Returns
Returns eOk if the slicing operation is successfully performed or an appropriate error code otherwise.

◆ sliceBySurface()

virtual OdResult OdModelerGeometry::sliceBySurface ( const OdDbSurfacePtr  pSlicingSurface,
OdDbSurfacePtr pNegHalfSurface,
OdDbSurfacePtr pNewSurface,
bool  bNotModifyItself 
)
pure virtual

Slices this ModelerGeometry object with the specified surface.

Parameters
pSlicingSurface[in] Pointer to the surface to be used to slice this object.
pNegHalfSurface[out] Pointer to a new surface object representing the other (negative) side of the sliced surface.
pNewSurface[out] Pointer to a new surface object representing the positive side of the sliced surface.
bNotModifyItself[in] Boolean flag.
Returns
Returns eOk if the slicing operation is successfully performed or an appropriate error code otherwise.

◆ taperFaces()

virtual OdResult OdModelerGeometry::taperFaces ( const OdArray< OdDbSubentId * > &  faceSubentIds,
const OdGePoint3d basePoint,
const OdGeVector3d draftVector,
double  draftAngle 
)
pure virtual

Tapers specified faces about a specified base point and draft vector for a specified draft angle.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be tapered.
basePoint[in] Reference to the base point of the draft plane.
draftVector[in] Reference to the draft direction vector.
draftAngle[in] Draft angle in radians.
Returns
Returns eOk if successful or an appropriate error code in the other case.
Remarks
The base point and draft vector define a draft plane about which faces are tapered. If a face is lying in the draft plane, it will not be modified.

◆ thicken()

virtual OdResult OdModelerGeometry::thicken ( double  thickness,
bool  bBothSides,
OdDb3dSolidPtr pSolid 
) const
pure virtual

Creates a 3D solid object by thickening the surface by a specified amount.

Parameters
thickness[in] Amount to thicken the surface.
bBothSides[in] Flag indicating whether the thickening should be applied to both sides of the surface.
pSolid[out] Reference to an OdDb3dSolid object pointer created during the thickening. If thickening fails, this parameter is NULL.
Returns
Returns eOk if successful, or an appropriate error code otherwise.

◆ transformBy()

virtual void OdModelerGeometry::transformBy ( const OdGeMatrix3d xfm)
pure virtual

Applies the specified 3D transformation matrix to this ModelerGeometry object.

Parameters
xfm[in] 3D transformation matrix.

◆ transformFaces()

virtual OdResult OdModelerGeometry::transformFaces ( const OdArray< OdDbSubentId * > &  faceSubentIds,
const OdGeMatrix3d matrix 
)
pure virtual

Transforms the specified faces of a ModelerGeometry object by applying the transformation matrix for rotation and (or) moving the faces.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be transformed.
matrix[in] Transformation matrix to be applied to the specified faces.
Returns
Returns eOk if successful or an appropriate error code in other case.

◆ trimSurface()

virtual OdResult OdModelerGeometry::trimSurface ( const OdDbObjectIdArray toolIds,
const OdDbObjectIdArray toolCurveIds,
const OdGeVector3dArray projVectors,
const OdGePoint3d pickPoint,
const OdGeVector3d viewVector,
bool  bAutoExtend,
bool  bAssociativeEnabled 
)
pure virtual

Trims the surface with specified cutting curves. When curves are used, the actual trimming boundary is formed by projecting the curves onto the surface, so the additional information of project direction needs to be provided.

Parameters
toolIds[in] Reference to an array of the cutting entity's IDs. Bodies of specified entities are used to trim the specified surface.
toolCurveIds[in] Reference to an array of the cutting curve's IDs. The specified surface will be trimmed by projecting curves to it.
projVectors[in] Reference to an array of projection direction for each cutting curve.
pickPoint[in] Pick point that specifies which area of the specified surface must be trimmed.
viewVector[in] Vector representing the view direction for creating a ray starting from the pick point.
bAutoExtend[in] If this option is set, then when a tool body consists of a single face with analytic geometry, the underlying geometry will be extended as much as possible to make sure the surface is trimmed. The tool body supplied will not be modified.
bAssociativeEnabled[in] Specifies whether the surface trimming operation should be associative.
Returns
Returns eOk if trimming operation was successfully finished or an appropriate error code otherwise.

◆ worldDraw()

virtual bool OdModelerGeometry::worldDraw ( OdGiCommonDraw pWd,
OdUInt32  geomType,
const NumIsolines pNumIsolines = 0 
)
pure virtual

Creates a viewport-independent geometric representation of this ModelerGeometry object.

Returns
Returns true if and only if the geometric representation can be generated in a viewport-independent manner.
Remarks
A return value of false indicates that viewportDraw() must be called for this object.

The 3D GS will call this function at least once, but may cache subsequent display updates.

Parameters
pWd[in] Pointer to the OdGiCommonDraw interface.
geomType[in] Geometry type.
pNumIsolines[in] Number of isolines in U and V directions.
Remarks
geomType must be a combination of one or more of the following:

Value kNothing 0
kIsolines 1 kEdges 2 kShells 4 kOrderedEdges 8 kSurfIsolines 16


The documentation for this class was generated from the following file: