CFx SDK Documentation  2022 SP0
Public Member Functions | List of all members
OdDb3dSolid Class Reference

#include <Db3dSolid.h>

Inheritance diagram for OdDb3dSolid:
OdDbEntity OdDbObject OdGiDrawable OdRxObject

Public Member Functions

 ODDB_DECLARE_MEMBERS (OdDb3dSolid)
 
 OdDb3dSolid ()
 
bool isNull () const
 
OdResult acisOut (OdStreamBuf *pStreamBuf, AfTypeVer typeVer=kAfTypeVerAny)
 
OdResult acisIn (OdStreamBuf *pStreamBuf, AfTypeVer *pTypeVer=0)
 
void brep (OdBrBrep &brep)
 
virtual bool subWorldDraw (OdGiWorldDraw *pWd) const
 
virtual void subViewportDraw (OdGiViewportDraw *pVd) const
 
virtual OdResult dwgInFields (OdDbDwgFiler *pFiler)
 
virtual void dwgOutFields (OdDbDwgFiler *pFiler) const
 
virtual OdResult dxfInFields (OdDbDxfFiler *pFiler)
 
virtual void dxfOutFields (OdDbDxfFiler *pFiler) const
 
virtual OdResult subGetClassID (void *pClsid) const
 
virtual void createBox (double xLen, double yLen, double zLen)
 
virtual void createFrustum (double height, double xRadius, double yRadius, double topXRadius)
 
virtual void createSphere (double radius)
 
virtual void createTorus (double majorRadius, double minorRadius)
 
virtual void createWedge (double xLen, double yLen, double zLen)
 
virtual OdResult extrude (const OdDbRegion *pRegion, double height, double taperAngle=0.0)
 
virtual OdResult revolve (const OdDbRegion *pRegion, const OdGePoint3d &axisPoint, const OdGeVector3d &axisDir, double angleOfRevolution)
 
virtual OdResult booleanOper (OdDb::BoolOperType operation, OdDb3dSolid *solid)
 
virtual OdResult extrudeAlongPath (const OdDbRegion *region, const OdDbCurve *path, double taperAngle=0.0)
 
virtual OdResult imprintEntity (const OdDbEntity *pEntity)
 
virtual OdResult getArea (double &area) const
 
virtual OdResult checkInterference (const OdDb3dSolid *otherSolid, bool createNewSolid, bool &solidsInterfere, OdDb3dSolidPtr &commonVolumeSolid) const
 
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
 
virtual OdResult getSection (const OdGePlane &plane, OdDbRegionPtr &sectionRegion) const
 
virtual OdResult getSlice (const OdGePlane &plane, bool bGetNegHalfToo, OdDb3dSolidPtr &pNegHalfSolid)
 
virtual OdResult getSlice (OdDbSurface *pSurface, bool bGetNegHalfToo, OdDb3dSolidPtr &pNegHalfSolid)
 
virtual OdResult cleanBody ()
 
virtual OdResult offsetBody (double offsetDistance)
 
virtual OdResult separateBody (OdDb3dSolidPtrArray &newSolids)
 
virtual OdResult createExtrudedSolid (OdDbEntity *pSweepEnt, const OdGeVector3d &directionVec, OdDbSweepOptions &sweepOptions)
 
virtual OdResult createExtrudedSolid (OdDbEntity *pSweepEnt, const OdDbSubentId &faceSubentId, const OdGeVector3d &directionVec, OdDbSweepOptions &sweepOptions)
 
virtual OdResult createExtrudedSolid (OdDbEntity *pSweepEnt, const OdDbSubentId &faceSubentId, double height, OdDbSweepOptions &sweepOptions)
 
virtual OdResult createLoftedSolid (OdDbEntityPtrArray &crossSectionCurves, OdDbEntityPtrArray &guideCurves, OdDbEntity *pPathCurve, OdDbLoftOptions &loftOptions)
 
virtual OdResult createPyramid (double height, int sides, double radius, double topRadius=0.0)
 
virtual OdResult createRevolvedSolid (OdDbEntity *pRevEnt, const OdGePoint3d &axisPnt, const OdGeVector3d &axisDir, double revAngle, double startAngle, OdDbRevolveOptions &revolveOptions)
 
virtual OdResult createRevolvedSolid (OdDbEntity *pRevEnt, const OdDbSubentId &faceSubentId, const OdGePoint3d &axisPnt, const OdGeVector3d &axisDir, double revAngle, double startAngle, OdDbRevolveOptions &revolveOptions)
 
virtual OdResult createSweptSolid (OdDbEntity *pSweepEnt, const OdDbSubentId &faceSubentId, OdDbEntity *pPathEnt, OdDbSweepOptions &sweepOptions)
 
virtual OdResult createSweptSolid (OdDbEntity *pSweepEnt, OdDbEntity *pPathEnt, OdDbSweepOptions &sweepOptions)
 
virtual void stlOut (const OdChar *filename, bool asciiFormat) const
 
