CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
DbSubDMesh.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 _OD_DB_SUBDMESH
28#define _OD_DB_SUBDMESH
29
30#include "TD_PackPush.h"
31
32#include "DbEntity.h"
33#include "DoubleArray.h"
34#include "DbSurface.h"
35#include "Db3dSolid.h"
36#include "CmEntityColorArray.h"
37
38#include "Int32Array.h"
39#include "Gi/GiGeometry.h"
40
41class OdDbSurface;
42class OdDb3dSolid;
43
51{
52public:
53 //DOM-IGNORE-BEGIN
55 //DOM-IGNORE-END
56
61
68 virtual bool subWorldDraw(
69 OdGiWorldDraw* pWd) const;
70
72
74 OdDbObjectId& replaceId,
75 bool& exchangeXData);
76
78 OdDbDwgFiler* pFiler);
79
80 virtual void dwgOutFields(
81 OdDbDwgFiler* pFiler) const;
82
84 OdDbDxfFiler* pFiler);
85
86 virtual void dxfOutFields(
87 OdDbDxfFiler* pFiler) const;
88
96 const OdGeMatrix3d& xfm);
97
105 OdGeExtents3d& extents) const;
106
115 OdRxObjectPtrArray& entitySet) const;
116
131 const OdInt32Array& faceArray,
132 OdInt32 subDLevel);
133
144 OdResult setSphere (double radius,
145 OdInt32 divAxis,
146 OdInt32 divHeight,
147 OdInt32 subDLevel);
148
162 OdResult setCylinder (double majorRadius,
163 double minorRadius,
164 double height,
165 OdInt32 divAxis,
166 OdInt32 divHeight,
167 OdInt32 divCap,
168 OdInt32 subDLevel);
169
184 OdResult setCone (double majorRadius,
185 double minorRadius,
186 double height,
187 OdInt32 divAxis,
188 OdInt32 divHeight,
189 OdInt32 divCap,
190 double radiusRatio,
191 OdInt32 subDLevel);
192
205 OdResult setTorus (double majorRadius,
206 OdInt32 divSection,
207 OdInt32 divSweepPath,
208 double sectionRadiusRatio,
209 double sectionRotate,
210 OdInt32 subDLevel);
211
225 OdResult setBox (double xLen,
226 double yLen,
227 double zLen,
228 OdInt32 divX,
229 OdInt32 divY,
230 OdInt32 divZ,
231 OdInt32 subDLevel);
232
248 OdResult setWedge (double xLen,
249 double yLen,
250 double zLen,
251 OdInt32 divLength,
252 OdInt32 divWidth,
253 OdInt32 divHeight,
254 OdInt32 divSlope,
255 OdInt32 divCap,
256 OdInt32 subDLevel);
257
272 OdResult setPyramid (double radius,
273 double height,
274 OdInt32 divLength,
275 OdInt32 divHeight,
276 OdInt32 divCap,
277 OdInt32 nSides,
278 double radiusRatio,
279 OdInt32 subDLevel);
280
299 const OdGeVector3d &rayDir,
300 OdArray<OdDbSubentId> &retSubents,
301 OdArray<double> &retIntersectDist,
302 OdGePoint3dArray& retIntersectPoint) const;
303
311
319
328
340
348 OdResult subdLevel (OdInt32& result) const;
349
361 OdResult splitFace (const OdDbSubentId& subentFaceId,
362 const OdDbSubentId& subent0,
363 const OdGePoint3d& point0,
364 const OdDbSubentId& subent1,
365 const OdGePoint3d& point1);
366
378 double length,
379 const OdGeVector3d& dir,
380 double taper);
381
392 const OdGePoint3dArray& alongPath,
393 double taper);
394
407 double length,
408 const OdGeVector3d& dir,
409 double taper);
410
418
426 OdResult isWatertight (bool& result) const;
427
435 OdResult numOfFaces (OdInt32& result) const;
436
445
455
464
473
481 OdResult numOfEdges (OdInt32& result) const;
482
491
500
509
522
523 //FELIX_CHANGE_BEGIN
525 //FELIX_CHANGE_END
526 //FELIX_CHANGE_BEGIN
528 OdInt32Array& edgeArray,
529 OdInt32Array& faceArray ) const;
531 OdInt32Array& edgeArray,
532 OdInt32Array& faceArray,
533 OdGeDoubleArray& newCreases,
534 OdUInt32Array& edgeData ) const;
535 //FELIX_CHANGE_END
544
553
568
577 OdResult getVertexAt (OdInt32 nIndex, OdGePoint3d& vertex) const;
578
587 OdResult setVertexAt (OdInt32 nIndex, const OdGePoint3d& vertex);
588
597 OdResult getVertexAt (const OdDbSubentId& id, OdGePoint3d& vertex) const;
598
607 OdResult setVertexAt (const OdDbSubentId& id, const OdGePoint3d& vertex);
608
618
628
644 OdResult setCrease (double creaseVal);
645
662 OdResult setCrease (const OdDbFullSubentPathArray& subentPaths, double creaseVal);
663
672 OdResult getCrease (const OdDbFullSubentPathArray& subentPaths, OdDoubleArray& result) const;
673
682 OdResult getCrease (const OdDbSubentId& id, double& result) const;
683
695 OdDbFullSubentPathArray& subentPaths) const;
696
708 OdDbFullSubentPathArray& subentPaths) const;
709
730 OdResult convertToSurface (bool bConvertAsSmooth, const OdDbSubentId& id, OdDbSurfacePtr& pSurface) const;
731
752 OdResult convertToSurface (bool bConvertAsSmooth, bool optimize, OdDbSurfacePtr& pSurface) const;
753
775 OdResult convertToSolid (bool bConvertAsSmooth, bool optimize, OdDb3dSolidPtr& pSolid) const;
776
786
796
806
816
826
836
845 OdResult getFacePlane (const OdDbSubentId& id, OdGePlane& facePlane) const;
846
854 OdResult computeVolume (double &retVolume) const;
855
863 OdResult computeSurfaceArea (double &retSurfArea) const;
864
873
882
891
900
909
918
926
934
942
956 OdGsMarker gsMarker,
957 const OdGePoint3d& pickPoint,
958 const OdGeMatrix3d& xrm,
959 OdDbFullSubentPathArray& subentPaths,
960 const OdDbObjectIdArray* pEntAndInsertStack ) const;
961
971 OdGsMarkerArray& gsMarkers) const;
972};
973
979
986{
1007
1012 : faceterDevSurface(0.)
1013 , faceterDevNormal(0.)
1014 , faceterGridRatio(0.)
1016 , faceterMaxGrid(0)
1017 , faceterMinUGrid(0)
1018 , faceterMinVGrid(0)
1019 , faceterMeshType(0) {}
1020};
1021
1023
1059 const OdDbFaceterSettings *faceter,
1060 OdGePoint3dArray& vertexArray,
1061 OdInt32Array& faceArray,
1062 OdGiFaceData*& faceData);
1063
1064
1065#include "TD_PackPop.h"
1066
1067#endif
#define DBENT_EXPORT
Definition: DbExport.h:67
OdSmartPtr< OdDbSubDMesh > OdDbSubDMeshPtr
Definition: DbSubDMesh.h:978
DBENT_EXPORT OdResult oddbGetObjectMesh(OdDbObject *pObj, const OdDbFaceterSettings *faceter, OdGePoint3dArray &vertexArray, OdInt32Array &faceArray, OdGiFaceData *&faceData)
ptrdiff_t OdGsMarker
unsigned int OdUInt32
short OdInt16
unsigned short OdUInt16
int OdInt32
OdResult
Definition: OdResult.h:29
OdResult getSubentPath(OdInt32 nIndex, OdDb::SubentType type, OdDbFullSubentPathArray &subentPaths) const
OdResult setSphere(double radius, OdInt32 divAxis, OdInt32 divHeight, OdInt32 subDLevel)
OdResult getSubDividedVertices(OdGePoint3dArray &vertexArray) const
OdResult subGetSubentPathsAtGsMarker(OdDb::SubentType type, OdGsMarker gsMarker, const OdGePoint3d &pickPoint, const OdGeMatrix3d &xrm, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack) const
OdResult getCrease(const OdDbSubentId &id, double &result) const
OdResult setVertexAt(const OdDbSubentId &id, const OdGePoint3d &vertex)
OdResult getSubDividedNormalArray(OdGeVector3dArray &normalArray) const
OdResult getVertices(OdGePoint3dArray &vertexArray) const
OdResult numOfEdges(OdInt32 &result) const
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm)
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const
OdResult getSubDividedEdgeArray(OdInt32Array &edgeArray) const
OdResult numOfFaces(OdInt32 &result) const
OdResult subdRefine()
OdResult setSubDMesh(const OdGePoint3dArray &vertexArray, const OdInt32Array &faceArray, OdInt32 subDLevel)
OdResult getSubentMaterial(const OdDbSubentId &id, OdDbObjectId &material) const
OdResult getSubDividedVertexAt(OdInt32 nIndex, OdGePoint3d &vertex) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
OdResult getVertexColorArray(OdCmEntityColorArray &arrColor)
OdResult clearVertexTextureArray()
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const
OdResult setCrease(double creaseVal)
OdResult extrudeFaces(const OdDbFullSubentPathArray &subentPaths, double length, const OdGeVector3d &dir, double taper)
OdResult clearVertexNormalArray()
OdResult setCrease(const OdDbFullSubentPathArray &subentPaths, double creaseVal)
OdResult getVertexAt(OdInt32 nIndex, OdGePoint3d &vertex) const
OdResult splitFace(const OdDbSubentId &subentFaceId, const OdDbSubentId &subent0, const OdGePoint3d &point0, const OdDbSubentId &subent1, const OdGePoint3d &point1)
OdResult subdDivideDown()
OdResult getSubentColor(const OdDbSubentId &id, OdCmColor &color) const
OdResult numOfVertices(OdInt32 &result) const
OdResult getVertexNormalArray(OdGeVector3dArray &arrNorm)
OdResult setVertexTextureArray(OdGePoint3dArray &arrPts)
OdResult getEdgeArray(OdInt32Array &edgeArray) const
OdResult negate()
OdResult getAdjacentSubentPath(const OdDbFullSubentPath &path, OdDb::SubentType type, OdDbFullSubentPathArray &subentPaths) const
OdResult setPyramid(double radius, double height, OdInt32 divLength, OdInt32 divHeight, OdInt32 divCap, OdInt32 nSides, double radiusRatio, OdInt32 subDLevel)
OdResult extrudeFaces(const OdDbFullSubentPathArray &subentPaths, const OdGePoint3dArray &alongPath, double taper)
OdResult setSubentMaterial(const OdDbSubentId &id, const OdDbObjectId &material)
OdResult getNormalArray(OdGeVector3dArray &normalArray) const
OdResult setVertexAt(OdInt32 nIndex, const OdGePoint3d &vertex)
OdResult getVertexAt(const OdDbSubentId &id, OdGePoint3d &vertex) const
OdResult getFaceArray(OdInt32Array &faceArray) const
OdResult setVertexNormalArray(OdGeVector3dArray &arrNorm)
OdResult setCone(double majorRadius, double minorRadius, double height, OdInt32 divAxis, OdInt32 divHeight, OdInt32 divCap, double radiusRatio, OdInt32 subDLevel)
OdResult convertToSurface(bool bConvertAsSmooth, bool optimize, OdDbSurfacePtr &pSurface) const
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
OdResult getSubentMaterialMapper(const OdDbSubentId &id, OdGiMapper &mapper) const
OdResult convertToSurface(bool bConvertAsSmooth, const OdDbSubentId &id, OdDbSurfacePtr &pSurface) const
OdResult setBox(double xLen, double yLen, double zLen, OdInt32 divX, OdInt32 divY, OdInt32 divZ, OdInt32 subDLevel)
OdResult setSubentColor(const OdDbSubentId &id, const OdCmColor &color)
OdResult setVertexColorArray(OdCmEntityColorArray &arrColor)
OdResult numOfSubDividedFacesAt(const OdDbFullSubentPathArray &subentPaths, OdInt32 &result) const
OdResult numOfSubDividedVertices(OdInt32 &result) const
OdResult setTorus(double majorRadius, OdInt32 divSection, OdInt32 divSweepPath, double sectionRadiusRatio, double sectionRotate, OdInt32 subDLevel)
OdResult subGetGsMarkersAtSubentPath(const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const
OdResult computeRayIntersection(const OdGePoint3d &rayStart, const OdGeVector3d &rayDir, OdArray< OdDbSubentId > &retSubents, OdArray< double > &retIntersectDist, OdGePoint3dArray &retIntersectPoint) const
OdResult getCrease(const OdDbFullSubentPathArray &subentPaths, OdDoubleArray &result) const
OdResult setCylinder(double majorRadius, double minorRadius, double height, OdInt32 divAxis, OdInt32 divHeight, OdInt32 divCap, OdInt32 subDLevel)
OdResult setSubentMaterialMapper(const OdDbSubentId &id, const OdGiMapper &mapper)
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
OdResult subdDivideUp()
virtual OdResult subGetGeomExtents(OdGeExtents3d &extents) const
OdResult computeSurfaceArea(double &retSurfArea) const
OdResult getSubDividedFaceArray(OdInt32Array &faceArray) const
virtual OdDbObjectPtr decomposeForSave(OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
OdResult getSubDividedVertexAt(const OdDbSubentId &id, OdGePoint3d &vertex) const
OdResult setWedge(double xLen, double yLen, double zLen, OdInt32 divLength, OdInt32 divWidth, OdInt32 divHeight, OdInt32 divSlope, OdInt32 divCap, OdInt32 subDLevel)
ODDB_DECLARE_MEMBERS(OdDbSubDMesh)
OdResult getVertexTextureArray(OdGePoint3dArray &arrPts)
OdResult getFacePlane(const OdDbSubentId &id, OdGePlane &facePlane) const
OdResult computeVolume(double &retVolume) const
OdResult isWatertight(bool &result) const
OdResult convertToSolid(bool bConvertAsSmooth, bool optimize, OdDb3dSolidPtr &pSolid) const
OdResult getSubDividedData(OdGePoint3dArray &vertexArray, OdInt32Array &edgeArray, OdInt32Array &faceArray) const
OdResult subdRefine(const OdDbFullSubentPathArray &subentPaths)
OdResult extrudeConnectedFaces(const OdDbFullSubentPathArray &subentPaths, double length, const OdGeVector3d &dir, double taper)
OdResult numOfSubDividedFaces(OdInt32 &result) const
virtual OdUInt32 subSetAttributes(OdGiDrawableTraits *pTraits) const
OdResult getSubDividedData(OdGePoint3dArray &vertexArray, OdInt32Array &edgeArray, OdInt32Array &faceArray, OdGeDoubleArray &newCreases, OdUInt32Array &edgeData) const
OdResult subdLevel(OdInt32 &result) const
OdResult clearVertexColorArray()
GLuint GLsizei GLsizei GLint GLenum * type
Definition: gles2_ext.h:274
GLuint GLsizei GLsizei * length
Definition: gles2_ext.h:274
GLint GLenum GLsizei GLsizei height
Definition: gles2_ext.h:110
DwgVersion
Definition: OdaDefs.h:47
OdUInt16 faceterMinVGrid
Definition: DbSubDMesh.h:1000
OdUInt16 faceterMaxGrid
Definition: DbSubDMesh.h:996
OdUInt16 faceterMinUGrid
Definition: DbSubDMesh.h:998
double faceterMaxEdgeLength
Definition: DbSubDMesh.h:994
double faceterDevSurface
Definition: DbSubDMesh.h:988