CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
Db3dSolid.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24
25
26
27#ifndef GEOMENT_DBSOL3D_H
28#define GEOMENT_DBSOL3D_H
29
30#include "TD_PackPush.h"
31#include "ModelerDefs.h"
32#include "DbRegion.h"
33#include "DbSubentId.h"
34
35class OdDbSubentId;
36class OdDbCurve;
37class OdBrBrep;
39class OdDbLoftOptions;
42class OdDbSurface;
43namespace GeMesh { class OdGeTrMesh; }
45
46#include "DbEntity.h"
47#include "OdArray.h"
48#include "DwgDeclareMembers.h"
49
50
51
52class OdDb3dSolid;
53
59
65
66
77{
78public:
79 //DOM-IGNORE-BEGIN
81 //DOM-IGNORE-END
82
87
95 bool isNull() const;
96
106 OdStreamBuf* pStreamBuf,
107 AfTypeVer typeVer = kAfTypeVerAny) const;
108
118 OdStreamBuf* pStreamBuf,
119 AfTypeVer *pTypeVer = 0);
120
126 void brep(
127 OdBrBrep& brep);
128
139 bool getFaceMesh(GeMesh::OdGeTrMesh& mesh, OdGsMarker iFace, const wrTriangulationParams& triangulationParams) const;
140
141 virtual bool subWorldDraw(
142 OdGiWorldDraw* pWd) const;
143
144 virtual void subViewportDraw(
145 OdGiViewportDraw* pVd) const;
146
148 OdDbDwgFiler* pFiler);
149
150 virtual void dwgOutFields(
151 OdDbDwgFiler* pFiler) const;
152
154 OdDbDxfFiler* pFiler);
155
156 virtual void dxfOutFields(
157 OdDbDxfFiler* pFiler) const;
158
160 void* pClsid) const;
161
175 virtual void createBox(
176 double xLen,
177 double yLen,
178 double zLen);
179
209 virtual void createFrustum(
210 double height,
211 double xRadius,
212 double yRadius,
213 double topXRadius);
214
224 virtual void createSphere(
225 double radius);
226
244 virtual void createTorus(
245 double majorRadius,
246 double minorRadius);
247
270 virtual void createWedge(
271 double xLen,
272 double yLen,
273 double zLen);
274
304 const OdDbRegion* pRegion,
305 double height,
306 double taperAngle = 0.0);
307
334 const OdDbRegion* pRegion,
335 const OdGePoint3d& axisPoint,
336 const OdGeVector3d& axisDir,
337 double angleOfRevolution);
338
357
400 virtual OdResult extrudeAlongPath(const OdDbRegion* region, const OdDbCurve* path, double taperAngle = 0.0);
401
432 virtual OdResult imprintEntity(const OdDbEntity *pEntity);
433
446 virtual OdResult getArea(double& area) const;
447
471 virtual OdResult checkInterference(const OdDb3dSolid* otherSolid,
472 bool createNewSolid,
473 bool& solidsInterfere,
474 OdDb3dSolidPtr& commonVolumeSolid)
475 const;
476
496 virtual OdResult getMassProp(double& volume,
497 OdGePoint3d& centroid,
498 double momInertia[3],
499 double prodInertia[3],
500 double prinMoments[3],
501 OdGeVector3d prinAxes[3],
502 double radiiGyration[3],
503 OdGeExtents3d& extents) const;
504
521 virtual OdResult getSection(const OdGePlane& plane, OdDbRegionPtr &sectionRegion) const;
522
553 virtual OdResult getSlice(const OdGePlane& plane, bool bGetNegHalfToo, OdDb3dSolidPtr &pNegHalfSolid);
554
587 virtual OdResult getSlice(OdDbSurface* pSurface, bool bGetNegHalfToo, OdDb3dSolidPtr &pNegHalfSolid);
588
600
619 virtual OdResult offsetBody(double offsetDistance);
620
642
662 const OdGeVector3d& directionVec,
663 OdDbSweepOptions& sweepOptions );
664
683 const OdDbSubentId& faceSubentId,
684 const OdGeVector3d& directionVec,
685 OdDbSweepOptions& sweepOptions );
686
705 const OdDbSubentId& faceSubentId,
706 double height,
707 OdDbSweepOptions& sweepOptions );
708
725 OdDbEntityPtrArray& crossSectionCurves,
726 OdDbEntityPtrArray& guideCurves,
727 OdDbEntity* pPathCurve, OdDbLoftOptions& loftOptions );
728
752 virtual OdResult createPyramid(double height, int sides,
753 double radius, double topRadius = 0.0 );
754
778 const OdGePoint3d& axisPnt,
779 const OdGeVector3d& axisDir,
780 double revAngle, double startAngle,
781 OdDbRevolveOptions& revolveOptions );
782
803 const OdDbSubentId& faceSubentId,
804 const OdGePoint3d& axisPnt,
805 const OdGeVector3d& axisDir,
806 double revAngle, double startAngle,
807 OdDbRevolveOptions& revolveOptions );
808
829 const OdDbSubentId& faceSubentId,
830 OdDbEntity* pPathEnt,
831 OdDbSweepOptions& sweepOptions );
832
854 OdDbEntity* pPathEnt,
855 OdDbSweepOptions& sweepOptions );
856
876 virtual OdResult stlOut(OdStreamBuf* output, bool asciiFormat, double maxSurfaceDeviation = 0.0) const;
877
897 virtual OdResult stlOut(const OdChar* filename, bool asciiFormat, double maxSurfaceDeviation = 0.0) const;
898
901 OdDbObjectId& replaceId,
902 bool& exchangeXData);
903
905 OdRxObjectPtrArray& entitySet) const;
906
908 const OdGeMatrix3d& xfm );
909
920 virtual void saveAs(
921 OdGiWorldDraw* pWd,
922 OdDb::DwgVersion ver) const;
923
931 virtual OdResult setBody(const void* pGeometry);
932
936 virtual void* body() const;
937
957 virtual OdResult copyEdge(const OdDbSubentId &subentId, OdDbEntityPtr &newEntity);
958
979 virtual OdResult copyFace(const OdDbSubentId &subentId, OdDbEntityPtr &newEntity);
980
982 OdGsMarker gsMark,
983 const OdGePoint3d& pickPoint,
984 const OdGeMatrix3d& viewXform,
985 OdDbFullSubentPathArray& subentPaths,
986 const OdDbObjectIdArray* pEntAndInsertStack = 0) const;
987
988 virtual OdDbSubentId internalSubentId(void* ent) const;
989
990 virtual void* internalSubentPtr(const OdDbSubentId& id) const;
991
993 OdGsMarkerArray& gsMarkers) const;
994
996
1030 virtual OdResult extrudeFaces(const OdArray<OdDbSubentId *> &faceSubentIds,
1031 double height, double taper);
1032
1060 const OdDbCurve* path);
1061
1083 virtual OdResult taperFaces(const OdArray<OdDbSubentId *> &faceSubentIds,
1084 const OdGePoint3d &basePoint,
1085 const OdGeVector3d &draftVector,
1086 double draftAngle);
1087
1102 virtual OdResult transformFaces(const OdArray<OdDbSubentId *> &faceSubentIds, const OdGeMatrix3d &matrix);
1103
1121 virtual OdResult removeFaces(const OdArray<OdDbSubentId *> &faceSubentIds);
1122
1143 virtual OdResult offsetFaces(const OdArray<OdDbSubentId *> &faceSubentIds, double offsetDistance);
1144
1171 virtual OdResult shellBody(const OdArray<OdDbSubentId *> &faceSubentIds, double offsetDistance);
1172
1178 virtual OdUInt32 numChanges() const;
1179
1188 virtual OdResult setSubentColor(const OdDbSubentId &subentId, const OdCmColor &color);
1189
1198 virtual OdResult getSubentColor(const OdDbSubentId &subentId, OdCmColor &color) const;
1199
1212 virtual OdResult setSubentMaterial(const OdDbSubentId &subentId, OdDbObjectId matId);
1213
1222 virtual OdResult getSubentMaterial(const OdDbSubentId &subentId, OdDbObjectId& matId) const;
1223
1236 virtual OdResult setSubentMaterialMapper(const OdDbSubentId &subentId, const OdGiMapper& mapper);
1237
1246 virtual OdResult getSubentMaterialMapper(const OdDbSubentId &subentId, OdGiMapper& mapper) const;
1247
1262 virtual OdResult chamferEdges(const OdArray<OdDbSubentId *> &edgeSubentIds,
1263 const OdDbSubentId& baseFaceSubentId,
1264 double baseDist,
1265 double otherDist);
1266
1281 virtual OdResult filletEdges( const OdArray<OdDbSubentId *> &edgeSubentIds,
1282 const OdGeDoubleArray& radius,
1283 const OdGeDoubleArray& startSetback,
1284 const OdGeDoubleArray& endSetback);
1285
1305 virtual OdResult createFrom(const OdDbEntity* pFromEntity);
1306
1316 virtual bool recordHistory() const;
1317
1328 virtual bool showHistory() const;
1329
1338 virtual OdResult setRecordHistory(bool bRecord);
1339
1348 virtual OdResult setShowHistory(bool bShow);
1349
1362
1364
1384 OdResult projectOnToSolid( const OdDbEntity* pEntityToProject,
1385 const OdGeVector3d& projectionDirection,
1386 OdDbEntityPtrArray& projectedEntities) const;
1387
1401 const OdGeIntArray& limitingFlags);
1402
1407 virtual void subClose();
1408
1410
1411 //DOM-IGNORE-BEGIN
1412 virtual void copyFrom(const OdRxObject* pSource) ODRX_OVERRIDE;
1413 //DOM-IGNORE-END
1414};
1415
1416#include "TD_PackPop.h"
1417
1418#endif
OdSmartPtr< OdDb3dSolid > OdDb3dSolidPtr
Definition: Db3dSolid.h:58
OdArray< OdDb3dSolidPtr > OdDb3dSolidPtrArray
Definition: Db3dSolid.h:64
#define DBENT_EXPORT
Definition: DbExport.h:67
@ kAfTypeVerAny
Definition: ModelerDefs.h:80
int AfTypeVer
Definition: ModelerDefs.h:29
ptrdiff_t OdGsMarker
unsigned int OdUInt32
#define ODRX_OVERRIDE
wchar_t OdChar
OdResult
Definition: OdResult.h:29
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)
virtual void subClose()
virtual void * body() const
OdResult createSculptedSolid(OdDbEntityPtrArray &limitingBodies, const OdGeIntArray &limitingFlags)
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 &sectionRegion) const
virtual void copyFrom(const OdRxObject *pSource) ODRX_OVERRIDE
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)
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)
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)
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 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)
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)
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)
virtual bool recordHistory() const
virtual OdResult copyFace(const OdDbSubentId &subentId, OdDbEntityPtr &newEntity)
virtual OdResult shellBody(const OdArray< OdDbSubentId * > &faceSubentIds, double offsetDistance)
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 void createFrustum(double height, double xRadius, double yRadius, double topXRadius)
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()
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)
virtual OdResult setSubentColor(const OdDbSubentId &subentId, const OdCmColor &color)
virtual OdResult extrude(const OdDbRegion *pRegion, double height, double taperAngle=0.0)
bool isNull() const
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
Definition: gles2_ext.h:274
GLint GLenum GLsizei GLsizei height
Definition: gles2_ext.h:110
BoolOperType
Definition: ModelerDefs.h:158
DwgVersion
Definition: OdaDefs.h:47