virtual OdDbObjectPtr decomposeForSave (OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
 
virtual OdResult subExplode (OdRxObjectPtrArray &entitySet) const
 
virtual OdResult subTransformBy (const OdGeMatrix3d &xfm)
 
virtual void saveAs (OdGiWorldDraw *pWd, OdDb::DwgVersion ver) const
 
virtual OdResult setBody (const void *pGeometry)
 
virtual voidbody () const
 
virtual OdResult copyEdge (const OdDbSubentId &subentId, OdDbEntityPtr &newEntity)
 
virtual OdResult copyFace (const OdDbSubentId &subentId, OdDbEntityPtr &newEntity)
 
virtual OdResult subGetSubentPathsAtGsMarker (OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &viewXform, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack=0) const
 
virtual OdDbSubentId internalSubentId (void *ent) const
 
virtual voidinternalSubentPtr (const OdDbSubentId &id) const
 
virtual OdResult subGetGsMarkersAtSubentPath (const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const
 
virtual OdDbEntityPtr subSubentPtr (const OdDbFullSubentPath &id) const
 
virtual OdResult extrudeFaces (const OdArray< OdDbSubentId * > &faceSubentIds, double height, double taper)
 
virtual OdResult extrudeFacesAlongPath (const OdArray< OdDbSubentId * > &faceSubentIds, const OdDbCurve *path)
 
virtual OdResult taperFaces (const OdArray< OdDbSubentId * > &faceSubentIds, const OdGePoint3d &basePoint, const OdGeVector3d &draftVector, double draftAngle)
 
virtual OdResult transformFaces (const OdArray< OdDbSubentId * > &faceSubentIds, const OdGeMatrix3d &matrix)
 
virtual OdResult removeFaces (const OdArray< OdDbSubentId * > &faceSubentIds)
 
virtual OdResult offsetFaces (const OdArray< OdDbSubentId * > &faceSubentIds, double offsetDistance)
 
virtual OdResult shellBody (const OdArray< OdDbSubentId * > &faceSubentIds, double offsetDistance)
 
virtual OdUInt32 numChanges () const
 
virtual OdResult setSubentColor (const OdDbSubentId &subentId, const OdCmColor &color)
 
virtual OdResult getSubentColor (const OdDbSubentId &subentId, OdCmColor &color) const
 
virtual OdResult setSubentMaterial (const OdDbSubentId &subentId, OdDbObjectId matId)
 
virtual OdResult getSubentMaterial (const OdDbSubentId &subentId, OdDbObjectId &matId) const
 
virtual OdResult setSubentMaterialMapper (const OdDbSubentId &subentId, const OdGiMapper &mapper)
 
virtual OdResult getSubentMaterialMapper (const OdDbSubentId &subentId, OdGiMapper &mapper) const
 
virtual OdResult chamferEdges (const OdArray< OdDbSubentId * > &edgeSubentIds, const OdDbSubentId &baseFaceSubentId, double baseDist, double otherDist)
 
virtual OdResult filletEdges (const OdArray< OdDbSubentId * > &edgeSubentIds, const OdGeDoubleArray &radius, const OdGeDoubleArray &startSetback, const OdGeDoubleArray &endSetback)
 
virtual OdResult createFrom (const OdDbEntity *pFromEntity)
 
virtual bool recordHistory () const
 
virtual bool showHistory () const
 
virtual OdResult setRecordHistory (bool bRecord)
 
virtual OdResult setShowHistory (bool bShow)
 
virtual OdResult convertToBrepAtSubentPaths (const OdDbFullSubentPathArray &)
 
virtual OdUInt32 subSetAttributes (OdGiDrawableTraits *pTraits) const
 
OdResult projectOnToSolid (const OdDbEntity *pEntityToProject, const OdGeVector3d &projectionDirection, OdDbEntityPtrArray &projectedEntities) const
 
OdResult createSculptedSolid (OdDbEntityPtrArray &limitingBodies, const OdGeIntArray &limitingFlags)
 
virtual void subClose ()
 
virtual OdResult subGetGeomExtents (OdGeExtents3d &extents) const
 
- Public Member Functions inherited from OdDbEntity
 ODDB_DECLARE_MEMBERS (OdDbEntity)
 
 OdDbEntity ()
 
OdDbObjectId blockId () const
 
OdCmColor color () const
 
virtual OdResult setColor (const OdCmColor &color, bool doSubents=true)
 
OdUInt16 colorIndex () const
 
virtual OdCmEntityColor entityColor () const
 
virtual OdResult setColorIndex (OdUInt16 colorIndex, bool doSubents=true)
 
OdDbObjectId colorId () const
 
virtual OdResult setColorId (OdDbObjectId colorId, bool doSubents=true)
 
OdCmTransparency transparency () const
 
virtual OdResult setTransparency (const OdCmTransparency &transparency, bool doSubents=true)
 
OdString plotStyleName () const
 
OdDb::PlotStyleNameType getPlotStyleNameId (OdDbObjectId &plotStyleNameId) const
 
virtual OdResult setPlotStyleName (const OdString &plotStyleName, bool doSubents=true)
 
virtual OdResult setPlotStyleName (OdDb::PlotStyleNameType plotStyleNameType, OdDbObjectId plotStyleNameId=OdDbObjectId::kNull, bool doSubents=true)
 
OdString layer () const
 
OdDbObjectId layerId () const
 
virtual OdResult setLayer (const OdString &layerName, bool doSubents=true, bool allowHiddenLayer=false)
 
virtual OdResult setLayer (OdDbObjectId layerId, bool doSubents=true, bool allowHiddenLayer=false)
 
OdString linetype () const
 
OdDbObjectId linetypeId () const
 
virtual OdResult setLinetype (const OdString &linetypeName, bool doSubents=true)
 
virtual OdResult setLinetype (OdDbObjectId linetypeID, bool doSubents=true)
 
OdString material () const
 
OdDbObjectId materialId () const
 
virtual OdResult setMaterial (const OdString &materialName, bool doSubents=true)
 
virtual OdResult setMaterial (OdDbObjectId materialID, bool doSubents=true)
 
OdDbObjectId visualStyleId (VisualStyleType vstype=kFullVisualStyle) const
 
virtual OdResult setVisualStyle (OdDbObjectId visualStyleId, VisualStyleType vstype=kFullVisualStyle, bool doSubents=true)
 
virtual const OdGiMappermaterialMapper () const
 
virtual void setMaterialMapper (const OdGiMapper *mapper, bool doSubents=true)
 
double linetypeScale () const
 
virtual OdResult setLinetypeScale (double linetypeScale, bool doSubents=true)
 
OdDb::Visibility visibility () const
 
ODRX_SEALED_VIRTUAL OdResult setVisibility (OdDb::Visibility visibility, bool doSubents=true) ODRX_SEALED
 
OdDb::Visibility tempVisibility () const
 
void setTempVisibility (OdDb::Visibility visibility)
 
OdDb::LineWeight lineWeight () const
 
virtual OdResult setLineWeight (OdDb::LineWeight lineWeight, bool doSubents=true)
 
virtual bool castShadows () const
 
virtual void setCastShadows (bool castShadows)
 
virtual bool receiveShadows () const
 
virtual void setReceiveShadows (bool receiveShadows)
 
virtual OdDb::CollisionType collisionType () const
 
void setPropertiesFrom (const OdDbEntity *pSource, bool doSubents=true)
 
virtual bool isPlanar () const
 
virtual OdResult getPlane (OdGePlane &plane, OdDb::Planarity &planarity) const
 
void subHandOverTo (OdDbObject *pNewObject)
 
ODRX_SEALED_VIRTUAL OdResult transformBy (const OdGeMatrix3d &xfm) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getTransformedCopy (const OdGeMatrix3d &xfm, OdDbEntityPtr &pCopy) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult explode (OdRxObjectPtrArray &entitySet) const ODRX_SEALED
 
virtual OdResult explodeToBlock (OdDbBlockTableRecord *pBlockRecord, OdDbObjectIdArray *ids=0)
 
virtual OdResult explodeGeometry (OdRxObjectPtrArray &entitySet) const
 
virtual OdResult explodeGeometryToBlock (OdDbBlockTableRecord *pBlockRecord, OdDbObjectIdArray *ids=0)
 
void setDatabaseDefaults (OdDbDatabase *pDb=0, bool doSubents=false)
 
virtual void subSetDatabaseDefaults (OdDbDatabase *pDb, bool doSubents)
 
virtual void applyPartialUndo (OdDbDwgFiler *pUndoFiler, OdRxClass *pClassObj)
 
void appendToOwner (OdDbIdPair &idPair, OdDbObject *pOwnerObject, OdDbIdMapping &ownerIdMap)
 
virtual OdResult dxfIn (OdDbDxfFiler *pFiler)
 
virtual void dxfOut (OdDbDxfFiler *pFiler) const
 
virtual OdResult dxfInFields_R12 (OdDbDxfFiler *pFiler)
 
virtual void dxfOutFields_R12 (OdDbDxfFiler *pFiler) const
 
virtual OdGiDrawabledrawable ()
 
virtual void subList () const
 
void subSwapIdWith (const OdDbObjectId &otherId, bool swapXdata=false, bool swapExtDict=false)
 
virtual OdResult subErase (bool erasing) ODRX_OVERRIDE
 
void recordGraphicsModified (bool graphicsModified=true)
 
virtual void copyFrom (const OdRxObject *pSource)
 
ODRX_SEALED_VIRTUAL void list () const ODRX_SEALED
 
virtual OdResult getGeomExtents (OdGeExtents3d &extents) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL void highlight (bool bDoIt=true, const OdDbFullSubentPath *pSubId=0, bool highlightAll=false) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints, const OdGeMatrix3d &insertionMat) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool isContentSnappable () const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGripPoints (OdGePoint3dArray &gripPoints) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveGripPointsAt (const OdIntArray &indices, const OdGeVector3d &offset) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGripPoints (OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const int bitFlags) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveGripPointsAt (const OdDbVoidPtrArray &grips, const OdGeVector3d &offset, int bitFlags) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getStretchPoints (OdGePoint3dArray &stretchPoints) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveStretchPointsAt (const OdIntArray &indices, const OdGeVector3d &offset) ODRX_SEALED
 
virtual void dragStatus (const OdDb::DragStat status)
 
ODRX_SEALED_VIRTUAL void gripStatus (const OdDb::GripStat status) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool cloneMeForDragging () ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool hideMeForDragging () const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getCompoundObjectTransform (OdGeMatrix3d &xM) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult intersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult intersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, const OdGePlane &projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const ODRX_SEALED
 
OdResult boundingBoxIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, OdGePoint3dArray &points, OdGsMarker thisGsMarker, OdGsMarker otherGsMarker) const
 
