CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
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 getEdgeSubentityGeometry (OdArray< OdUInt32 > indexesOfEdgeCalculation, OdGeCurve3d *&pEdgeCurve)=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 OdResult getHlrCurves (OdEdgeHLREdgeVisitor &edgeVisitor, const OdGeVector3d &viewDir, const OdDbEntityPtrArray &entities, const OdGeMatrix3dArray *xforms=NULL, OdEdgeTypeFlags edgeType=kTangent)=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 (const OdArray< OdDbSubentId > *aSubents=NULL)=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 (OdDbDatabase *database, OdDb::BoolOperType operation, OdModelerGeometry *otherBody, geomType typeThis, geomType typeOther)=0
 
virtual OdResult booleanOper (OdDbDatabase *database, OdDb::BoolOperType operation, const OdModelerGeometry *otherBody, geomType typeThis, geomType typeOther, OdSmartPtr< OdModelerGeometry > &result, OdDbEntityPtrArray *intersectionEntities=NULL) const =0
 
virtual OdResult checkInterference (OdDbDatabase *database, const OdModelerGeometry *otherSolid, bool createNewSolid, bool &solidsInterfere, OdDb3dSolidPtr &commonVolumeSolid) const =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 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 createBlendObject (OdDbEntityPtrArray &blendedEdges, OdDbBlendOptions &blendOptions, 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 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 (OdDbNurbSurfacePtrArray &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)
 
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 getSectionViewInfo (const OdArray< OdDbEntityPtr > &pEnts, const OdGePoint3dArray &pPoints, const OdGeVector3d &normal, OdArray< OdDbEntityPtr > &backgroundEnts, OdArray< OdDbEntityPtr > &intHatchEnts, OdArray< OdDbEntityPtr > &intBoundaryEnts, OdArray< OdDbEntityPtr > &curveVisibilityEdges, SectionType sectType=kFull_ST, OdEdgeTypeFlags edgeVis=kTangent)=0
 
virtual OdResult createCachedCurves (OdGeCurve3dPtrArray &pCurves)=0
 
virtual OdResult restoreAttributes (OdModelerGeometry *oldmodeler)=0
 
virtual OdResult addSubentitySpecialSettings (AcisDataType addedDT, AcisDataTypeArrFirst addedDTFirst, const OdDbSubentId subentId, OdArray< OdUInt32 > &retArray, OdUInt32 idx)=0
 
virtual OdResult convertTo (const OdGePoint3dArray &arrVertexes, const OdInt32Array &arrEdges, const OdInt32Array &arrFaces, OdGiFaceData &fd, OdBoolArray &arrFacesColors, OdBoolArray &arrFacesMaterials, OdDbEntity *pEntity)=0
 
virtual bool getFaceMesh (GeMesh::OdGeTrMesh &mesh, OdGsMarker iFace, const wrTriangulationParams &triangulationParams)=0
 
virtual OdResult auditAcisData (OdDbAuditInfo *pInfo, const OdRxObject *pObj)
 
virtual void enableAcisAudit (bool bEnable)=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 valid within the R15 .dxf file.

Corresponding C++ library: ModelerGeometry <group Other_Classes>

Definition at line 78 of file ModelerGeometry.h.

Member Enumeration Documentation

◆ geomType

Defines geometry types.

Enumerator
kUndefined 

Undefined.

kBody 

Body.

kSolid 

Solid.

kRegion 

Region.

kSurface 

Surface.

Definition at line 478 of file ModelerGeometry.h.

◆ MaterialState

Describes a material state.

Enumerator
kNoMaterials 

No materials.

kHasMaterials 

Has materials.

kUnknown 

Unknown.

Definition at line 425 of file ModelerGeometry.h.

Constructor & Destructor Documentation

◆ OdModelerGeometry()

OdModelerGeometry::OdModelerGeometry ( )
inlineprotected

Definition at line 82 of file ModelerGeometry.h.

Member Function Documentation

◆ addSubentitySpecialSettings()

virtual OdResult OdModelerGeometry::addSubentitySpecialSettings ( AcisDataType  addedDT,
AcisDataTypeArrFirst  addedDTFirst,
const OdDbSubentId  subentId,
OdArray< OdUInt32 > &  retArray,
OdUInt32  idx 
)
pure virtual

Adds special settings to a subentity.

Parameters
addedDT[out] Added ACIS data type.
addedDTFirst[out] Added ACIS data type.
subentId[in] Subentity ID.
retArray[in] Settings data array.
idx[in] Settings index.
Returns
eOk if successful or an appropriate error code otherwise.

◆ auditAcisData()

virtual OdResult OdModelerGeometry::auditAcisData ( OdDbAuditInfo pInfo,
const OdRxObject pObj 
)
inlinevirtual

This method is not implemented.

Returns
eNotImplemented.

Definition at line 2351 of file ModelerGeometry.h.

◆ body()

virtual void * OdModelerGeometry::body ( ) const
inlinevirtual

Definition at line 1314 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 ( OdDbDatabase database,
OdDb::BoolOperType  operation,
const OdModelerGeometry otherBody,
geomType  typeThis,
geomType  typeOther,
OdSmartPtr< OdModelerGeometry > &  result,
OdDbEntityPtrArray intersectionEntities = NULL 
) const
pure virtual

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

Parameters
database[in] Database of the ModelerGeometry objects.
operation[in] Type of Boolean operation.
otherBody[in] Pointer to the other ModelerGeometry object.
typeThis[in] Type of this ModelerGeometry object.
typeOther[in] Type of the other ModelerGeometry object.
result[out] Receives pointer to the resulting ModelerGeometry object.
intersectionEntities[out] (Optional) Array of intersection entities.
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. Both ModelerGeometry objects need to be from the same database. If intersectionEntities is present, it recieves nonregular intersections as OdDbCurve-s and OdDbPoint-s.

◆ booleanOper() [2/2]

virtual OdResult OdModelerGeometry::booleanOper ( OdDbDatabase database,
OdDb::BoolOperType  operation,
OdModelerGeometry otherBody,
geomType  typeThis,
geomType  typeOther 
)
pure virtual

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

Parameters
database[in] Database of the ModelerGeometry objects.
operation[in] Type of Boolean operation.
otherBody[in] Pointer to the other ModelerGeometry object.
typeThis[in] Type of this ModelerGeometry object.
typeOther[in] Type of the other ModelerGeometry object.
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. Result is stored in this object. otherBody will be modified.

◆ 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
True if and only if successful; false otherwise.

◆ 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
eOk if successful or an appropriate error code otherwise.

◆ ChangeFacesDoubleSidedParam()

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

Sets the parameter indicating whether faces are double-sided or not.

Parameters
isDoubleSided[in] True for double-sided faces; false for non-double-sided faces.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] List of cross-section curves.
allOpen[out] Passed-in parameter indicating whether all of the cross-section curves are open.
allClosed[out] Passed-in parameter indicating whether all of the cross-section curves are closed.
allPlanar[out] 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
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] List of guide curves.
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
eOk if guide curves are valid or eInvalidInput otherwise.

