CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
DbSurface.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, 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-2024 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#ifndef _DBSURFACE_H_INCLUDED_
26#define _DBSURFACE_H_INCLUDED_
27
28#include "TD_PackPush.h"
29#include "ModelerDefs.h"
30#include "DbEntity.h"
31#include "Db3dSolid.h"
32#include "Db3dProfile.h"
33
35class OdStreamBuf;
36class OdBrBrep;
37
38class OdDbSurface;
39class OdDbNurbSurface;
40
46
52
58
59
66{
67public:
72 {
77 };
78
82
83 //DOM-IGNORE-BEGIN
85 //DOM-IGNORE-END
86
93 virtual OdUInt16 uIsolineDensity() const;
94
101 virtual void setUIsolineDensity(OdUInt16 numIsolines);
102
109 virtual OdUInt16 vIsolineDensity() const;
110
117 virtual void setVIsolineDensity(OdUInt16 numIsolines);
118
129 static OdResult createFrom(const OdDbEntity* pFromEntity, OdDbSurfacePtr& pNewSurface);
130
148
167 virtual OdResult thicken(double thickness, bool bBothSides, OdDb3dSolidPtr& pSolid) const;
168
182 virtual OdResult getArea(double& area) const;
183
191 bool isNull() const;
192
203 OdStreamBuf* pStreamBuf,
204 AfTypeVer typeVer = kAfTypeVerAny) const;
205
218 OdStreamBuf* pStreamBuf,
219 AfTypeVer *pTypeVer = 0);
220
227
237 bool getFaceMesh(GeMesh::OdGeTrMesh& mesh, OdGsMarker iFace, const wrTriangulationParams& triangulationParams) const;
238
268 OdDbObjectId& replaceId,
269 bool& exchangeXData);
270
283 OdRxObjectPtrArray& entitySet) const;
284
294 const OdGeMatrix3d& xfm);
295
306 virtual void saveAs(
307 OdGiWorldDraw* pWd,
308 OdDb::DwgVersion ver) const;
309
317 virtual OdResult setBody(const void* pGeometry);
318
322 virtual void* body() const;
323
324 // OdDbObject methods
325
346 OdDbDwgFiler* pFiler);
347
362 virtual void dwgOutFields(
363 OdDbDwgFiler* pFiler) const;
364
385 OdDbDxfFiler* pFiler);
386
401 virtual void dxfOutFields(
402 OdDbDxfFiler* pFiler) const;
403
412 virtual bool subWorldDraw(
413 OdGiWorldDraw* pWd) const;
414
421 virtual void subViewportDraw(
422 OdGiViewportDraw* pVd) const;
423
432 void* pClsid) const;
433
443 virtual OdDbSubentId internalSubentId(void* ent) const;
444
454 virtual void* internalSubentPtr(const OdDbSubentId& id) const;
455
465
494 OdDbEntityPtr pEntity,
495 unsigned int flags) const;
496
529 virtual OdResult booleanUnion(const OdDbSurface* pSurface, OdDbSurfacePtr& pNewSurface);
530
561 virtual OdResult booleanSubtract(const OdDbSurface* pSurface, OdDbSurfacePtr& pNewSurface);
562
593 virtual OdResult booleanSubtract(const OdDb3dSolid* pSolid, OdDbSurfacePtr& pNewSurface);
594
635 virtual OdResult booleanIntersect(const OdDbSurface* pSurface, OdDbEntityPtrArray& intersectionEntities);
636
678 virtual OdResult booleanIntersect(const OdDb3dSolid* pSolid, OdDbEntityPtrArray& intersectionEntities);
679
699 virtual OdResult imprintEntity(const OdDbEntity* pEntity);
700
719 virtual OdResult createSectionObjects(const OdGePlane& sectionPlane, OdDbEntityPtrArray& sectionObjects) const;
720
737 virtual OdResult sliceByPlane(const OdGePlane& slicePlane,
738 OdDbSurfacePtr& pNegHalfSurface,
739 OdDbSurfacePtr& pNewSurface);
740
757 virtual OdResult sliceBySurface(const OdDbSurfacePtr pSlicingSurface,
758 OdDbSurfacePtr& pNegHalfSurface,
759 OdDbSurfacePtr& pNewSurface);
760
776 virtual OdResult chamferEdges(const OdArray<OdDbSubentId *> &edgeSubentIds,
777 const OdDbSubentId& baseFaceSubentId,
778 double baseDist,
779 double otherDist);
780
796 virtual OdResult filletEdges( const OdArray<OdDbSubentId *> &edgeSubentIds,
797 const OdGeDoubleArray& radius,
798 const OdGeDoubleArray& startSetback,
799 const OdGeDoubleArray& endSetback);
800
810 virtual OdResult setSubentColor(const OdDbSubentId& subentId, const OdCmColor& color);
811
821 virtual OdResult getSubentColor(const OdDbSubentId& subentId, OdCmColor& color) const;
822
832 virtual OdResult setSubentMaterial(const OdDbSubentId& subentId, const OdDbObjectId& matId);
833
843 virtual OdResult getSubentMaterial(const OdDbSubentId& subentId, OdDbObjectId& matId) const;
844
854 virtual OdResult setSubentMaterialMapper(const OdDbSubentId& subentId, const OdGiMapper& mapper);
855
865 virtual OdResult getSubentMaterialMapper(const OdDbSubentId& subentId, OdGiMapper& mapper) const;
866
877 OdGsMarkerArray& gsMarkers) const;
878
893 OdGsMarker gsMark,
894 const OdGePoint3d& pickPoint,
895 const OdGeMatrix3d& viewXform,
896 OdDbFullSubentPathArray& subentPaths,
897 const OdDbObjectIdArray* pEntAndInsertStack = 0) const;
898
912 virtual OdResult subGetTransformedCopy(const OdGeMatrix3d& mat, OdDbEntityPtr& pCopy) const;
913
930
949
980 static OdResult trimSurface(const OdDbObjectId& blankSurfaceId,
981 const OdDbObjectIdArray& toolIds,
982 const OdDbObjectIdArray& toolCurveIds,
983 const OdGeVector3dArray& projVectors,
984 const OdGePoint3d& pickPoint,
985 const OdGeVector3d& viewVector,
986 bool bAutoExtend,
987 bool bAssociativeEnabled);
988
1012 OdResult projectOnToSurface(const OdDbEntity* pEntityToProject,
1013 const OdGeVector3d& projectionDirection,
1014 OdDbEntityPtrArray& projectedEntities) const;
1015
1028 OdResult getPerimeter(double&) const;
1029
1047 OdResult rayTest( const OdGePoint3d& rayBasePoint,
1048 const OdGeVector3d& rayDir,
1049 double rayRadius,
1050 OdArray<OdDbSubentId> & subEntIds,
1051 OdGeDoubleArray& parameters) const;
1052
1067 static OdResult createOffsetSurface ( OdDbEntity* pInputSurface,
1068 double dOffsetDistance,
1069 OdDbEntityPtr& offsetSurface);
1070
1089 static OdResult createOffsetSurface ( OdDbEntity* pInputSurface,
1090 double dOffsetDistance,
1091 bool bAssociativeEnabled,
1092 OdDbObjectId& offsetSurfaceId);
1093
1098 const OdGePoint3d& pickPt1,
1099 const OdDbObjectId& surfId2,
1100 const OdGePoint3d& pickPt2,
1101 double dRadius,
1102 OdDb::FilletTrimMode trimMode,
1103 const OdGeVector3d& projDir,
1104 OdDbSurfacePtr& filletSurface);
1105
1110 const OdGePoint3d& pickPt1,
1111 const OdDbObjectId& surfId2,
1112 const OdGePoint3d& pickPt2,
1113 double dRadius,
1114 OdDb::FilletTrimMode trimMode,
1115 const OdGeVector3d& projDir,
1116 bool bAssociativeEnabled,
1117 OdDbObjectId& filletSurfaceId);
1118
1123 const OdArray<OdDbSubentId>& edgesId,
1124 double dExtDist,
1125 EdgeExtensionType extOption,
1126 bool bAssociativeEnabled,
1127 OdDbObjectId& newExtendSurfaceId );
1128
1143 const OdArray<OdDb3dProfilePtr>& vProfiles,
1144 OdDbSurfacePtr& newSurface );
1145
1150 double dExtDist,
1151 EdgeExtensionType extOption,
1152 bool bAssociativeEnabled );
1153
1162 virtual OdResult subGetGeomExtents( OdGeExtents3d& extents) const;
1163
1189 virtual void subHandOverTo(OdDbObject* pNewObject);
1190
1195 virtual void subClose();
1196
1202 virtual OdUInt32 numChanges() const;
1203
1204 //DOM-IGNORE-BEGIN
1205 virtual void copyFrom(const OdRxObject* pSource) ODRX_OVERRIDE;
1206 //DOM-IGNORE-END
1207};
1208
1209#include "TD_PackPop.h"
1210#endif //_DBSURFACE_H_INCLUDED_
OdSmartPtr< OdDb3dSolid > OdDb3dSolidPtr
Definition Db3dSolid.h:59
OdArray< OdDbEntityPtr > OdDbEntityPtrArray
Definition DbEntity.h:56
OdSmartPtr< OdDbEntity > OdDbEntityPtr
Definition DbEntity.h:51
#define DBENT_EXPORT
Definition DbExport.h:67
OdSmartPtr< OdDbNurbSurface > OdDbNurbSurfacePtr
OdSmartPtr< OdDbObject > OdDbObjectPtr
Definition DbObject.h:1750
OdArray< OdDbFullSubentPath > OdDbFullSubentPathArray
Definition DbSubentId.h:169
OdSmartPtr< OdDbSurface > OdDbSurfacePtr
Definition DbSurface.h:57
OdArray< OdDbNurbSurfacePtr > OdDbNurbSurfacePtrArray
Definition DbSurface.h:51
OdArray< double, OdMemoryAllocator< double > > OdGeDoubleArray
OdArray< OdGeVector3d, OdMemoryAllocator< OdGeVector3d > > OdGeVector3dArray
OdArray< OdGsMarker, OdMemoryAllocator< OdGsMarker > > OdGsMarkerArray
OdArray< OdDbObjectId, OdClrMemAllocator< OdDbObjectId > > OdDbObjectIdArray
Definition IdArrays.h:53
@ kAfTypeVerAny
Definition ModelerDefs.h:80
int AfTypeVer
Definition ModelerDefs.h:29
ptrdiff_t OdGsMarker
unsigned int OdUInt32
unsigned short OdUInt16
#define ODRX_OVERRIDE
OdResult
Definition OdResult.h:29
OdArray< OdRxObjectPtr > OdRxObjectPtrArray
Definition RxObject.h:1196
OdCmColor color() const
virtual OdResult convertToRegion(OdDbEntityPtrArray &regions)
virtual void copyFrom(const OdRxObject *pSource) ODRX_OVERRIDE
virtual OdResult booleanUnion(const OdDbSurface *pSurface, OdDbSurfacePtr &pNewSurface)
static OdResult createFilletSurface(const OdDbObjectId &surfId1, const OdGePoint3d &pickPt1, const OdDbObjectId &surfId2, const OdGePoint3d &pickPt2, double dRadius, OdDb::FilletTrimMode trimMode, const OdGeVector3d &projDir, bool bAssociativeEnabled, OdDbObjectId &filletSurfaceId)
OdResult acisIn(OdStreamBuf *pStreamBuf, AfTypeVer *pTypeVer=0)
virtual OdResult subGetSubentPathsAtGsMarker(OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &viewXform, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack=0) const
static OdResult createExtendSurface(OdDbObjectId sourceSurface, const OdArray< OdDbSubentId > &edgesId, double dExtDist, EdgeExtensionType extOption, bool bAssociativeEnabled, OdDbObjectId &newExtendSurfaceId)
virtual OdResult imprintEntity(const OdDbEntity *pEntity)
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
virtual void saveAs(OdGiWorldDraw *pWd, OdDb::DwgVersion ver) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
static OdResult createOffsetSurface(OdDbEntity *pInputSurface, double dOffsetDistance, bool bAssociativeEnabled, OdDbObjectId &offsetSurfaceId)
virtual OdResult booleanIntersect(const OdDb3dSolid *pSolid, OdDbEntityPtrArray &intersectionEntities)
OdResult projectOnToSurface(const OdDbEntity *pEntityToProject, const OdGeVector3d &projectionDirection, OdDbEntityPtrArray &projectedEntities) const
virtual OdResult filletEdges(const OdArray< OdDbSubentId * > &edgeSubentIds, const OdGeDoubleArray &radius, const OdGeDoubleArray &startSetback, const OdGeDoubleArray &endSetback)
virtual void setVIsolineDensity(OdUInt16 numIsolines)
virtual OdUInt32 subSetAttributes(OdGiDrawableTraits *pTraits) const
virtual OdResult getSubentMaterial(const OdDbSubentId &subentId, OdDbObjectId &matId) const
virtual OdResult getSubentMaterialMapper(const OdDbSubentId &subentId, OdGiMapper &mapper) const
virtual void setUIsolineDensity(OdUInt16 numIsolines)
virtual OdResult getSubentColor(const OdDbSubentId &subentId, OdCmColor &color) const
virtual OdResult setSubentMaterialMapper(const OdDbSubentId &subentId, const OdGiMapper &mapper)
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm)
virtual OdResult subGetGeomExtents(OdGeExtents3d &extents) const
virtual OdResult chamferEdges(const OdArray< OdDbSubentId * > &edgeSubentIds, const OdDbSubentId &baseFaceSubentId, double baseDist, double otherDist)
static OdResult trimSurface(const OdDbObjectId &blankSurfaceId, const OdDbObjectIdArray &toolIds, const OdDbObjectIdArray &toolCurveIds, const OdGeVector3dArray &projVectors, const OdGePoint3d &pickPoint, const OdGeVector3d &viewVector, bool bAutoExtend, bool bAssociativeEnabled)
virtual OdResult getArea(double &area) const
OdResult acisOut(OdStreamBuf *pStreamBuf, AfTypeVer typeVer=kAfTypeVerAny) const
virtual OdUInt16 uIsolineDensity() const
virtual OdResult createInterferenceObjects(OdDbEntityPtrArray &interferenceObjects, OdDbEntityPtr pEntity, unsigned int flags) const
virtual OdResult setSubentMaterial(const OdDbSubentId &subentId, const OdDbObjectId &matId)
virtual OdResult convertToNurbSurface(OdDbNurbSurfacePtrArray &nurbSurfaceArray)
virtual void subViewportDraw(OdGiViewportDraw *pVd) const
virtual OdUInt32 numChanges() const
virtual void subClose()
virtual OdResult sliceBySurface(const OdDbSurfacePtr pSlicingSurface, OdDbSurfacePtr &pNegHalfSurface, OdDbSurfacePtr &pNewSurface)
virtual void subHandOverTo(OdDbObject *pNewObject)
static OdResult createOffsetSurface(OdDbEntity *pInputSurface, double dOffsetDistance, OdDbEntityPtr &offsetSurface)
virtual OdDbSubentId internalSubentId(void *ent) const
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
virtual OdResult subGetGsMarkersAtSubentPath(const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const
virtual void * body() const
OdResult getPerimeter(double &) const
void brep(OdBrBrep &brep)
OdResult rayTest(const OdGePoint3d &rayBasePoint, const OdGeVector3d &rayDir, double rayRadius, OdArray< OdDbSubentId > &subEntIds, OdGeDoubleArray &parameters) const
virtual OdResult booleanSubtract(const OdDb3dSolid *pSolid, OdDbSurfacePtr &pNewSurface)
static OdResult createNetworkSurface(const OdArray< OdDb3dProfilePtr > &uProfiles, const OdArray< OdDb3dProfilePtr > &vProfiles, OdDbSurfacePtr &newSurface)
virtual OdDbObjectPtr decomposeForSave(OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
bool getFaceMesh(GeMesh::OdGeTrMesh &mesh, OdGsMarker iFace, const wrTriangulationParams &triangulationParams) const
virtual void * internalSubentPtr(const OdDbSubentId &id) const
static OdResult createFrom(const OdDbEntity *pFromEntity, OdDbSurfacePtr &pNewSurface)
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const
virtual OdResult setSubentColor(const OdDbSubentId &subentId, const OdCmColor &color)
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const
OdResult extendEdges(OdDbFullSubentPathArray &edgesId, double dExtDist, EdgeExtensionType extOption, bool bAssociativeEnabled)
virtual OdResult booleanIntersect(const OdDbSurface *pSurface, OdDbEntityPtrArray &intersectionEntities)
virtual OdResult setBody(const void *pGeometry)
virtual OdResult createSectionObjects(const OdGePlane &sectionPlane, OdDbEntityPtrArray &sectionObjects) const
ODDB_DECLARE_MEMBERS(OdDbSurface)
virtual OdResult sliceByPlane(const OdGePlane &slicePlane, OdDbSurfacePtr &pNegHalfSurface, OdDbSurfacePtr &pNewSurface)
virtual OdUInt16 vIsolineDensity() const
bool isNull() const
virtual OdResult subGetClassID(void *pClsid) const
virtual OdResult thicken(double thickness, bool bBothSides, OdDb3dSolidPtr &pSolid) const
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
virtual OdDbEntityPtr subSubentPtr(const OdDbFullSubentPath &id) const
virtual OdResult subGetTransformedCopy(const OdGeMatrix3d &mat, OdDbEntityPtr &pCopy) const
virtual OdResult booleanSubtract(const OdDbSurface *pSurface, OdDbSurfacePtr &pNewSurface)
static OdResult createFilletSurface(const OdDbObjectId &surfId1, const OdGePoint3d &pickPt1, const OdDbObjectId &surfId2, const OdGePoint3d &pickPt2, double dRadius, OdDb::FilletTrimMode trimMode, const OdGeVector3d &projDir, OdDbSurfacePtr &filletSurface)
GLuint GLsizei GLsizei GLint GLenum * type
Definition gles2_ext.h:274
FilletTrimMode
Definition DbDatabase.h:382
DwgVersion
Definition OdaDefs.h:47