OdResult boundingBoxIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, const OdGePlane &projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker, OdGsMarker otherGsMarker) const
 
ODRX_SEALED_VIRTUAL OdResult getSubentPathsAtGsMarker (OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &xfm, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack=0) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGsMarkersAtSubentPath (const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGripPointsAtSubentPath (const OdDbFullSubentPath &path, OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const OdUInt32 bitflags) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveGripPointsAtSubentPaths (const OdDbFullSubentPathArray &paths, const OdDbVoidPtrArray &gripAppData, const OdGeVector3d &offset, const OdUInt32 bitflags) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult deleteSubentPaths (const OdDbFullSubentPathArray &paths) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult addSubentPaths (const OdDbFullSubentPathArray &paths) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdDbEntityPtr subentPtr (const OdDbFullSubentPath &path) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult transformSubentPathsBy (const OdDbFullSubentPathArray &paths, const OdGeMatrix3d &xform) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getSubentClassId (const OdDbFullSubentPath &path, void *clsId) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getSubentPathGeomExtents (const OdDbFullSubentPath &path, OdGeExtents3d &extents) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL void subentGripStatus (OdDb::GripStat status, const OdDbFullSubentPath &subentity) ODRX_SEALED
 
virtual OdGeMatrix3d getEcs () const
 
- Public Member Functions inherited from OdDbObject
 ODDB_DECLARE_MEMBERS (OdDbObject)
 
 ~OdDbObject ()
 
void addRef ()
 
void release ()
 
long numRefs () const
 
OdDbObjectId objectId () const
 
OdDbHandle getDbHandle () const
 
OdDbHandle handle () const
 
OdDbObjectId ownerId () const
 
virtual void setOwnerId (OdDbObjectId ownerId)
 
OdDbDatabasedatabase () const
 
void createExtensionDictionary ()
 
OdDbObjectId extensionDictionary () const
 
bool releaseExtensionDictionary ()
 
OdDbXrecordPtr createXrecord (const OdString &xrecordName, OdDb::DuplicateRecordCloning style=OdDb::kDrcIgnore)
 
void upgradeOpen ()
 
void downgradeOpen ()
 
void cancel ()
 
virtual OdResult subOpen (OdDb::OpenMode mode)
 
OdResult erase (bool eraseIt=true)
 
void handOverTo (OdDbObject *pNewObject, bool keepXData=true, bool keepExtDict=true)
 
void swapIdWith (OdDbObjectId otherId, bool swapXdata=false, bool swapExtDict=false)
 
virtual void audit (OdDbAuditInfo *pAuditInfo)
 
void dwgIn (OdDbDwgFiler *pFiler)
 
void dwgOut (OdDbDwgFiler *pFiler) const
 
virtual OdDb::DuplicateRecordCloning mergeStyle () const
 
virtual OdResBufPtr xData (const OdString &regappName=OdString::kEmpty) const
 
virtual void setXData (const OdResBuf *pRb)
 
bool isEraseStatusToggled () const
 
bool isErased () const
 
bool isReadEnabled () const
 
bool isWriteEnabled () const
 
bool isNotifyEnabled () const
 
bool isModified () const
 
bool isModifiedXData () const
 
bool isModifiedGraphics () const
 
bool isNewObject () const
 
bool isNotifying () const
 
bool isUndoing () const
 
bool isReallyClosing () const
 
bool isDBRO () const
 
void assertReadEnabled () const
 
void assertWriteEnabled (bool autoUndo=true, bool recordModified=true)
 
void assertNotifyEnabled () const
 
void disableUndoRecording (bool disable)
 
bool isUndoRecordingDisabled () const
 
OdDbDwgFilerundoFiler ()
 
void addReactor (OdDbObjectReactor *pReactor) const
 
void removeReactor (OdDbObjectReactor *pReactor) const
 
virtual void addPersistentReactor (const OdDbObjectId &objId)
 
virtual void removePersistentReactor (const OdDbObjectId &objId)
 
bool hasPersistentReactor (const OdDbObjectId &objId) const
 
OdDbObjectIdArray getPersistentReactors () const
 
OdDbObjectReactorArray getTransientReactors () const
 
virtual void recvPropagateModify (const OdDbObject *pSubObj)
 
virtual void xmitPropagateModify () const
 
ODRX_SEALED_VIRTUAL OdDbObjectPtr deepClone (OdDbIdMapping &ownerIdMap, OdDbObject *pOwner, bool bPrimary=true) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdDbObjectPtr wblockClone (OdDbIdMapping &ownerIdMap, OdDbObject *pOwner, bool bPrimary=true) const ODRX_SEALED
 
void setOdDbObjectIdsInFlux ()
 
bool isOdDbObjectIdsInFlux () const
 
virtual void copied (const OdDbObject *pObject, const OdDbObject *pNewObject)
 
virtual void erased (const OdDbObject *pObject, bool erasing=true)
 
virtual void goodbye (const OdDbObject *pObject)
 
virtual void openedForModify (const OdDbObject *pObject)
 
virtual void modified (const OdDbObject *pObject)
 
virtual void subObjModified (const OdDbObject *pObject, const OdDbObject *pSubObj)
 
virtual void modifyUndone (const OdDbObject *pObject)
 
virtual void modifiedXData (const OdDbObject *pObject)
 
virtual void unappended (const OdDbObject *pObject)
 
virtual void reappended (const OdDbObject *pObject)
 
bool isAProxy () const
 
virtual void objectClosed (const OdDbObjectId &objectId)
 
virtual void modifiedGraphics (const OdDbObject *pObject)
 
bool hasSaveVersionOverride () const
 
void setHasSaveVersionOverride (bool hasSaveVersionOverride)
 
virtual OdDb::DwgVersion getObjectSaveVersion (const OdDbFiler *pFiler, OdDb::MaintReleaseVer *pMaintVer=0) const
 
virtual OdDbObjectPtr decomposeForSave (OdDb::SaveType format, OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
 
void convertForSave (OdDb::DwgVersion ver)
 
virtual void composeForLoad (OdDb::SaveType format, OdDb::DwgVersion version, OdDbAuditInfo *pAuditInfo)
 
virtual bool isPersistent () const
 
virtual OdDbStub * id () const
 
ODRX_SEALED_VIRTUAL OdResult getClassID (void *pClsid) const ODRX_SEALED
 
void setGsNode (OdGsCache *pNode)
 
OdGsCachegsNode () const
 
void xDataTransformBy (const OdGeMatrix3d &xfm)
 
bool hasFields () const
 
OdDbObjectId getField (const OdString &fieldName) const
 
OdDbObjectPtr getField (const OdString &fieldName, OdDb::OpenMode mode) const
 
virtual OdDbObjectId setField (const OdString &fieldName, OdDbField *pField)
 
virtual OdResult removeField (OdDbObjectId fieldId)
 
virtual OdDbObjectId removeField (const OdString &fieldName)
 
OdDbObjectId getFieldDictionary () const
 
OdDbObjectPtr getFieldDictionary (OdDb::OpenMode mode) const
 
virtual OdRxClasssaveAsClass (OdRxClass *pClass) const
 
- Public Member Functions inherited from OdGiDrawable
 ODRX_DECLARE_MEMBERS (OdGiDrawable)
 
virtual DrawableType drawableType () const
 
ODRX_SEALED_VIRTUAL OdUInt32 setAttributes (OdGiDrawableTraits *pTraits) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool worldDraw (OdGiWorldDraw *pWd) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL void viewportDraw (OdGiViewportDraw *pVd) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdUInt32 viewportDrawLogicalFlags (OdGiViewportDraw *pVd) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdUInt32 regenSupportFlags () const ODRX_SEALED
 
- 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
 
bool isKindOf (const OdRxClass *pClass) const
 
virtual OdRxObjectPtr clone () const
 
virtual OdRx::Ordering comparedTo (const OdRxObject *pOther) const
 
virtual bool isEqualTo (const OdRxObject *pOther) const
 

Additional Inherited Members

- Public Types inherited from OdDbEntity
enum  VisualStyleType { kFullVisualStyle , kFaceVisualStyle , kEdgeVisualStyle }
 
- Public Types inherited from OdGiDrawable
enum  SetAttributesFlags {
  kDrawableNone = 0 , kDrawableIsAnEntity = 1 , kDrawableUsesNesting = 2 , kDrawableIsCompoundObject = 4 ,
  kDrawableViewIndependentViewportDraw = 8 , kDrawableIsInvisible = 16 , kDrawableHasAttributes = 32 , kDrawableRegenTypeDependantGeometry = 64 ,
  kDrawableIsDimension = (kDrawableIsAnEntity + kDrawableIsCompoundObject + 128) , kDrawableRegenDraw = 256 , kDrawableStandardDisplaySingleLOD = 512 , kDrawableShadedDisplaySingleLOD = 1024 ,
  kDrawableViewDependentViewportDraw = 2048 , kDrawableBlockDependentViewportDraw = 4096 , kDrawableIsExternalReference = 8192 , kDrawableNotPlottable = 16384 ,
  kLastFlag = kDrawableNotPlottable
}
 
enum  DrawableType {
  kGeometry = 0 , kDistantLight = 1 , kPointLight = 2 , kSpotLight = 3 ,
  kAmbientLight , kSolidBackground , kGradientBackground , kImageBackground ,
  kGroundPlaneBackground , kViewport , kWebLight , kSkyBackground ,
  kImageBasedLightingBackground
}
 
- Static Public Member Functions inherited from OdRxObject
static OdRxObjectPtr cast (const OdRxObject *pointer)
 
static OdRxClassdesc ()
 
- Protected Member Functions inherited from OdDbEntity
virtual OdDbObjectPtr subWblockClone (OdDbIdMapping &ownerIdMap, OdDbObject *, bool bPrimary) const ODRX_OVERRIDE
 
virtual OdDbObjectPtr subDeepClone (OdDbIdMapping &ownerIdMap, OdDbObject *, bool bPrimary) const ODRX_OVERRIDE
 
virtual OdResult subGetTransformedCopy (const OdGeMatrix3d &xfm, OdDbEntityPtr &pCopy) const
 
virtual OdResult subGetCompoundObjectTransform (OdGeMatrix3d &xM) const
 
virtual bool subCloneMeForDragging ()
 
virtual bool subHideMeForDragging () const
 
virtual void subGripStatus (const OdDb::GripStat status)
 
virtual OdResult subGetOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints) const
 
virtual OdResult subGetOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints, const OdGeMatrix3d &insertionMat) const
 