◆ checkInterference()

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

Checks whether the solid interferes with another solid object.

Parameters
database[in] Database of the ModelerGeometry objects.
otherSolid[in] Pointer to another ModelerGeometry solid object for checking interference.
createNewSolid[in] Flag determining where a new solid object containing the interference must be created.
solidsInterfere[out] Reference to a boolean variable indicating whether the result of the interference checking will be stored.
commonVolumeSolid[out] Reference to a pointer to a new solid containing the interference of the origin solid and otherSolid.
Returns
eOk if operation is successful or an appropriate error code in other case.

◆ 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] Pointer to the path curve (can be NULL).
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
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] Pointer to the entity (curve or region) to be revolved.
axisPnt[in] Point on the axis of revolution.
axisDir[in] Vector determining the direction of the revolution axis.
closed[out] Passed-in parameter for returning the indicator determining whether the revolved entity is closed.
endPointsOnAxis[out] 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] 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
eOk if the 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] Pointer to the curve, region, or planar surface to be swept.
planarity[out] Passed-in parameter for returning the planarity flag of the entity.
pnt[out] 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] 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] Passed-in parameter for returning the closed flag determining whether an entity to be swept is a closed entity.
approxArcLen[out] Passed-in parameter for returning the approximate arc length.
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
eOk if successful or an appropriate error code in the other case.
Remarks
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

