27#ifndef GEOMENT_DBSOL3D_H
28#define GEOMENT_DBSOL3D_H
214 double topMajorRadius);
306 double taperAngle = 0.0);
335 double angleOfRevolution);
469 bool& solidsInterfere,
494 double momInertia[3],
495 double prodInertia[3],
496 double prinMoments[3],
498 double radiiGyration[3],
744 double radius,
double topRadius = 0.0 );
770 double revAngle,
double startAngle,
796 double revAngle,
double startAngle,
892 bool& exchangeXData);
1021 double height,
double taper);
1469 bool isTorus(
bool byBrep =
false,
double* majorRadius =
nullptr,
double* minorRadius =
nullptr,
OdGeMatrix3d* matrix =
nullptr)
const;
1485 double*
height =
nullptr,
1486 double* majorRadius =
nullptr,
1487 double* minorRadius =
nullptr,
1505 double*
height =
nullptr,
1506 double* majorRadius =
nullptr,
1507 double* minorRadius =
nullptr,
1508 double* topMajorRadius =
nullptr,
1524 bool isBox(
bool byBrep =
false,
double* xLen =
nullptr,
double* yLen =
nullptr,
double* zLen =
nullptr,
OdGeMatrix3d* matrix =
nullptr)
const;
1539 bool isWedge(
bool byBrep =
false,
double* xLen =
nullptr,
double* yLen =
nullptr,
double* zLen =
nullptr,
OdGeMatrix3d* matrix =
nullptr)
const;
1556 double*
height =
nullptr,
1557 int* sides =
nullptr,
1558 double* radius =
nullptr,
1559 double* topRadius =
nullptr,
1638 double* revolveAngle =
nullptr,
1639 double* startAngle =
nullptr,
OdSmartPtr< OdDb3dSolid > OdDb3dSolidPtr
OdArray< OdDb3dSolidPtr > OdDb3dSolidPtrArray
OdArray< OdDbEntityPtr > OdDbEntityPtrArray
OdSmartPtr< OdDbEntity > OdDbEntityPtr
OdSmartPtr< OdDbObject > OdDbObjectPtr
OdSmartPtr< OdDbRegion > OdDbRegionPtr
OdArray< OdDbFullSubentPath > OdDbFullSubentPathArray
OdArray< double, OdMemoryAllocator< double > > OdGeDoubleArray
OdArray< int, OdMemoryAllocator< int > > OdGeIntArray
OdArray< OdGsMarker, OdMemoryAllocator< OdGsMarker > > OdGsMarkerArray
OdArray< OdDbObjectId, OdClrMemAllocator< OdDbObjectId > > OdDbObjectIdArray
OdArray< OdRxObjectPtr > OdRxObjectPtrArray
virtual OdResult createSweptSolid(OdDbEntity *pSweepEnt, OdDbEntity *pPathEnt, OdDbSweepOptions &sweepOptions)
virtual OdUInt32 subSetAttributes(OdGiDrawableTraits *pTraits) const
virtual void subViewportDraw(OdGiViewportDraw *pVd) const
virtual void createSphere(double radius)
virtual OdResult subGetGeomExtents(OdGeExtents3d &extents) const
OdResult acisOut(OdStreamBuf *pStreamBuf, AfTypeVer typeVer=kAfTypeVerAny) const
virtual OdResult offsetFaces(const OdArray< OdDbSubentId * > &faceSubentIds, double offsetDistance)
bool isCylinder(bool byBrep=false, double *height=nullptr, double *majorRadius=nullptr, double *minorRadius=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual void * body() const
OdResult createSculptedSolid(OdDbEntityPtrArray &limitingBodies, const OdGeIntArray &limitingFlags)
bool isPyramid(bool byBrep=false, double *height=nullptr, int *sides=nullptr, double *radius=nullptr, double *topRadius=nullptr, OdGeMatrix3d *matrix=nullptr) const
bool getFaceMesh(GeMesh::OdGeTrMesh &mesh, OdGsMarker iFace, const wrTriangulationParams &triangulationParams) const
virtual OdResult filletEdges(const OdArray< OdDbSubentId * > &edgeSubentIds, const OdGeDoubleArray &radius, const OdGeDoubleArray &startSetback, const OdGeDoubleArray &endSetback)
virtual OdResult checkInterference(const OdDb3dSolid *otherSolid, bool createNewSolid, bool &solidsInterfere, OdDb3dSolidPtr &commonVolumeSolid) const
virtual void createBox(double xLen, double yLen, double zLen)
virtual OdResult convertToBrepAtSubentPaths(const OdDbFullSubentPathArray &)
virtual OdResult getSection(const OdGePlane &plane, OdDbRegionPtr §ionRegion) const
virtual void copyFrom(const OdRxObject *pSource) ODRX_OVERRIDE
bool isLoft(bool byBrep=false, OdDbEntityPtrArray *crossSectionCurves=nullptr, OdDbEntityPtrArray *guideCurves=nullptr, OdDbEntity **pathCurve=nullptr, OdDbLoftOptions *options=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual OdResult revolve(const OdDbRegion *pRegion, const OdGePoint3d &axisPoint, const OdGeVector3d &axisDir, double angleOfRevolution)
OdResult acisIn(OdStreamBuf *pStreamBuf, AfTypeVer *pTypeVer=0)
virtual OdResult extrudeAlongPath(const OdDbRegion *region, const OdDbCurve *path, double taperAngle=0.0)
virtual OdResult subGetGsMarkersAtSubentPath(const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const
virtual OdResult transformFaces(const OdArray< OdDbSubentId * > &faceSubentIds, const OdGeMatrix3d &matrix)
bool isSweep(bool byBrep=false, OdDbEntity **sweepEntity=nullptr, OdDbEntity **pathEntity=nullptr, OdDbSweepOptions *options=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual OdResult extrudeFacesAlongPath(const OdArray< OdDbSubentId * > &faceSubentIds, const OdDbCurve *path)
virtual OdResult imprintEntity(const OdDbEntity *pEntity)
OdResult projectOnToSolid(const OdDbEntity *pEntityToProject, const OdGeVector3d &projectionDirection, OdDbEntityPtrArray &projectedEntities) const
virtual OdResult createRevolvedSolid(OdDbEntity *pRevEnt, const OdDbSubentId &faceSubentId, const OdGePoint3d &axisPnt, const OdGeVector3d &axisDir, double revAngle, double startAngle, OdDbRevolveOptions &revolveOptions)
DWGMAP_DECLARE_MEMBERS(OdDb3dSolid)
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
virtual void createTorus(double majorRadius, double minorRadius)
bool isRevolve(bool byBrep=false, double *revolveAngle=nullptr, double *startAngle=nullptr, OdGePoint3d *axisPoint=nullptr, OdGeVector3d *axisDir=nullptr, OdDbEntity **revolveEntity=nullptr, OdDbRevolveOptions *options=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual OdResult createSweptSolid(OdDbEntity *pSweepEnt, const OdDbSubentId &faceSubentId, OdDbEntity *pPathEnt, OdDbSweepOptions &sweepOptions)
virtual OdResult createPyramid(double height, int sides, double radius, double topRadius=0.0)
bool isWedge(bool byBrep=false, double *xLen=nullptr, double *yLen=nullptr, double *zLen=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual OdResult getMassProp(double &volume, OdGePoint3d ¢roid, double momInertia[3], double prodInertia[3], double prinMoments[3], OdGeVector3d prinAxes[3], double radiiGyration[3], OdGeExtents3d &extents) const
virtual OdResult createFrom(const OdDbEntity *pFromEntity)
virtual OdResult stlOut(const OdChar *filename, bool asciiFormat, double maxSurfaceDeviation=0.0) const
virtual OdResult getArea(double &area) const
virtual OdResult getSlice(const OdGePlane &plane, bool bGetNegHalfToo, OdDb3dSolidPtr &pNegHalfSolid)
bool isTorus(bool byBrep=false, double *majorRadius=nullptr, double *minorRadius=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual OdResult chamferEdges(const OdArray< OdDbSubentId * > &edgeSubentIds, const OdDbSubentId &baseFaceSubentId, double baseDist, double otherDist)
virtual OdUInt32 numChanges() const
virtual OdResult createExtrudedSolid(OdDbEntity *pSweepEnt, const OdDbSubentId &faceSubentId, double height, OdDbSweepOptions &sweepOptions)
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const
virtual OdResult stlOut(OdStreamBuf *output, bool asciiFormat, double maxSurfaceDeviation=0.0) const
virtual OdResult getSubentColor(const OdDbSubentId &subentId, OdCmColor &color) const
virtual OdResult createRevolvedSolid(OdDbEntity *pRevEnt, const OdGePoint3d &axisPnt, const OdGeVector3d &axisDir, double revAngle, double startAngle, OdDbRevolveOptions &revolveOptions)
virtual OdResult createExtrudedSolid(OdDbEntity *pSweepEnt, const OdGeVector3d &directionVec, OdDbSweepOptions &sweepOptions)
virtual OdResult setBody(const void *pGeometry)
bool isBox(bool byBrep=false, double *xLen=nullptr, double *yLen=nullptr, double *zLen=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual OdResult extrudeFaces(const OdArray< OdDbSubentId * > &faceSubentIds, double height, double taper)
virtual OdResult setSubentMaterial(const OdDbSubentId &subentId, OdDbObjectId matId)
virtual OdResult subGetClassID(void *pClsid) const
virtual OdResult createLoftedSolid(OdDbEntityPtrArray &crossSectionCurves, OdDbEntityPtrArray &guideCurves, OdDbEntity *pPathCurve, OdDbLoftOptions &loftOptions)
virtual OdResult setShowHistory(bool bShow)
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
virtual OdResult taperFaces(const OdArray< OdDbSubentId * > &faceSubentIds, const OdGePoint3d &basePoint, const OdGeVector3d &draftVector, double draftAngle)
bool isCone(bool byBrep=false, double *height=nullptr, double *majorRadius=nullptr, double *minorRadius=nullptr, double *topMajorRadius=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual bool recordHistory() const
virtual OdResult copyFace(const OdDbSubentId &subentId, OdDbEntityPtr &newEntity)
virtual OdResult shellBody(const OdArray< OdDbSubentId * > &faceSubentIds, double offsetDistance)
GeomType determineGeomType(bool byBrep=false, OdDb3dSolidGeomParams **params=nullptr) const
virtual OdResult copyEdge(const OdDbSubentId &subentId, OdDbEntityPtr &newEntity)
virtual OdDbEntityPtr subSubentPtr(const OdDbFullSubentPath &id) const
virtual OdResult removeFaces(const OdArray< OdDbSubentId * > &faceSubentIds)
virtual void saveAs(OdGiWorldDraw *pWd, OdDb::DwgVersion ver) const
virtual OdResult subGetSubentPathsAtGsMarker(OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &viewXform, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack=0) const
virtual OdResult offsetBody(double offsetDistance)
virtual void createWedge(double xLen, double yLen, double zLen)
virtual OdResult getSubentMaterialMapper(const OdDbSubentId &subentId, OdGiMapper &mapper) const
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
virtual void * internalSubentPtr(const OdDbSubentId &id) const
void brep(OdBrBrep &brep)
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
virtual OdDbSubentId internalSubentId(void *ent) const
virtual OdResult getSubentMaterial(const OdDbSubentId &subentId, OdDbObjectId &matId) const
virtual OdResult cleanBody()
bool isExtrusion(bool byBrep=false, OdGeVector3d *direction=nullptr, OdDbEntity **extrusionEntity=nullptr, OdDbSweepOptions *options=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual OdResult getSlice(OdDbSurface *pSurface, bool bGetNegHalfToo, OdDb3dSolidPtr &pNegHalfSolid)
virtual OdResult setSubentMaterialMapper(const OdDbSubentId &subentId, const OdGiMapper &mapper)
virtual OdDbObjectPtr decomposeForSave(OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm)
bool isSphere(bool byBrep=false, double *radius=nullptr, OdGeMatrix3d *matrix=nullptr) const
virtual void createFrustum(double height, double majorRadius, double minorRadius, double topMajorRadius)
virtual OdResult setSubentColor(const OdDbSubentId &subentId, const OdCmColor &color)
virtual OdResult extrude(const OdDbRegion *pRegion, double height, double taperAngle=0.0)
virtual OdResult createExtrudedSolid(OdDbEntity *pSweepEnt, const OdDbSubentId &faceSubentId, const OdGeVector3d &directionVec, OdDbSweepOptions &sweepOptions)
virtual OdResult setRecordHistory(bool bRecord)
virtual bool showHistory() const
virtual OdResult booleanOper(OdDb::BoolOperType operation, OdDb3dSolid *solid)
virtual OdResult separateBody(OdDb3dSolidPtrArray &newSolids)
GLuint GLsizei GLsizei GLint GLenum * type
GLint GLenum GLsizei GLsizei height