virtual bool subIsContentSnappable () const
 
virtual OdResult subGetGripPoints (OdGePoint3dArray &gripPoints) const
 
virtual OdResult subMoveGripPointsAt (const OdIntArray &indices, const OdGeVector3d &offset)
 
virtual OdResult subGetGripPoints (OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const int bitFlags) const
 
virtual OdResult subMoveGripPointsAt (const OdDbVoidPtrArray &grips, const OdGeVector3d &offset, int bitFlags)
 
virtual OdResult subGetStretchPoints (OdGePoint3dArray &stretchPoints) const
 
virtual OdResult subMoveStretchPointsAt (const OdIntArray &indices, const OdGeVector3d &offset)
 
virtual OdResult subIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const
 
virtual OdResult subIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, const OdGePlane &projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const
 
virtual void subHighlight (bool bDoIt=true, const OdDbFullSubentPath *pSubId=0, bool highlightAll=false) const
 
virtual OdDb::Visibility subVisibility () const
 
virtual OdResult subSetVisibility (OdDb::Visibility visibility, bool doSubents=true)
 
virtual OdResult subDeleteSubentPaths (const OdDbFullSubentPathArray &paths)
 
virtual OdResult subAddSubentPaths (const OdDbFullSubentPathArray &paths)
 
virtual OdResult subMoveGripPointsAtSubentPaths (const OdDbFullSubentPathArray &paths, const OdDbVoidPtrArray &gripAppData, const OdGeVector3d &offset, const OdUInt32 bitflags)
 
virtual OdResult subGetGripPointsAtSubentPath (const OdDbFullSubentPath &path, OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const OdUInt32 bitflags) const
 
virtual OdResult subTransformSubentPathsBy (const OdDbFullSubentPathArray &paths, const OdGeMatrix3d &xform)
 
virtual OdResult subGetSubentClassId (const OdDbFullSubentPath &path, void *clsId) const
 
virtual OdResult subGetSubentPathGeomExtents (const OdDbFullSubentPath &path, OdGeExtents3d &extents) const
 
virtual void subSubentGripStatus (OdDb::GripStat status, const OdDbFullSubentPath &subentity)
 
- Protected Member Functions inherited from OdDbObject
 OdDbObject ()
 
- Protected Member Functions inherited from OdGiDrawable
 OdGiDrawable ()
 
virtual OdUInt32 subViewportDrawLogicalFlags (OdGiViewportDraw *vd) const
 
virtual OdUInt32 subRegenSupportFlags () const
 
- Protected Attributes inherited from OdDbObject
OdDbObjectImplm_pImpl
 

Detailed Description

This class represents 3D Solid entities in an OdDbDatabase instance.

See also
TD_Db
Remarks
An OdDb3dSolid entity is a wrapper for an ACIS model that represents the geometry of the OdDb3dSolid entity.

<group OdDb_Classes>

Definition at line 76 of file Db3dSolid.h.

Constructor & Destructor Documentation

◆ OdDb3dSolid()

OdDb3dSolid::OdDb3dSolid ( )

Member Function Documentation

◆ acisIn()

OdResult OdDb3dSolid::acisIn ( OdStreamBuf pStreamBuf,
AfTypeVer pTypeVer = 0 
)

Reads the ACIS data for this entity from the specified StreamBuf object.

Parameters
pStreamBuf[in] Pointer to the StreamBuf object from which the data is to be read.
pTypeVer[in] Receives the type and version of the ACIS data read.
Returns
Returns eOk if successful or an appropriate error code if not.

◆ acisOut()

OdResult OdDb3dSolid::acisOut ( OdStreamBuf pStreamBuf,
AfTypeVer  typeVer = kAfTypeVerAny 
)

Writes the ACIS data of this entity 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 data to write.
Returns
Returns eOk if successful or an appropriate error code if not.

◆ body()

virtual void* OdDb3dSolid::body ( ) const
virtual

Returns contained modeler geometry of this entity.

◆ booleanOper()