Checks whether a specified sweep path curve entity is valid.

Parameters
pPathEnt[in] Pointer to the curve entity that determines the path to sweep along.
displayErrorMessages[in] Indicates whether error messages are displayed. Default value is false.
Returns
eOk if the specified entity is valid, or eInvalidInput otherwise.

◆ 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
eOk if successful or an appropriate error code otherwise.

◆ clear()

virtual OdResult OdModelerGeometry::clear ( )
pure virtual

Clears the contents of this ModelerGeometry object.

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 ( const OdArray< OdDbSubentId > *  aSubents = NULL)
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,
OdBoolArray arrFacesColors,
OdBoolArray arrFacesMaterials,
OdDbEntity pEntity 
)
pure virtual

Creates a new OdDb3dSolid or OdDbSurface object.

Parameters
arrVertexes[in] Array containing vertices.
arrEdges[in] Array containing vertex indices.
arrFaces[in] Array containing faces defined by loops.
fd[in] Face attributes (materials, colors).
arrFacesColors[in] True at a particular index means that the face has colors.
arrFacesMaterials[in] True at a particular index means that the face has material.
pEntity[out] Created entity.
Returns
eOk — if entity created successfully. eInvalidContext — if it is not possible to create an OdDb3dSolid. eInvalidInput — if any other error occured.

◆ convertToNurbSurface()

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

Converts this ModelerGeometry object to nurb surfaces.

Parameters
nurbSurfaceArray[in] Array of generated nurb surfaces.
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
eOk if successful, or an appropriate error code otherwise.

◆ copySubEntity()

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

Creates a copy of a specified subentity of this entity.

Parameters
subentId[in] ID of the subendity to be copied.
newEntity[out] Reference to the created copy of the subentity.
Returns
eOk if successful or an appropriate error code in the other case.

◆ createBlendObject()

virtual OdResult OdModelerGeometry::createBlendObject ( OdDbEntityPtrArray blendedEdges,
OdDbBlendOptions blendOptions,
bool  isSolid = true 
)
pure virtual

Creates a blend object from the given edges.

Parameters
blendedEdges[in] Array of blended edges.
blendOptions[in] Options for blending.
isSolid[in] Boolean flag that indicates that this ModelerGeometry object is solid.
Returns
eOk if successful or an appropriate error code otherwise.
Remarks
Blending parameters can be passed with the blendOptions parameter.

◆ 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.
Remarks
The following constraints apply: xLen >= 1e-6 yLen >= 1e-6 zLen >= 1e-6

◆ createCachedCurves()

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

Creates cached curves.

Parameters
pCurves[out] Array of Curve3dPtr objects.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Pointer to the swept entity.
directionVec[in] Vector determining the direction and length of extruding.
sweepOptions[in] Set of sweeping options.
isSolid[in] Boolean flag that indicates that this ModelerGeometry object is solid.
bHistoryEnabled[in] Boolean flag that indicates whether history recording is enabled.
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 the 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 the 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
eOk if successful or an appropriate error code otherwise.
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 OdDb3dSolid entity pointed to by pFromEntity.
Returns
eOk if successful, or an appropriate error code otherwise.

◆ 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

◆ 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 that indicates that this ModelerGeometry object is solid.
Returns
eOk if successful or an appropriate error code otherwise.
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 that indicates that this ModelerGeometry object is solid.
Returns
Returns eOk if successful or an appropriate error code otherwise.
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
eOk if successful or an appropriate error code otherwise.
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 that indicates that this ModelerGeometry object is solid.
bHistoryEnabled[in] Boolean flag that indicates whether history recording is enabled.
Returns
eOk if successful or an appropriate error code otherwise.
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.
limitingFlags[in] Reserved for internal use.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Reference to an entity array for representing resulting sections.
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] Sphere 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 that indicates that this ModelerGeometry object is solid.
bHistoryEnabled[in] Boolean flag that indicates whether history recording is enabled.
Returns
eOk if successful or an appropriate error code otherwise.
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 the 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.