virtual OdResult OdDb3dSolid::booleanOper ( OdDb::BoolOperType  operation,
OdDb3dSolid solid 
)
virtual

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

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ brep()

void OdDb3dSolid::brep ( OdBrBrep brep)

Returns the boundary representation of the 3D solid entity.

Parameters
brep[out] Receives the boundary representation.

◆ chamferEdges()

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

Creates chamfers at the edges of a solid.

Parameters
edgeSubentIds[in] Array of edge object IDs. The chamfer will be applied at the specified edges.
baseFaceSubentId[in] Base face object IDs. Chamfer will be applied on the specified face.
baseDist[in] Chamfer distance for the base face.
otherDist[in] Chamfer distance for the other faces.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ checkInterference()

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

Checks whether the solid interferes with another solid object.

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ cleanBody()

virtual OdResult OdDb3dSolid::cleanBody ( )
virtual

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

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ convertToBrepAtSubentPaths()

virtual OdResult OdDb3dSolid::convertToBrepAtSubentPaths ( const OdDbFullSubentPathArray )
virtual

Converts individual history items from a parameterized type to a simple boundary-representation without its parameter or type information.

Parameters
paths[in] Array of references to history items.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
This method is not implemented.

◆ copyEdge()

virtual OdResult OdDb3dSolid::copyEdge ( const OdDbSubentId subentId,
OdDbEntityPtr newEntity 
)
virtual

Copies the specified edge as a separate entity (instance of OdDbLine, OdDbCircle, OdDbArc, OdDbEllipse, OdDbSpline class).

Parameters
subentId[in] Edge's subentity ID in the solid.
newEntity[in] Reference to a new entity for the specified edge.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
The properties of the resulting entity (color, layer, line type, lineweight) are inherited from the corresponding current document. The calling application is responsible for the memory located with the resulting entity. If the resulting entity is not appended to a database, it can cause a memory leak (if it is not deleted when it isn't needed anymore).

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ copyFace()

virtual OdResult OdDb3dSolid::copyFace ( const OdDbSubentId subentId,
OdDbEntityPtr newEntity 
)
virtual

Copies the specified face as a separate entity (OdDbRegion or otherwise will be OdDbBody).

Parameters
subentId[in] Face's subentity ID in the solid.
newEntity[in] Reference to a new entity containing a copy of the specified face.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
If face is planar, an OdDbRegion entity is created. Otherwise an OdDbBody entity is created. The properties of the resulting entity (color, layer, line type, lineweight) are inherited from the corresponding current document.

The calling application is responsible for the memory located with the resulting entity. If the resulting entity is not appended to a database, it can cause a memory leak (if it is not deleted when it isn't needed anymore).

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createBox()

virtual void OdDb3dSolid::createBox ( double  xLen,
double  yLen,
double  zLen 
)
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 are applied:

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

◆ createExtrudedSolid() [1/3]

virtual OdResult OdDb3dSolid::createExtrudedSolid ( OdDbEntity pSweepEnt,
const OdDbSubentId faceSubentId,
const OdGeVector3d directionVec,
OdDbSweepOptions sweepOptions 
)
virtual

Creates a solid by extruding a face.

Parameters
pSweepEnt[in] A pointer to the swept entity.
faceSubentId[in] Object ID for the face that must be extruded.
directionVec[in] Vector determining the direction and length of extruding.
sweepOptions[in] A set of sweeping options.
Returns
Returns eOk if extruding was successful or an appropriate error code in other case.
Remarks
Sweeping parameters (for example, angle) are set through the sweepOptions object reference.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createExtrudedSolid() [2/3]

virtual OdResult OdDb3dSolid::createExtrudedSolid ( OdDbEntity pSweepEnt,
const OdDbSubentId faceSubentId,
double  height,
OdDbSweepOptions sweepOptions 
)
virtual

Creates a solid by extruding a face.

Parameters
pSweepEnt[in] A pointer to the swept entity.
faceSubentId[in] Object ID for the face that must be extruded.
height[in] Multiplier for the direction vector.
sweepOptions[in] A set of sweeping options.
Returns
Returns eOk if extruding was successful or an appropriate error code in other case.
Remarks
Sweeping parameters (for example, angle) are set through the sweepOptions object reference.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createExtrudedSolid() [3/3]

virtual OdResult OdDb3dSolid::createExtrudedSolid ( OdDbEntity pSweepEnt,
const OdGeVector3d directionVec,
OdDbSweepOptions sweepOptions 
)
virtual

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

Parameters
pSweepEnt[in] A pointer to the swept entity.
directionVec[in] Vector determining the direction and length of extruding.
sweepOptions[in] A set of sweeping options.
Returns
Returns eOk if extruding was successful or an appropriate error code in other case.
Remarks

Sweeping parameters (for example, angle) are set through the sweepOptions object reference.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createFrom()

virtual OdResult OdDb3dSolid::createFrom ( const OdDbEntity pFromEntity)
virtual

Creates a 3D solid from the specified entity.

Parameters
pFromEntity[in] Pointer to an entity from which the solid must be created.
Returns
Returns eOk if conversion is successful or an appropriate error code in other case.
Remarks

An entity to create from must enclose a volume and can be one of the following: OdDbSurface OdDbSubDMesh closed curve with thickness thick OdDbSolid thick OdDbTrace polyline with constant width and thickness

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createFrustum()

virtual void OdDb3dSolid::createFrustum ( double  height,
double  xRadius,
double  yRadius,
double  topXRadius 
)
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 (when xRadius is equal to topXRadius and xRadius and yRadius are the same) An elliptical cylinder (when xRadius is equal to topXRadius and xRadius and yRadius are not the same) A circular cone (when topXRadius is zero and xRadius and yRadius are the same) An elliptical cone (when topXRadius is zero and xRadius and yRadius are not the same) A truncated circular cone (when topXRadius is not zero but not equal to xRadius and xRadius and yRadius are the same) A truncated elliptical cone (when topXRadius is not zero but not equal to xRadius and xRadius and yRadius are not the same)

The following constraints are applied:

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

◆ createLoftedSolid()

virtual OdResult OdDb3dSolid::createLoftedSolid ( OdDbEntityPtrArray crossSectionCurves,
OdDbEntityPtrArray guideCurves,
OdDbEntity pPathCurve,
OdDbLoftOptions loftOptions 
)
virtual

Creates a lofted solid from the given curves.

Parameters
crossSectionCurves[in] An 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.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
Lofting parameters can be passed with the loftOptions parameter.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createPyramid()

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

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

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

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

◆ createRevolvedSolid() [1/2]

virtual OdResult OdDb3dSolid::createRevolvedSolid ( OdDbEntity pRevEnt,
const OdDbSubentId faceSubentId,
const OdGePoint3d axisPnt,
const OdGeVector3d axisDir,
double  revAngle,
double  startAngle,
OdDbRevolveOptions revolveOptions 
)
virtual

Creates a solid by revolving a face about the axis of revolution.

Parameters
pRevEnt[in] Pointer to entity containing face for revolving.
faceSubentId[in] Face's subentity ID.
axisPnt[in] Point on the axis of revolution.
axisDir[in] Direction of revolution axis.
revAngle[in] Revolve angle in radians.
startAngle[in] Start angle of rotation. If 0, then rotation will start from current position of pRevEnt.
revolveOptions[in] Revolve options.
Returns
Returns eOk if successful, or an appropriate error code in other case.
Remarks
Entity for revolving must be a valid planar curve, region, or planar surface.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createRevolvedSolid() [2/2]

virtual OdResult OdDb3dSolid::createRevolvedSolid ( OdDbEntity pRevEnt,
const OdGePoint3d axisPnt,
const OdGeVector3d axisDir,
double  revAngle,
double  startAngle,
OdDbRevolveOptions revolveOptions 
)
virtual

Creates a solid 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, then rotation will start from current position of pRevEnt.
revolveOptions[in] Revolve options.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
Axis of revolution is defined by a point (axisPnt) and vector (axisDir). pRevEnt will be revolved according to the start and revolve angles counter-clockwise about the axisDir vector.

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createSculptedSolid()

OdResult OdDb3dSolid::createSculptedSolid ( OdDbEntityPtrArray limitingBodies,
const OdGeIntArray limitingFlags 
)

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

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

◆ createSphere()

virtual void OdDb3dSolid::createSphere ( double  radius)
virtual

Creates a sphere centered about the world origin with the specified radius.

Parameters
radius[in] Radius for the sphere.
Remarks
The following constraints are applied:

radius >= 1e-6.

◆ createSweptSolid() [1/2]

virtual OdResult OdDb3dSolid::createSweptSolid ( OdDbEntity pSweepEnt,
const OdDbSubentId faceSubentId,
OdDbEntity pPathEnt,
OdDbSweepOptions sweepOptions 
)
virtual

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

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createSweptSolid() [2/2]

virtual OdResult OdDb3dSolid::createSweptSolid ( OdDbEntity pSweepEnt,
OdDbEntity pPathEnt,
OdDbSweepOptions sweepOptions 
)
virtual

Creates a swept solid by sweeping a curve, region, or planar surface along the specified path.

Parameters
pSweepEnt[in] Pointer to face entity for sweeping.
pPathEnt[in] Pointer to the curve entity that determines the path to sweep along.
sweepOptions[in] Sweep options.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks

To set optional sweep parameters (for example, draft angle) use the sweepOptions parameter.
The default value for the alignment option of OdDbSweepOptions (returned by align() method) is kNoAlignment. Set it to kAlignSweepEntityToPath before calling this method.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ createTorus()

virtual void OdDb3dSolid::createTorus ( double  majorRadius,
double  minorRadius 
)
virtual

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

Parameters
majorRadius[in] Radius of the torus
minorRadius[in] Radius of the tube.
Remarks
majorRadius in contrast to minorRadius can't be equal to zero. If majorRadius is smaller than zero, minorRadius must be larger than the absolute value of majorRadius.

The following constraints are applied:

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

◆ createWedge()

virtual void OdDb3dSolid::createWedge ( double  xLen,
double  yLen,
double  zLen 
)
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.
Returns
Returns eOk if successful or an appropriate error code if not.
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 are applied:

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

◆ decomposeForSave()

virtual OdDbObjectPtr OdDb3dSolid::decomposeForSave ( OdDb::DwgVersion  ver,
OdDbObjectId replaceId,
bool &  exchangeXData 
)
virtual

Determines the behavior for custom objects when saving to .dwg or .dxf file.

Parameters
ver[in] Drawing version to save as.
replaceId[out] Object ID of the object replacing this object.
exchangeXData[out] Set to true if and only if this function did not add XData to the replacement object.
Remarks
This function either

Returns an OdDbObjectPtr for a non- database -resident (NDBRO) replacement object, setting replaceId to OdDbObjectId::kNull. Returns NULL, setting replaceId for a database -resident (DBRO) replacement object.

Custom objects can decompose themselves into other objects, adding additional XData as required. Teigha transfers XData from this object to the replacement object if and only if exchangeXData is true.

The default implementation returns NULL and sets replaceId to OdDbObjectId::kNull. This function can be overridden in custom classes.

The method is not intended to be called by client code. For processing owned objects use convertForSave() method.

Reimplemented from OdDbObject.

◆ dwgInFields()

virtual OdResult OdDb3dSolid::dwgInFields ( OdDbDwgFiler pFiler)
virtual

Reads the .dwg file data of this object.

Parameters
pFiler[in] Filer object from which data are read.
Returns
Returns the filer status.

This function is called by dwgIn() to allow the object to read its data.

When overriding this function:

1) Call assertWriteEnabled(). 2) Call the parent class's dwgInFields(pFiler). 3) If it returns eOK, continue; otherwise return whatever the parent's dwgInFields(pFiler) returned. 4) Call the OdDbDwgFiler(pFiler) methods to read each of the object's data items in the order they were written. 5) Return pFiler->filerStatus().

Reimplemented from OdDbEntity.

◆ dwgOutFields()

virtual void OdDb3dSolid::dwgOutFields ( OdDbDwgFiler pFiler) const
virtual

Writes the .dwg file data of this object.

Parameters
pFiler[in] Pointer to the filer to which data are written.
Remarks

This function is called by dwgIn() to allow the object to write its data.

When overriding this function:

1) Call assertReadEnabled(). 2) Call the parent class's dwgOutFields(pFiler). 3) Call the OdDbDwgFiler(pFiler) methods to write each of the object's data items in the order they were written.

Reimplemented from OdDbEntity.

◆ dxfInFields()

virtual OdResult OdDb3dSolid::dxfInFields ( OdDbDxfFiler pFiler)
virtual

Reads the DXF data of this object.

Parameters
pFiler[in] Pointer to the filer from which data are read.
Returns
Returns the filer status.

This function is called by dxfIn() to allow the object to read its data.

When overriding this function:

1) Call assertWriteEnabled(). 2) Call the parent class's dwgInFields(pFiler). 3) If it returns eOK, continue; otherwise return whatever the parent's dxfInFields(pFiler) returned. 4) Call the OdDbDxfFiler(pFiler) methods to read each of the object's data items in the order they were written. 5) Return pFiler->filerStatus().

Reimplemented from OdDbEntity.

◆ dxfOutFields()

virtual void OdDb3dSolid::dxfOutFields ( OdDbDxfFiler pFiler) const
virtual

Writes the DXF data of this object.

Parameters
pFiler[in] Pointer to the filer to which data are to be written.
Remarks

This function is called by dxfOut() to allow the object to write its data.

When overriding this function:

1) Call assertReadEnabled(). 2) Call the parent class's dxfOutFields(pFiler). 4) Use pFiler to call the OdDbDxfFiler methods to write each of the object's data items in the order they were written.

Reimplemented from OdDbEntity.

◆ extrude()

virtual OdResult OdDb3dSolid::extrude ( const OdDbRegion pRegion,
double  height,
double  taperAngle = 0.0 
)
virtual

Creates a solid by extruding the specified region to the specified height and with specified taper angle.

Parameters
pRegion[in] Pointer to the region to be extruded.
height[in] Height of the extrusion.
taperAngle[in] Taper angle in radians.
Returns
Returns eOk if extrusion is successful or an appropriate error code if not.
Remarks
The extrusion direction is along the normal of the region. The height value may be negative. pRegion should not have self-intersections. Creates a solid by extruding pRegion, a distance of height with a taper angle of taper. The extrusion direction is along the normal of the region if the height is positive.

The following constraints are applied:

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

Taper should be between half pi and -half pi. If the absolute value of taper < 1e-6, then the taper angle is set to 0.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ extrudeAlongPath()

virtual OdResult OdDb3dSolid::extrudeAlongPath ( const OdDbRegion region,
const OdDbCurve path,
double  taperAngle = 0.0 
)
virtual

Creates a solid by extruding a region along a path curve.

Parameters
region[in] A pointer to a region object for extruding from
path[in] A 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.
  \returns Returns eOk if extruding operation is successful or an appropriate error code if not. If solid is null, eInvalidInput is returned.