Parameters
pVd[in] Pointer to the OdGiViewportDraw interface.
Remarks
Causes this ModelerGeometry object to describe its geometry to the specified OdGiViewportDraw object. This function is called once per viewport.
It is possible to have totally different images in each viewport: a schematic in one viewport, a layout in another.

◆ enableAcisAudit()

virtual void OdModelerGeometry::enableAcisAudit ( bool  bEnable)
pure virtual

Enables or disables ACIS data audit.

Parameters
bEnable[in] True to enable ACIS data audit; false to disable ACIS data audit.

◆ 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] Degree of derivatives to evaluate.
point[out] Passed-in parameter for returning the evaluated position on the ModelerGeometry object.
derivatives[out] Passed-in parameter for returning derivatives array of vectors, in the order of uDeriv, vDeriv, uuDeriv, uvDeriv, vvDeriv.
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] Passed-in parameter for returning the evaluated position on the ModelerGeometry object.
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] Passed-in parameter for returning the evaluated position on the ModelerGeometry object.
uDeriv[out] Passed-in parameter for returning the first derivative with respect to U.
vDeriv[out] Passed-in parameter for returning the first derivative with respect to V.
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] Passed-in parameter for returning the evaluated position on the surface.
uDeriv[out] Passed-in parameter for returning the first derivative with respect to U.
vDeriv[out] Passed-in parameter for returning the first derivative with respect to V.
uuDeriv[out] Passed-in parameter for returning the second derivative with respect to U twice.
uvDeriv[out] Passed-in parameter for returning the second derivative with respect to U and V.
vvDeriv[out] Passed-in parameter for returning the second derivative with respect to V twice.
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
True if successful; false otherwise.
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, determining whether edges need to be extended or stretched.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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.
isSolid[in] Boolean flag that indicates that this ModelerGeometry object is solid.
Remarks
The extrusion direction is along the normal of the region. Height can 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
eOk if extruding operation is successful or an appropriate error code otherwise.
Remarks
Entity path must not have self-intersections, and it is recommended that the path does 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
eOk if successful or an appropriate error code otherwise.
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 the height is positive, the direction is along the normal (extruding faces outward from the drawing object). If the height is negative, the 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 the 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: The 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). Cannot be NULL.
Returns
eOk if successful or an appropriate error code otherwise.
Remarks
Faces for extrusion must be planar.

The 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
eOk if successful or an appropriate error code otherwise.

◆ generateMesh()

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

This method is not implemented.

Returns
eNotImplemented.

Definition at line 156 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

Retrieves parameters of this ModelerGeometry object.

Parameters
iUDegree[out] Degree of the ModelerGeometry object in the U direction.
iVDegree[out] Degree of the ModelerGeometry object in the V direction.
bRational[out] Flag that indicates whether the ModelerGeometry object is rational.
iUNumControlPoints[out] Quantity of control points in the U direction.
iVNumControlPoints[out] Quantity of control points in the V direction.
ctrlPtsArr[out] Array of control points.
weights[out] Array of weight values.
uKnots[out] Knot vector in the U direction.
vKnots[out] Knot vector in the V direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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
eOk if successful or an appropriate error code otherwise.
Remarks
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: The axes are perpendicular to each other. The 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
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 box as minimum and maximum 3D points.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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

Retrieves the control point and weight on the ModelerGeometry object by the specified indices (U, V).

Parameters
iUIndex[in] U direction index.
iVIndex[in] V direction index.
point[out] Control point.
weight[out] Weight value.
bIsRational[out] Flag determining whether this control point is rational.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Quantity of control points in the U direction.
iVCount[out] Quantity of control points in the V direction.
points[out] Array of control points (in WCS coordinates).
Returns
eOk if control points were successfully returned, or an appropriate error code otherwise.
Remarks
The control points will be allocated in the passed-in OdGePoint3d array. The column indices are for the V direction, and row indices 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] Passed-in parameter for returning the degree in the U direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ getDegreeInV()

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

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

Parameters
iDegree[out] Passed-in parameter for returning the degree in the V direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ getEdgeSubentityGeometry()

virtual OdResult OdModelerGeometry::getEdgeSubentityGeometry ( OdArray< OdUInt32 indexesOfEdgeCalculation,
OdGeCurve3d *&  pEdgeCurve 
)
pure virtual

◆ getFaceMesh()

virtual bool OdModelerGeometry::getFaceMesh ( GeMesh::OdGeTrMesh mesh,
OdGsMarker  iFace,
const wrTriangulationParams triangulationParams 
)
pure virtual

Gets a mesh of the face.

Parameters
mesh[out] Resulting mesh.
iFace[in] Face GS marker.
triangulationParams[in] Triangulation parameters.
Returns
Thue if successful or false otherwise.

◆ getGsMarkersAtSubentPath()

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

Returns an array of GS markers.

Parameters
subPath[in] Full subentity path object identifying the subentity.
gsMarkers[out] Array with GS markers for the subentities.
Returns
eOk if successful or an appropriate error code otherwise.

◆ getHlrCurves()

virtual OdResult OdModelerGeometry::getHlrCurves ( OdEdgeHLREdgeVisitor edgeVisitor,
const OdGeVector3d viewDir,
const OdDbEntityPtrArray entities,
const OdGeMatrix3dArray xforms = NULL,
OdEdgeTypeFlags  edgeType = kTangent 
)
pure virtual

Creates a view-dependent representation which consists of visible and hidden curves of input objects.

Parameters
edgeVisitor[in/out] Receives edges as OdGeCurves and it's visible/hidden segments.
viewDir[in] View direction (normal to projection plane).
entities[in] Entities (solids and surfaces) for which hidden and visible lines will be calculated.
xforms[in] Transformation matrices.
edgeType[in] Flag for excluding some type of edges (tangent edges for example).
Returns
eOk if successful, or an appropriate error code if not.

◆ 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
eOk if successful or an appropriate error code otherwise.

◆ 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
eOk if successful or an appropriate error code otherwise.

◆ 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] Static array for returning X, Y, Z moments of inertia of the ModelerGeometry object.
prodInertia[out] Static array for returning X, Y, Z products of inertia of the ModelerGeometry object.
prinMoments[out] Static array for returning X, Y, Z principal moments of the ModelerGeometry object.
prinAxes[out] Static array for returning an OdGeVector3d object, determining principal axes of the ModelerGeometry object.
radiiGyration[out] Static array for returning X, Y, Z radii of gyration of the ModelerGeometry object.
extents[out] Reference to an OdGeExtents3d object for returning the bounding box of the ModelerGeometry object.
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 value for this ModelerGeometry object.

Parameters
mmPerUnit[out] mm/unit value.
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] Passed-in parameter for returning the normal vector.
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] Passed-in parameter for returning the quantity of control points in the U direction.
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] Passed-in parameter for returning the quantity of control points in the V direction.
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] Passed-in parameter for returning the quantity of knots in the U direction.
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] Passed-in parameter for returning the quantity of knots in the V direction.
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
iSpan[out] Passed-in parameter for returning the number of simple patches in the U direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ getNumberOfSpansInV()

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

Returns the simple patches in the V direction.

Parameters
iSpan[out] Passed-in parameter for returning the number of simple patches in the V direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ getNurbCurvesCache()

virtual bool OdModelerGeometry::getNurbCurvesCache ( OdGeCurve3dPtrArray ) const
inlinevirtual

Definition at line 1310 of file ModelerGeometry.h.

◆ getObjectMesh()

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

Gets the mesh of this ModelerGeometry object.

Parameters
faceter[in] Faceter settings.
vertexArray[out] Array of vertices.
faceArray[out] Array of faces.
faceData[out] Face data.
Returns
eOk if successful or an appropriate error code in the other case.