Remarks
Entity path must not have self-intersections, and it is recommended that the path not have high curvature areas.

The following constraints are applied: |taper Angle| >= 1e-6

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ extrudeFaces()

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

Extrudes faces of the solid with specified distance and taper angle.

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

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

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

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

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

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ extrudeFacesAlongPath()

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

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

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

Faces for extrusion must be planar.

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

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ filletEdges()

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

Creates rounded fillets on the edges of a solid.

Parameters
edgeSubentIds[in] Array of edges' object IDs. Fillet will be applied on the specified edges.
radius[in] Array of fillet radius values for the corresponding edges.
startSetback[in] Array of start setback values for the corresponding edges.
endSetback[in] Array of end setback values for the corresponding edges.
Returns
Returns eOk if successful or an appropriate error code in other case
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ getArea()

virtual OdResult OdDb3dSolid::getArea ( double &  area) const
virtual

Calculates the area of the solid.

Parameters
area[out] Reference for returning the area value.
Returns
Returns eOk if successful or an appropriate error code in other case. Area value is returned in square drawing units.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ getMassProp()

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

Returns volume properties of the solid.

Parameters
volume[out] A reference for returning the volume of the solid.
centroid[out] A reference to an OdGePoint3d object for returning the point, representing the centroid of the solid.
momInertia[out] A static array for returning X, Y, Z moments of inertia of the solid.
prodInertia[out] A static array for returning X, Y, Z products of inertia of the solid.
prinMoments[out] A static array for returning X, Y, Z principal moments of the solid.
prinAxes[out] A static array for returning an OdGeVector3d object, determining principal axes of the solid.
radiiGyration[out] A static array for returning X, Y, Z radii of gyration of the solid.
extents[out] A reference to an OdGeExtents3d object for returning the bounding box of the solid.
Returns
Returns the result of getting volume properties of the solid: eOk if successful or an appropriate error code in other case. All properties are evaluated in the WCS.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ getSection()

virtual OdResult OdDb3dSolid::getSection ( const OdGePlane plane,
OdDbRegionPtr sectionRegion 
) const
virtual

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

Parameters
plane[in] A reference to an OdGePlane object to use as the section cutting plane.
sectionRegion[out] A reference to a new region created as the result of the intersection between the specified plane and the solid.
Returns
Returns the result of the intersecting the solid with a plane: eOk if successful or an appropriate error code in other case. Value eOk is also returned when a plane and the solid do not intersect each other or if the intersection region is not a valid region: it intersects at a point, along a bounding face of the solid and so on.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ getSlice() [1/2]

virtual OdResult OdDb3dSolid::getSlice ( const OdGePlane plane,
bool  bGetNegHalfToo,
OdDb3dSolidPtr pNegHalfSolid 
)
virtual

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

Parameters
plane[in] A reference to a slicing plane.
bGetNegHalfToo[in] A flag determining whether the other (negative) part of the native solid should be created as a separate solid (when true).
pNegHalfSolid[out] A reference to a pointer to the created solid representing the negative half of the native solid. If bGetNegHalfToo is false, NULL value is returned.
Returns
Returns eOk if the native solid was successfully sliced or an appropriate error code in other case. If the slicing plane does not intersect the solid, the solid is left unchanged, pNegHalfSolid 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 pNegHalfSolid (negative part of the sliced solid) when the function finishes. In the case when pNegHalfSolid is added to a database, the database takes responsibility for the memory. In the case when pNegHalfSolid is not added to a database, the caller must delete memory when it is no longer needed to avoid a memory leak.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ getSlice() [2/2]

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

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

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

The caller of this function is responsible for the memory used by the object pointed to by pNegHalfSolid (negative part of the sliced solid) when the function finishes. In the case when pNegHalfSolid is added to a database, the database takes responsibility for the memory. In the case when pNegHalfSolid is not added to a database, the caller must delete memory when it is no longer needed to avoid a memory leak.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ getSubentColor()

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

Returns the color of the specified subentity.

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

◆ getSubentMaterial()

virtual OdResult OdDb3dSolid::getSubentMaterial ( const OdDbSubentId subentId,
OdDbObjectId matId 
) const
virtual

Returns the material of the specified subentity.

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

◆ getSubentMaterialMapper()

virtual OdResult OdDb3dSolid::getSubentMaterialMapper ( const OdDbSubentId subentId,
OdGiMapper mapper 
) const
virtual

Returns current material mapper for the specified subentity.

Parameters
subentId[in] Subentity ID.
mapper[out] Reference to an OdGiMapper object containing the current subentity material mapper.
Returns
Returns eOk if successful or an appropriate error code in other case.

◆ imprintEntity()

virtual OdResult OdDb3dSolid::imprintEntity ( const OdDbEntity pEntity)
virtual

Intersects the given entity with the solid and imprints their intersection graph onto the solid.

Parameters
pEntity[in] A Pointer to an entity to be imprinted.
Returns
Returns eOk if imprinting entity onto the solid 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 solid 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.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ internalSubentId()

virtual OdDbSubentId OdDb3dSolid::internalSubentId ( void ent) const
virtual

◆ internalSubentPtr()

virtual void* OdDb3dSolid::internalSubentPtr ( const OdDbSubentId id) const
virtual

◆ isNull()

bool OdDb3dSolid::isNull ( ) const

Returns true if and only if there is no ACIS model associated with this entity.

◆ numChanges()

virtual OdUInt32 OdDb3dSolid::numChanges ( ) const
virtual

Returns the number of changes occurred since the solid's creation.

◆ ODDB_DECLARE_MEMBERS()

OdDb3dSolid::ODDB_DECLARE_MEMBERS ( OdDb3dSolid  )

◆ offsetBody()

virtual OdResult OdDb3dSolid::offsetBody ( double  offsetDistance)
virtual

Offsets all faces by the specified distance.

Parameters
offsetDistance)[in] A distance for offset.
Returns
Returns eOk if all faces are successfully offset, or an appropriate error code in other case. Returns eInvalidInput if the offsetDistance is less than -maxSide/2, where maxSide is the size of the greater side of the solid'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 solid to become invalid.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ offsetFaces()

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

Offsets the specified faces of the solid for the specified distance.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be offset.
offsetDistance[in] Offset distance.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
Faces with surfaces that cannot be offset are removed and the solid is healed, if possible.

The following constraints are applied: number of specified faces (in faceSubentIds parameter) must be more than zero offsetDistance >= minus half of the max side of the solid's bounding box |offsetDistance| >= 1e-6

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ projectOnToSolid()

OdResult OdDb3dSolid::projectOnToSolid ( const OdDbEntity pEntityToProject,
const OdGeVector3d projectionDirection,
OdDbEntityPtrArray projectedEntities 
) const

Creates non-database resident entities by projecting the specified entity along the projection direction to the solid.

Parameters
pEntityToProject[in] Pointer to the entity to be projected.
projectionDirection[in] Vector determining the projection direction.
projectedEntities[out] Array of pointers to non-database resident entities created by the projection.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks

Specified pointer to the entity must not be equal to NULL and the entity must be of a supported type.

When an OdDbPoint is specified as the entity to be projected, the result of the projection will be an AcDbPoint representing the nearest point on the solid.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ recordHistory()

virtual bool OdDb3dSolid::recordHistory ( ) const
virtual

Returns whether the solid records its operations history.

Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ removeFaces()

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

Removes the specified faces from the solid.

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be removed.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
After removing specified faces, the adjacent faces will enlarge to fill the gaps. This method implements gap filling only if there is no other solution using adjacent faces. If adjacent faces can't be used, the method leaves the solid unmodified.

Removing faces can cause the solid to become invalid in some cases.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ revolve()

virtual OdResult OdDb3dSolid::revolve ( const OdDbRegion pRegion,
const OdGePoint3d axisPoint,
const OdGeVector3d axisDir,
double  angleOfRevolution 
)
virtual

Creates a solid by revolving the specified region around the axis. Axis is specified with a point and vector. Revolution can be produced with an angle.

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 in radians.
Returns
Returns eOk if creating a solid by revolving is successful or an appropriate error code if not.
Remarks
The axis of revolution is projected onto the plane of the region, parallel to its normal. Revolution axis must be valid for a rotation of region: axisDir is not perpendicular to the plane of a region, axisDir does not pass through a region, etc.

The following constraints are applied: The projected axis of revolution cannot intersect the region. angleOfRevolution >= 1e-6

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ saveAs()

virtual void OdDb3dSolid::saveAs ( OdGiWorldDraw pWd,
OdDb::DwgVersion  ver 
) const
virtual

Saves 3D solid entity to a .dwg file.

Parameters
pWd[in] Pointer to an OdGiWorldDraw object instance used for saving the solid.
ver[in] Version of saved .dwg file.

Creates a geometric representation of the entity for saving proxy graphics or converting to previous formats.

Parameters
pWd[in] Pointer to the OdGiWorldDraw object.
ver[in] Specifies the reason why the method is called.
Remarks
This method can be overridden in a custom classes.

Reimplemented from OdDbEntity.

◆ separateBody()

virtual OdResult OdDb3dSolid::separateBody ( OdDb3dSolidPtrArray newSolids)
virtual

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

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ setBody()

virtual OdResult OdDb3dSolid::setBody ( const void pGeometry)
virtual

Directly sets the contained modeler geometry of this entity.

Parameters
pGeometry[in] Pointer to the modeler geometry.
Returns
Returns eOk if successful or an appropriate error code in other case.

◆ setRecordHistory()

virtual OdResult OdDb3dSolid::setRecordHistory ( bool  bRecord)
virtual

Sets a new value for the flag that determines whether the solid records its operation history.

Parameters
bRecord[in] Flag determining whether the solid records operation history.
Returns
Returns eOk if successful or an appropriate error code in other case

◆ setShowHistory()

virtual OdResult OdDb3dSolid::setShowHistory ( bool  bShow)
virtual

Sets a new value for the flag that determines whether to draw items from the solid's operation history.

Parameters
bShow[in] Flag determining whether the solid records operation history.
Remarks
Returns eOk if successful or an appropriate error code in other case.

◆ setSubentColor()

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

Sets the color of the specified face or edge subentity.

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

◆ setSubentMaterial()

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

Sets a material for the specified subentity.

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

◆ setSubentMaterialMapper()

virtual OdResult OdDb3dSolid::setSubentMaterialMapper ( const OdDbSubentId subentId,
const OdGiMapper mapper 
)
virtual

Sets an explicit material mapper for the specified subentity.

Parameters
subentId[in] Subentity ID
mapper[in] Pointer to an OdGiMapper object.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
To remove the current material mapper assignment, set map parameter value to NULL.

◆ shellBody()

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

Transforms the solid into a thin-walled solid shell by offsetting faces.

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

If a face has surfaces that cannot be offset by the thickness, it will be removed from the solid. Removal wound is healed with the surrounding face surfaces. Edges and vertices on the specified faces will be merged if possible. Isolated edges in tweaked faces and neighboring faces may degenerate to a point and will be removed. However, when removing loops or faces, insertion of edges or other topology changes are prohibited.

Operation can cause the solid to become invalid in some cases.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ showHistory()

virtual bool OdDb3dSolid::showHistory ( ) const
virtual

Returns whether to draw items from the solid's operation history.

Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ stlOut()

virtual void OdDb3dSolid::stlOut ( const OdChar filename,
bool  asciiFormat 
) const
virtual

Writes out a Stereo Lithography (STL) representation of the solid to a file with the specified name.

Parameters
filename[in] Full file name.
asciiFormat[in] A flag determining the format of the output file (if true, file has ASCII text format, or in other case file has binary format).
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks
If the specified file already exists, it will be overwritten.

This method is not implemented.

◆ subClose()

virtual void OdDb3dSolid::subClose ( )
virtual

This method is not implemented.

Reimplemented from OdDbObject.

◆ subExplode()

virtual OdResult OdDb3dSolid::subExplode ( OdRxObjectPtrArray entitySet) const
virtual

Reimplemented from OdDbEntity.

◆ subGetClassID()

virtual OdResult OdDb3dSolid::subGetClassID ( void pClsid) const
virtual

Reimplemented from OdDbEntity.

◆ subGetGeomExtents()

virtual OdResult OdDb3dSolid::subGetGeomExtents ( OdGeExtents3d extents) const
virtual

Reimplemented from OdDbEntity.

◆ subGetGsMarkersAtSubentPath()

virtual OdResult OdDb3dSolid::subGetGsMarkersAtSubentPath ( const OdDbFullSubentPath subPath,
OdGsMarkerArray gsMarkers 
) const
virtual

Reimplemented from OdDbEntity.

◆ subGetSubentPathsAtGsMarker()

virtual OdResult OdDb3dSolid::subGetSubentPathsAtGsMarker ( OdDb::SubentType  type,
OdGsMarker  gsMark,
const OdGePoint3d pickPoint,
const OdGeMatrix3d viewXform,
OdDbFullSubentPathArray subentPaths,
const OdDbObjectIdArray pEntAndInsertStack = 0 
) const
virtual

Reimplemented from OdDbEntity.

◆ subSetAttributes()

virtual OdUInt32 OdDb3dSolid::subSetAttributes ( OdGiDrawableTraits pTraits) const
virtual

Sets the values of this object's subentity traits, and returns with the calling object's subentity traits.

Parameters
pTraits[in] Pointer to the OdGiDrawableTraits object to be set.
Remarks
When overriding subSetAttributes(), you must OR (|) the return value of <base class>::subSetAttributes(pTraits) with any flags you add.

A derived class may not remove flags for any reason.

The default implementation does nothing but returns kDrawableNone. This function can be overridden in custom classes.

Reimplemented from OdDbEntity.

◆ subSubentPtr()

virtual OdDbEntityPtr OdDb3dSolid::subSubentPtr ( const OdDbFullSubentPath id) const
virtual

Reimplemented from OdDbEntity.

◆ subTransformBy()

virtual OdResult OdDb3dSolid::subTransformBy ( const OdGeMatrix3d xfm)
virtual

Reimplemented from OdDbEntity.

◆ subViewportDraw()

virtual void OdDb3dSolid::subViewportDraw ( OdGiViewportDraw pVd) const
virtual

Reimplemented from OdDbEntity.

◆ subWorldDraw()

virtual bool OdDb3dSolid::subWorldDraw ( OdGiWorldDraw pWd) const
virtual

Reimplemented from OdDbEntity.

◆ taperFaces()

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

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

Parameters
faceSubentIds[in] Array of faces' subentity IDs. Faces with specified IDs will be tapered.
basePoint[in] Reference to the base point of the draft plane.
draftVector[in] Reference to the draft direction vector.
draftAngle[in] Draft angle in radians.
Returns
Returns eOk if successful or an appropriate error code in other case.
Remarks

The base point and draft vector define a draft plane about which faces are tapered. If a face is lying in the draft plane, it will not be modified.

Tapering faces can cause the solid to become invalid in some cases.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ transformFaces()

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

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

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

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.


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