◆ 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] Point on the ModelerGeometry object.
dU[in] Passed-in parameter for returning the value of the U parameter.
dV[in] Passed-in parameter for returning the value of the V parameter.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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
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] Passed-in parameter for returning the period value in the U direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Passed-in parameter for returning the period value in the V direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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
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 the 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
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 the specified 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.

◆ getSectionViewInfo()

virtual OdResult OdModelerGeometry::getSectionViewInfo ( const OdArray< OdDbEntityPtr > &  pEnts,
const OdGePoint3dArray pPoints,
const OdGeVector3d normal,
OdArray< OdDbEntityPtr > &  backgroundEnts,
OdArray< OdDbEntityPtr > &  intHatchEnts,
OdArray< OdDbEntityPtr > &  intBoundaryEnts,
OdArray< OdDbEntityPtr > &  curveVisibilityEdges,
SectionType  sectType = kFull_ST,
OdEdgeTypeFlags  edgeVis = kTangent 
)
pure virtual

This function generates a data to show ViewSection. Sectionable entities include Db3dSolid, DbSurface, DbBody, and DbRegion.

Parameters
pEnts[in] Array of the sectionable entities.
pPoints[in] Input vertex points on the section line; should contain at least two points.
normal[in] Input vector on the first segment's plane, normal to the section line.
backgroundEnts[out] Array of resut entities after señtion array of entities pEnts.
intHatchEnts[out] Array of planes section of resuts entities backgroundEnts.
intBoundaryEnts[out] Array of intHatchEnt boundaries.
curveVisibilityEdges[out] Array of visibility edges to draw the view section.
sectType[in] Section type.
edgeVis[in] Specifies the visibility of tangent, interference and other some tipes of edges.
Returns
eOk if successful. Returns an error status if the function fails to open the objector or if the plane and the solid do not intersect.
Remarks
This method is implemented for Spatial modeler only and returns the eNotImplementedYet status for other modelers.

◆ 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
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 free 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 the 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
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 the resulting body which is located on 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 free 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] Reference to an OdCmColor object to store the current color of the specified subentity.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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[out] Reference to an OdDbObjectId for returning the material object ID.
Returns
eOk if successful or an appropriate error code otherwise.

◆ getSubentMaterialMapper()

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

Retrieves a material mapper for the specified subentity.

Parameters
subentId[in] Subentity ID.
mx[out] 3D transformation matrix.
projection[out] Projection type.
tiling[out] Tiling options.
autoTransform[out] Auto transform options.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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

Retrieves full subentity paths of subentities, represented by a GS marker.

Parameters
type[in] 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] Transformation matrix to transform from WCS to DCS.
subentPaths[out] Array of full subentity path objects identifying the subentities generated from the GS marker.
entAndInsertStack[in] Array of object IDs that are the nested containers of the subentity.
Returns
eOk if successful or an appropriate error code otherwise.

◆ getTransformation()

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

Returns the transformation matrix for this ModelerGeometry object.

Parameters
xfm[out] Receives the transformation matrix.
Returns
True if successful; false otherwise.

◆ getUKnots()

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

Returns the knot vector in the U direction.

Parameters
knots[out] Passed-in parameter for returning the knot vector in the U direction.
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] Passed-in parameter for returning the knot vector in the v direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ hasMaterials()

virtual MaterialState OdModelerGeometry::hasMaterials ( ) const
inlinevirtual

Returns the material state of this ModelerGeometry object.

Returns
Material state.
Remarks
Currently not implemented. Always returns kUnknown.

Definition at line 441 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.

Returns
True if TrueColor attributes are attached to the faces and/or edges of this ModelerGeometry object; false otherwise.

◆ 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] Pointer to the entity to be imprinted.
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.

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.
bEnableACISAudit[in] True to do additional checks of ACIS data.
Returns
eOk if successful, or an appropriate error code otherwise.
Remarks
The implementation of this function is responsible for determining the type (SAT/SAB) and version of the data read.
pStreamBuf can 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] Array of control points to be added.
vWeights[in] Array of weight values to add if the surface is rational.
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
dV[in] V parameter.
uCtrlPts[in] Array of control points to be added.
uWeights[in] Array of weight values to add if the surface is rational.
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
eOk if successful or an appropriate error code otherwise.

◆ internalSubentId()

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

For internal use only.

Parameters
ent[in] ACIS object pointer.
Returns
Internal subentity ID.

◆ 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

Retrieves the intesection points on a projection plane between this entity and another specified entity.

Parameters
ent[in] Entity which this entity is intersected with.
intType[in] Type of intersection.
projPlane[in] Projection plane for the intersection of the two entities.
points[out] 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 ent which is involved in the intersection.
Returns
eOk if successful, or an appropriate error code otherwise.

◆ intersectWith() [2/2]

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

Retrieves the intesection points between this entity and another specified entity.

Parameters
ent[in] Entity which this entity is intersected with.
intType[in] Type of intersection.
points[out] 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 ent which is involved in the intersection.
Returns
eOk if successful, or an appropriate error code otherwise.

◆ isClosedInU()

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

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

Parameters
bIsClosed[out] Passed-in parameter for returning the indicator of whether the ModelerGeometry object is closed in the U direction. bIsClosed is true if the ModelerGeometry object is closed in the U direction, otherwise it is false.
Returns
eOk if successful or an appropriate error code otherwise.

◆ isClosedInV()

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

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

Parameters
bIsClosed[out] Passed-in parameter for returning the indicator of whether the ModelerGeometry object is closed in the V direction. bIsClosed is true if the ModelerGeometry object is closed in the V direction, otherwise it is false.
Returns
eOk if successful or an appropriate error code otherwise.

◆ isPeriodicInU()

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

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

Parameters
bIsPeriodic[out] Passed-in parameter for returning the indicator of whether the ModelerGeometry object is periodic in the U direction. bIsPeriodic is true if the ModelerGeometry object is periodic in the U direction, otherwise it is false.
Returns
eOk if successful or an appropriate error code otherwise.

◆ isPeriodicInV()

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

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

Parameters
bIsPeriodic[out] Passed-in parameter for returning the indicator of whether the ModelerGeometry object is periodic in the V direction. bIsPeriodic is true if the ModelerGeometry object is periodic in the V direction, otherwise it is false.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Passed-in parameter for returning the indicator of whether the surface is planar.
ptOnSurface[out] Passed-in parameter for returning the point on the surface (if the surface is planar).
normal[out] Passed-in parameter for returning the plane normal (if the surface is planar).
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] Point.
bOnSurface[out] Passed-in parameter for returning the indicator of whether the specified point is on the surface.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Passed-in parameter for returning the indicator of whether the ModelerGeometry object is rational.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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 pointers 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] New location of the point on the surface.
uDeriv[in] Tangent vector in the U direction.
vDeriv[in] Tangent vector in the V direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Distance for offset.
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
eOk if successful or an appropriate error code in the other case.
Remarks
The following constraints are applied: The 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.

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.
bEnableACISAudit[in] True to do additional checks of acis data.
Returns
eOk if successful, or an appropriate error code otherwise.
Remarks
This function is responsible for converting the contained ACIS data to the specified type and format. If typeVer == kAfTypeVerAny, then any type or version can be written.
See also
AfTypeVerEnum

◆ projectOnToEntity()

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

Creates entities by projecting a specified entity onto the surface.

Parameters
pEntityToProject[in] Entity to project.
projectionDirection[in] Projection direction vector.
projectedEntities[out] Array of projected entities.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Base point to start a ray from.
rayDir[in] Ray direction.
rayRadius[in] Ray radius. It defines the tolerance used for intersection checking.
subEntIds[out] Reference to subentities array to return. Returned subentities can be one of the following: faces, edges, or vertices.
parameters[out] Array of parameters to return. Parameters shows the intersection between a ray and subentities.
Returns
eOk if a ray was successfully created or an appropriate error code otherwise.

◆ 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] New degree value in the U direction.
iVDegree[in] New degree value in the V direction.
iNumUCtrlPts[in] New quantity of control points in the U direction.
iNumVCtrlPts[in] New quantity of control points in the V direction.
bRestore[in] Restore flag.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Index of the control point to remove from the array.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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] Index of the control point to remove from the array.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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
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.

◆ restoreAttributes()

virtual OdResult OdModelerGeometry::restoreAttributes ( OdModelerGeometry oldmodeler)
pure virtual

Restores attributes from old ModelerGeometry object.

Parameters
oldmodeler[out] ModelerGeometry object to restore attributes.
Returns
eOk if successful or an appropriate error code otherwise.

◆ 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 revolved.
axisPoint[in] Point on the axis of revolution.
axisDir[in] Vector defining the axis of revolution.
angleOfRevolution[in] Angle of revolution.
isSolid[in] Boolean flag that indicates that this ModelerGeometry object is solid.
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
eOk if separating was successful or an appropriate error code otherwise.
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 and not deleted, 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

Sets parameters of this ModelerGeometry object.

Parameters
iUDegree[in] Degree of the ModelerGeometry object in the U direction.
iVDegree[in] Degree of the ModelerGeometry object in the V direction.
bRational[in] Flag that indicates whether the ModelerGeometry object is rational.
iUNumControlPoints[in] Quantity of control points in the U direction.
iVNumControlPoints[in] Quantity of control points in the V direction.
ctrlPtsArr[in] Array of control points.
weights[in] Array of weight values.
uKnots[in] Knot vector in the U direction.
vKnots[in] Knot vector in the V direction.
Returns
eOk if successful or an appropriate error code otherwise.

◆ setBody()

virtual OdResult OdModelerGeometry::setBody ( const void )
inlinevirtual

Definition at line 1313 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
eOk if the new color value was successfully set or an appropriate error code otherwise.

◆ setControlPointAndWeight()

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

Sets the control point and weight on the ModelerGeometry object by the specified indices (U, V).

Parameters
iUIndex[in] U direction index.
iVIndex[in] V direction index.
point[in] Control point.
weight[in] Weight value.
Returns
eOk if successful or an appropriate error code otherwise.

◆ setControlPoints()

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

Sets the control points.

Parameters
iUCount[in] New value of the quantity of control points in the U direction.
iVCount[in] New value of the quantity of control points in the V direction.
points[in] New array of control points (in WCS coordinates).
Returns
eOk if control points were successfully set or an appropriate error code otherwise.
Remarks
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 indices are for the V direction, and row indices 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.
Returns
True if and only if successful; false otherwise.

◆ setMaterialMapperToSubents()

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

Sets the material mapper for subentities.

Parameters
mx[in] 3D transformation matrix.
projection[in] Projection type.
tiling[in] Tiling options.
autoTransform[in] Auto transform options.
Returns
eOk if successful or an appropriate error code otherwise.

◆ setMaterialResolver()

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

This method is not implemented.

Returns
eNotImplemented.

Definition at line 2071 of file ModelerGeometry.h.

◆ setMaterialToSubents()

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

Sets the material for subentities.

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

◆ setMMPerUnit()

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

Sets the mm/unit value for this ModelerGeometry object.

Parameters
mmPerUnit[in] mm/unit value.
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
eOk if successful or an appropriate error code otherwise.

◆ 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
eOk if successful or an appropriate error code otherwise.
Remarks
To remove the currently assigned material, set the matId parameter value to NULL.

◆ setSubentMaterialMapper()

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

Sets a material mapper for the specified subentity.

Parameters
subentId[in] Subentity ID.
mx[in] 3D transformation matrix.
projection[in] Projection type.
tiling[in] Tiling options.
autoTransform[in] Auto transform options.
Returns
eOk if successful or an appropriate error code otherwise.

◆ setSubentPath()

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

This method is not implemented.

Returns
eNotImplemented.

Definition at line 150 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
eOk if successful or an appropriate error code otherwise.
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
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
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
eOk if successful or an appropriate error code otherwise.
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 by.
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
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
eOk if successful or an appropriate error code otherwise.

◆ 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
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.

Parameters
pWd[in] Pointer to the OdGiCommonDraw interface.
geomType[in] Geometry type.
pNumIsolines[in] Number of isolines in U and V directions.
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.
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: