CFx SDK Documentation  2020SP3
GiGeometry.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, 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 Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 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 #ifndef __ODGIGEOMETRY_H__
25 #define __ODGIGEOMETRY_H__
26 
27 #include "TD_PackPush.h"
28 #include "RxObject.h"
29 
30 #include "Ge/GePoint3d.h"
31 #include "Ge/GeMatrix3d.h"
32 
33 #include "Gi/GiRasterImage.h"
34 #include "Gi/GiMaterial.h"
35 
36 class OdDbStub;
37 class OdCmEntityColor;
38 class OdGeMatrix3d;
39 class OdGeVector3d;
40 class OdGePoint2d;
41 class OdGeCurve2d;
42 class OdGiPathNode;
43 class OdGiMapper;
44 class OdCmTransparency;
45 class OdGiImageBGRA32;
46 
48 
67 {
68  const OdUInt16* m_pColors;
69  const OdCmEntityColor* m_pTrueColors;
70  OdDbStub** m_pLayerIds;
71  OdDbStub** m_pLinetypeIds;
72  const OdGsMarker* m_pSelectionMarkers;
73  const OdUInt8* m_pVisibilities;
74 public:
76  : m_pColors(NULL)
77  , m_pTrueColors(NULL)
78  , m_pLayerIds(NULL)
79  , m_pLinetypeIds(NULL)
80  , m_pSelectionMarkers(NULL)
81  , m_pVisibilities(NULL)
82  {}
83 
95  void setColors(
96  const OdUInt16 *colors) { m_pColors = colors; }
97 
110  const OdCmEntityColor *colors) { m_pTrueColors = colors; }
111 
121  void setLayers(
122  OdDbStub* *layerIds) { m_pLayerIds = layerIds; }
123 
134  OdDbStub* *linetypeIds) { m_pLinetypeIds = linetypeIds; }
135 
146  const OdGsMarker* selectionMarkers) { m_pSelectionMarkers = selectionMarkers; }
147 
168  const OdUInt8* visibilities) { m_pVisibilities = visibilities; }
169 
177  const OdUInt16* colors() const { return m_pColors; }
178 
186  const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
187 
195  OdDbStub** layerIds() const { return m_pLayerIds; }
196 
204  OdDbStub** linetypeIds() const { return m_pLinetypeIds; }
205 
213  const OdGsMarker* selectionMarkers() const { return m_pSelectionMarkers; }
214 
232  const OdUInt8* visibility() const { return m_pVisibilities; }
233 };
234 
235 
245 {
246  const OdUInt16* m_pColors;
247  const OdCmEntityColor* m_pTrueColors;
248  OdDbStub** m_pLayerIds;
249  const OdGsMarker* m_pSelectionMarkers;
250  const OdUInt8* m_pVisibilities;
251  const OdGeVector3d* m_pNormals;
252  OdDbStub** m_pMaterialIds;
253  const OdGiMapper* m_pMappers;
254  const OdCmTransparency* m_pTransparency;
255  const OdGePoint2d* m_pFillOrigins;
256  const OdGeVector2d* m_pFillDirections;
257 public:
259  : m_pColors(NULL)
260  , m_pTrueColors(NULL)
261  , m_pLayerIds(NULL)
262  , m_pSelectionMarkers(NULL)
263  , m_pVisibilities(NULL)
264  , m_pNormals(NULL)
265  , m_pMaterialIds(NULL)
266  , m_pMappers(NULL)
267  , m_pTransparency(NULL)
268  , m_pFillOrigins(NULL)
269  , m_pFillDirections(NULL)
270  {}
271 
283  void setColors(
284  const OdUInt16 *colors) { m_pColors = colors; }
285 
298  const OdCmEntityColor *colors) { m_pTrueColors = colors; }
299 
309  void setLayers(
310  OdDbStub* *layerIds) { m_pLayerIds = layerIds; }
311 
322  const OdGsMarker* selectionMarkers) { m_pSelectionMarkers = selectionMarkers; }
323 
334  const OdGeVector3d* normals) { m_pNormals = normals; }
335 
355  const OdUInt8* visibilities) { m_pVisibilities = visibilities; }
356 
367  OdDbStub* *materialIds) { m_pMaterialIds = materialIds; }
368 
379  const OdGiMapper* mappers) { m_pMappers = mappers; }
380 
390  const OdCmTransparency *transparencies) { m_pTransparency = transparencies; }
391 
402  const OdGePoint2d* fillOrigins) { m_pFillOrigins = fillOrigins; }
403 
414  const OdGeVector2d* fillDirections) { m_pFillDirections = fillDirections; }
415 
423  const OdUInt16* colors() const { return m_pColors; }
424 
432  const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
433 
441  OdDbStub** layerIds() const { return m_pLayerIds; }
442 
450  const OdGsMarker* selectionMarkers() const { return m_pSelectionMarkers; }
451 
459  const OdGeVector3d* normals() const { return m_pNormals; }
460 
477  const OdUInt8* visibility() const { return m_pVisibilities; }
478 
486  OdDbStub** materials() const { return m_pMaterialIds; }
487 
495  const OdGiMapper* mappers() const { return m_pMappers; }
496 
504  const OdCmTransparency* transparency() const { return m_pTransparency; }
505 
513  const OdGePoint2d* fillOrigins() const { return m_pFillOrigins; }
514 
522  const OdGeVector2d* fillDirections() const { return m_pFillDirections; }
523 };
524 
525 typedef enum
526 {
529  kOdGiClockwise = 1
531 
532 
549 {
550  const OdGeVector3d* m_pNormals;
551  OdGiOrientationType m_orientationFlag;
552  const OdCmEntityColor* m_pTrueColors;
553  const OdGePoint3d* m_pMappingCoords;
554 public:
556  : m_pNormals(NULL)
557  , m_orientationFlag(kOdGiNoOrientation)
558  , m_pTrueColors(NULL)
559  , m_pMappingCoords(NULL)
560  {}
561 
562  enum MapChannel { kAllChannels = 0 };
563 
574  const OdGeVector3d* normals) { m_pNormals = normals; }
575 
594  const OdGiOrientationType orientationType) { m_orientationFlag = orientationType; }
595 
606  const OdCmEntityColor *colors) { m_pTrueColors = colors; }
607 
619  MapChannel channel,
620  const OdGePoint3d *coords) { ODA_ASSERT(channel == kAllChannels); m_pMappingCoords = coords; }
621 
629  const OdGeVector3d* normals() const { return m_pNormals; }
630 
644  OdGiOrientationType orientationFlag() const { return m_orientationFlag; }
645 
653  const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
654 
664  const OdGePoint3d* mappingCoords(MapChannel channel) const { ODA_ASSERT(channel == kAllChannels); return m_pMappingCoords; }
665 };
666 
667 class OdGiDrawable;
668 struct OdGiClipBoundary;
670 
671 class OdDbPolyline;
672 class OdPolyPolygon3d;
673 class OdGeNurbCurve3d;
674 class OdGiTextStyle;
675 class OdDbBody;
676 class OdGeEllipArc3d;
677 class OdGiPolyline;
678 
682 typedef enum
683 {
684  kOdGiArcSimple = 0, // Unfilled.
685  kOdGiArcSector = 1, // Filled area bounded by the arc and its center.
686  kOdGiArcChord = 2 // Filled area bounded by the arc and its end points
688 
698 {
699 public:
701 
712 
720 
735  virtual void pushModelTransform(
736  const OdGeVector3d& normal) = 0;
737 
750  virtual void pushModelTransform(
751  const OdGeMatrix3d& xfm) = 0;
752 
756  virtual void popModelTransform() = 0;
757 
771  virtual void circle(
772  const OdGePoint3d& center,
773  double radius,
774  const OdGeVector3d& normal) = 0;
775 
783  virtual void circle(
784  const OdGePoint3d& firstPoint,
785  const OdGePoint3d& secondPoint,
786  const OdGePoint3d& thirdPoint) = 0;
787 
816  virtual void circularArc(
817  const OdGePoint3d& center,
818  double radius,
819  const OdGeVector3d& normal,
820  const OdGeVector3d& startVector,
821  double sweepAngle,
822  OdGiArcType arcType = kOdGiArcSimple) = 0;
823 
832  virtual void circularArc(
833  const OdGePoint3d& firstPoint,
834  const OdGePoint3d& secondPoint,
835  const OdGePoint3d& thirdPoint,
836  OdGiArcType arcType = kOdGiArcSimple) = 0;
837 
855  virtual void polyline(
856  OdInt32 numVertices,
857  const OdGePoint3d* vertexList,
858  const OdGeVector3d* pNormal = 0,
859  OdGsMarker baseSubEntMarker = -1) = 0;
860 
874  virtual void polygon(
875  OdInt32 numVertices,
876  const OdGePoint3d* vertexList) = 0;
877 
892  virtual void polygon(
893  OdInt32 numVertices,
894  const OdGePoint3d* vertexList,
895  const OdGeVector3d* pNormal);
896 
912  virtual void pline(
913  const OdGiPolyline& polyline,
914  OdUInt32 fromIndex = 0,
915  OdUInt32 numSegs = 0) = 0;
916 
939  virtual void mesh(
940  OdInt32 numRows,
941  OdInt32 numColumns,
942  const OdGePoint3d* vertexList,
943  const OdGiEdgeData* pEdgeData = 0,
944  const OdGiFaceData* pFaceData = 0,
945  const OdGiVertexData* pVertexData = 0) = 0;
946 
973  virtual void shell(
974  OdInt32 numVertices,
975  const OdGePoint3d* vertexList,
976  OdInt32 faceListSize,
977  const OdInt32* faceList,
978  const OdGiEdgeData* pEdgeData = 0,
979  const OdGiFaceData* pFaceData = 0,
980  const OdGiVertexData* pVertexData = 0) = 0;
981 
1004  virtual void text(
1005  const OdGePoint3d& position,
1006  const OdGeVector3d& normal,
1007  const OdGeVector3d& direction,
1008  double height,
1009  double width,
1010  double oblique,
1011  const OdString& msg) = 0;
1012 
1024  virtual void text(
1025  const OdGePoint3d& position,
1026  const OdGeVector3d& normal,
1027  const OdGeVector3d& direction,
1028  const OdChar* msg,
1029  OdInt32 length,
1030  bool raw,
1031  const OdGiTextStyle* pTextStyle) = 0;
1032 
1044  virtual void xline(
1045  const OdGePoint3d& firstPoint,
1046  const OdGePoint3d& secondPoint) = 0;
1047 
1060  virtual void ray(
1061  const OdGePoint3d& basePoint,
1062  const OdGePoint3d& throughPoint) = 0;
1063 
1072  virtual void nurbs(
1073  const OdGeNurbCurve3d& nurbsCurve) = 0;
1074 
1092  virtual void ellipArc(
1093  const OdGeEllipArc3d& ellipArc,
1094  const OdGePoint3d* endPointsOverrides = 0,
1095  OdGiArcType arcType = kOdGiArcSimple) = 0;
1096 
1108  virtual void draw(
1109  const OdGiDrawable* pDrawable) = 0;
1110 
1119  virtual void pushClipBoundary(
1120  OdGiClipBoundary* pBoundary) = 0;
1121 
1125  virtual void popClipBoundary() = 0;
1126 
1135  virtual void worldLine(
1136  const OdGePoint3d points[2]) = 0;
1137 
1147  virtual void image(
1148  const OdGiImageBGRA32& img,
1149  const OdGePoint3d& origin,
1150  const OdGeVector3d& uVec,
1151  const OdGeVector3d& vVec,
1153 
1159  virtual void edge(
1160  const OdGiEdge2dArray& edges) = 0;
1161 
1165  virtual const OdGiPathNode* currentGiPath() const;
1166 
1176  virtual void pushClipBoundary(
1177  OdGiClipBoundary* pBoundary, OdGiAbstractClipBoundary* pClipInfo);
1178 
1195  virtual void polypoint(
1196  OdInt32 numPoints,
1197  const OdGePoint3d* vertexList,
1198  const OdCmEntityColor* pColors,
1199  const OdCmTransparency* pTransparency,
1200  const OdGeVector3d* pNormals = NULL,
1201  const OdGsMarker* pSubEntMarkers = NULL,
1202  OdInt32 nPointSize = 0);
1203 
1218  ODRX_SEALED_VIRTUAL void polypoint(
1219  OdInt32 numPoints,
1220  const OdGePoint3d* vertexList,
1221  const OdCmEntityColor* pColors,
1222  const OdGeVector3d* pNormals = NULL,
1223  const OdGsMarker* pSubEntMarkers = NULL) ODRX_SEALED;
1224 
1238  ODRX_SEALED_VIRTUAL void polypoint(
1239  OdInt32 numPoints,
1240  const OdGePoint3d* vertexList,
1241  const OdGeVector3d* pNormals = NULL,
1242  const OdGsMarker* pSubEntMarkers = NULL) ODRX_SEALED;
1243 
1254  virtual void rowOfDots(
1255  OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
1256 };
1257 
1259 {
1260  return 0;
1261 }
1262 
1264 {
1265  // Some implementations could not support additional clipping styles, so redirect to old style clipping method by default.
1266  pushClipBoundary(pBoundary);
1267 }
1268 
1269 inline void OdGiGeometry::polygon(OdInt32 numVertices, const OdGePoint3d* vertexList, const OdGeVector3d* pNormal)
1270 {
1271  polygon(numVertices, vertexList);
1272 }
1273 
1274 inline void OdGiGeometry::polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* /*pColors*/,
1275  const OdCmTransparency* /*pTransparency*/, const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers,
1276  OdInt32 /*nPointSize*/)
1277 {
1278  OdGePoint3d tmpVerts[2];
1279  for (OdInt32 nPoint = 0; nPoint < numPoints; nPoint++)
1280  {
1281  const OdGeVector3d *pNormal = (pNormals) ? (pNormals + nPoint) : NULL;
1282  const OdGsMarker baseSubEntMarker = (pSubEntMarkers) ? pSubEntMarkers[nPoint] : -1;
1283  tmpVerts[1] = tmpVerts[0] = vertexList[nPoint];
1284  polyline(2, tmpVerts, pNormal, baseSubEntMarker);
1285  }
1286 }
1287 
1288 inline void OdGiGeometry::polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors,
1289  const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers)
1290 {
1291  polypoint(numPoints, vertexList, pColors, NULL, pNormals, pSubEntMarkers);
1292 }
1293 
1294 inline void OdGiGeometry::polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList,
1295  const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers)
1296 {
1297  polypoint(numPoints, vertexList, NULL, pNormals, pSubEntMarkers);
1298 }
1299 
1300 inline void OdGiGeometry::rowOfDots(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint)
1301 {
1302  OdGePoint3d tmpVerts[2];
1303  for (OdInt32 nPoint = 0; nPoint < numPoints; nPoint++)
1304  {
1305  tmpVerts[1] = tmpVerts[0] = startPoint + dirToNextPoint * double(nPoint);
1306  polyline(2, tmpVerts);
1307  }
1308 }
1309 
1320 {
1321  bool m_bSave;
1322  OdGiGeometry& m_geom;
1323 public:
1324  OdGiClipBoundarySaver(OdGiGeometry& geom, bool bSave) : m_bSave(bSave), m_geom(geom){}
1325  void setSave(bool bSave){m_bSave = bSave;}
1327  {
1328  if (m_bSave)
1329  m_geom.popClipBoundary();
1330  }
1331 };
1332 
1343 {
1344  OdGiGeometry& m_geom;
1345 public:
1346  OdGiModelTransformSaver(OdGiGeometry& geom, const OdGeMatrix3d& xMat) : m_geom(geom)
1347  {
1348  m_geom.pushModelTransform(xMat);
1349  }
1351  {
1352  m_geom.popModelTransform();
1353  }
1354 };
1355 
1356 /* #11298 info: Matrix identity check was removed from OdGiModelTransformSaver and place into separate OdGiModelTransformSaverOpt class.
1357  Identity check is also time consuming operation and it is only makes things worse if matrices become identity seldom in
1358  some case. Following statistics on 10 typical drawing was collected on 18.10.2012:
1359 
1360  Source File : Line Identity=true Identity=false % of identity=true
1361 ..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNode.cpp : 1263 3202 60838 5%
1362 ..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNodeImpl.cpp : 707 2 64364 0.003%
1363 ..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNodeImpl.cpp : 868 3 62 4.6%
1364 ..\..\..\..\..\TD\Source\database\Entities\DbBlockReference.cpp : 1101 25 64905 0.038%
1365 ..\..\..\..\..\TD\Source\database\Entities\DbDimension.cpp : 1307 12546 16 99.87%
1366 ..\..\..\..\..\TD\Source\database\Entities\DbHatchRender.cpp : 714 38566 0 100%
1367 ..\..\..\..\..\TD\Source\database\Entities\DbMInsertBlock.cpp : 322 1603 30457 5%
1368 ..\..\..\..\..\TD\Source\database\Entities\DbModelerGeometryImpl.cpp : 1410 8 0 100%
1369 ..\..\..\..\..\TD\Source\database\Entities\DbModelerGeometryImpl.cpp : 1545 6 0 100%
1370 ..\..\..\..\..\TD\Source\database\Entities\DbPoint.cpp : 264 0 208 0%
1371 ..\..\..\..\TD\Source\database\GiDefaultContext.cpp : 454 4405 0 100%
1372 ..\..\..\..\TD\Source\database\GiDefaultContext.cpp : 557 124 23626 0.522%
1373 
1374 All places where percents of identity=true < 10% will use OdGiModelTransformSaver. Places where Identity=true very frequent will use
1375 OdGiModelTransformSaverOpt. Unchecked places isn't principle since them are called very seldom. */
1376 
1387 {
1388  OdGiGeometry& m_geom;
1389  bool m_bIdentity;
1390 public:
1391  OdGiModelTransformSaverOpt(OdGiGeometry& geom, const OdGeMatrix3d& xMat) : m_geom(geom)
1392  {
1393  // @@@TODO: check, probably simple memcmp will be more effective here. memcmp is very assembler-optimized in modern crt's. Identity
1394  // matrix could be inexact only after some multiplications and etc. But statistics must be collected first for isEqual check
1395  // and for memcmp, if it will be faster and precisely enough isEqualTo check with tolerance can be exchanged by memcmp.
1396  m_bIdentity = xMat.isEqualTo(OdGeMatrix3d::kIdentity);
1397  if (!m_bIdentity)
1398  m_geom.pushModelTransform(xMat);
1399  }
1401  {
1402  if (!m_bIdentity)
1403  m_geom.popModelTransform();
1404  }
1405 };
1406 
1407 #include "TD_PackPop.h"
1408 
1409 #endif
FIRSTDLL_EXPORT
#define FIRSTDLL_EXPORT
Definition: RootExport.h:39
OdCmEntityColor
Definition: CmColorBase.h:68
OdGiFaceData::materials
OdDbStub ** materials() const
Definition: GiGeometry.h:486
OdGiEdgeData::OdGiEdgeData
OdGiEdgeData()
Definition: GiGeometry.h:75
OdGeVector3d
Definition: GeVector3d.h:54
kOdGiArcSimple
@ kOdGiArcSimple
Definition: GiGeometry.h:684
OdString
Definition: OdString.h:95
NULL
#define NULL
Definition: GsProperties.h:177
OdGiClipBoundarySaver
Definition: GiGeometry.h:1320
OdGiGeometry::text
virtual void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, double height, double width, double oblique, const OdString &msg)=0
GiRasterImage.h
OdGiFaceData::OdGiFaceData
OdGiFaceData()
Definition: GiGeometry.h:258
OdUInt8
unsigned char OdUInt8
Definition: OdPlatformSettings.h:759
OdGiGeometry::ray
virtual void ray(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)=0
OdGiGeometry::worldLine
virtual void worldLine(const OdGePoint3d points[2])=0
OdGiVertexData::kAllChannels
@ kAllChannels
Definition: GiGeometry.h:562
OdGeMatrix3d::isEqualTo
bool isEqualTo(const OdGeMatrix3d &matrix, const OdGeTol &tol=OdGeContext::gTol) const
OdGiFaceData::setVisibility
void setVisibility(const OdUInt8 *visibilities)
Definition: GiGeometry.h:354
OdGiFaceData::selectionMarkers
const OdGsMarker * selectionMarkers() const
Definition: GiGeometry.h:450
OdGiGeometry::pushModelTransform
virtual void pushModelTransform(const OdGeMatrix3d &xfm)=0
OdCmTransparency
Definition: CmColorBase.h:1617
OdGiGeometry::circle
virtual void circle(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint)=0
OdDbPolyline
Definition: DbPolyline.h:63
OdGiFaceData::layerIds
OdDbStub ** layerIds() const
Definition: GiGeometry.h:441
OdRxObject
Definition: RxObject.h:564
OdGiFaceData::setMappers
void setMappers(const OdGiMapper *mappers)
Definition: GiGeometry.h:378
OdGeCurve2d
Definition: GeCurve2d.h:53
OdGiGeometry::currentGiPath
virtual const OdGiPathNode * currentGiPath() const
Definition: GiGeometry.h:1258
OdGiGeometry::text
virtual void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle)=0
OdGiClipBoundarySaver::setSave
void setSave(bool bSave)
Definition: GiGeometry.h:1325
OdGiVertexData
Definition: GiGeometry.h:549
OdGiGeometry::popModelTransform
virtual void popModelTransform()=0
OdGiVertexData::MapChannel
MapChannel
Definition: GiGeometry.h:562
OdGiPolyline
Definition: GiPolyline.h:49
OdArray
Definition: OdArray.h:591
TD_PackPop.h
OdGiGeometry::ODRX_DECLARE_MEMBERS
ODRX_DECLARE_MEMBERS(OdGiGeometry)
OdGiOrientationType
OdGiOrientationType
Definition: GiGeometry.h:526
OdGiFaceData::setTrueColors
void setTrueColors(const OdCmEntityColor *colors)
Definition: GiGeometry.h:297
OdGiGeometry::polypoint
virtual void polypoint(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors, const OdCmTransparency *pTransparency, const OdGeVector3d *pNormals=NULL, const OdGsMarker *pSubEntMarkers=NULL, OdInt32 nPointSize=0)
Definition: GiGeometry.h:1274
OdGsMarker
ptrdiff_t OdGsMarker
Definition: OdPlatformSettings.h:889
OdGiGeometry::pline
virtual void pline(const OdGiPolyline &polyline, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)=0
OdGiClipBoundarySaver::~OdGiClipBoundarySaver
~OdGiClipBoundarySaver()
Definition: GiGeometry.h:1326
OdUInt16
unsigned short OdUInt16
Definition: OdPlatformSettings.h:760
OdGiFaceData::colors
const OdUInt16 * colors() const
Definition: GiGeometry.h:423
OdGiEdgeData::setLayers
void setLayers(OdDbStub **layerIds)
Definition: GiGeometry.h:121
OdGiClipBoundarySaver::OdGiClipBoundarySaver
OdGiClipBoundarySaver(OdGiGeometry &geom, bool bSave)
Definition: GiGeometry.h:1324
RxObject.h
OdUInt32
unsigned int OdUInt32
Definition: OdPlatformSettings.h:783
OdGeMatrix3d
Definition: GeMatrix3d.h:73
OdGiFaceData::normals
const OdGeVector3d * normals() const
Definition: GiGeometry.h:459
OdGiFaceData::setMaterials
void setMaterials(OdDbStub **materialIds)
Definition: GiGeometry.h:366
OdGiModelTransformSaver
Definition: GiGeometry.h:1343
ODRX_SEALED
#define ODRX_SEALED
Definition: OdPlatformSettings.h:118
OdGiClipBoundary
Definition: GiClipBoundary.h:41
kOdGiArcChord
@ kOdGiArcChord
Definition: GiGeometry.h:686
OdGiEdgeData::trueColors
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:186
OdGiRasterImage::kTransparency8Bit
@ kTransparency8Bit
Definition: GiRasterImage.h:86
kOdGiCounterClockwise
@ kOdGiCounterClockwise
Definition: GiGeometry.h:527
ODRX_SEALED_VIRTUAL
#define ODRX_SEALED_VIRTUAL
Definition: OdPlatformSettings.h:119
OdGiGeometry::edge
virtual void edge(const OdGiEdge2dArray &edges)=0
OdGiGeometry::circle
virtual void circle(const OdGePoint3d &center, double radius, const OdGeVector3d &normal)=0
OdGiGeometry::getModelToWorldTransform
virtual OdGeMatrix3d getModelToWorldTransform() const =0
kOdGiNoOrientation
@ kOdGiNoOrientation
Definition: GiGeometry.h:528
OdGiFaceData
Definition: GiGeometry.h:245
OdGiVertexData::OdGiVertexData
OdGiVertexData()
Definition: GiGeometry.h:555
OdGiGeometry::pushClipBoundary
virtual void pushClipBoundary(OdGiClipBoundary *pBoundary)=0
OdGiTextStyle
Definition: GiTextStyle.h:52
OdDbBody
Definition: DbBody.h:55
OdGiFaceData::setTransparency
void setTransparency(const OdCmTransparency *transparencies)
Definition: GiGeometry.h:389
OdGeEllipArc3d
Definition: GeEllipArc3d.h:60
OdGePoint3d
Definition: GePoint3d.h:55
OdGiPathNode
Definition: GiPathNode.h:36
OdGiEdgeData::selectionMarkers
const OdGsMarker * selectionMarkers() const
Definition: GiGeometry.h:213
OdGiGeometry::popClipBoundary
virtual void popClipBoundary()=0
OdGiFaceData::fillDirections
const OdGeVector2d * fillDirections() const
Definition: GiGeometry.h:522
OdInt32
int OdInt32
Definition: OdPlatformSettings.h:782
OdGiGeometry::getWorldToModelTransform
virtual OdGeMatrix3d getWorldToModelTransform() const =0
OdGiFaceData::setFillOrigins
void setFillOrigins(const OdGePoint2d *fillOrigins)
Definition: GiGeometry.h:401
OdGiAbstractClipBoundary
Definition: GiAbstractClipBoundary.h:39
GePoint3d.h
OdGiArcType
OdGiArcType
Definition: GiGeometry.h:683
OdGiGeometry::xline
virtual void xline(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)=0
OdGiEdgeData::colors
const OdUInt16 * colors() const
Definition: GiGeometry.h:177
OdGiGeometry::draw
virtual void draw(const OdGiDrawable *pDrawable)=0
OdGiGeometry::circularArc
virtual void circularArc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple)=0
OdGiEdge2dArray
OdArray< OdGeCurve2d *, OdMemoryAllocator< OdGeCurve2d * > > OdGiEdge2dArray
Definition: GiGeometry.h:45
OdGiVertexData::normals
const OdGeVector3d * normals() const
Definition: GiGeometry.h:629
OdGiVertexData::setTrueColors
void setTrueColors(const OdCmEntityColor *colors)
Definition: GiGeometry.h:605
OdGiGeometry::rowOfDots
virtual void rowOfDots(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
Definition: GiGeometry.h:1300
GiMaterial.h
OdGiDrawable
Definition: GiDrawable.h:49
OdGiGeometry::circularArc
virtual void circularArc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple)=0
OdGiGeometry::polygon
virtual void polygon(OdInt32 numVertices, const OdGePoint3d *vertexList)=0
OdGiEdgeData::setVisibility
void setVisibility(const OdUInt8 *visibilities)
Definition: GiGeometry.h:167
OdGiFaceData::setFillDirections
void setFillDirections(const OdGeVector2d *fillDirections)
Definition: GiGeometry.h:413
OdChar
wchar_t OdChar
Definition: OdPlatformSettings.h:745
OdPolyPolygon3d
Definition: OdPolyPolygon3d.h:52
OdGiEdgeData::setTrueColors
void setTrueColors(const OdCmEntityColor *colors)
Definition: GiGeometry.h:109
height
GLint GLenum GLsizei GLsizei height
Definition: gles2_ext.h:110
length
GLuint GLsizei GLsizei * length
Definition: gles2_ext.h:274
width
GLint GLenum GLsizei width
Definition: gles2_ext.h:110
OdGiEdgeData
Definition: GiGeometry.h:67
OdGiModelTransformSaverOpt
Definition: GiGeometry.h:1387
OdGiEdgeData::setLinetypes
void setLinetypes(OdDbStub **linetypeIds)
Definition: GiGeometry.h:133
OdGeVector2d
Definition: GeVector2d.h:51
OdGiEdgeData::linetypeIds
OdDbStub ** linetypeIds() const
Definition: GiGeometry.h:204
OdGiEdgeData::visibility
const OdUInt8 * visibility() const
Definition: GiGeometry.h:232
OdGiGeometry::ellipArc
virtual void ellipArc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointsOverrides=0, OdGiArcType arcType=kOdGiArcSimple)=0
TD_PackPush.h
OdGeNurbCurve3d
Definition: GeNurbCurve3d.h:49
OdGiModelTransformSaver::~OdGiModelTransformSaver
~OdGiModelTransformSaver()
Definition: GiGeometry.h:1350
OdGiImageBGRA32
Definition: GiImage.h:213
OdGiVertexData::setOrientationFlag
void setOrientationFlag(const OdGiOrientationType orientationType)
Definition: GiGeometry.h:593
OdGiFaceData::fillOrigins
const OdGePoint2d * fillOrigins() const
Definition: GiGeometry.h:513
kOdGiClockwise
@ kOdGiClockwise
Definition: GiGeometry.h:529
OdGiEdgeData::setColors
void setColors(const OdUInt16 *colors)
Definition: GiGeometry.h:95
OdGiVertexData::setMappingCoords
void setMappingCoords(MapChannel channel, const OdGePoint3d *coords)
Definition: GiGeometry.h:618
OdGiRasterImage::TransparencyMode
TransparencyMode
Definition: GiRasterImage.h:82
OdGiVertexData::trueColors
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:653
OdGiGeometry::nurbs
virtual void nurbs(const OdGeNurbCurve3d &nurbsCurve)=0
OdGiFaceData::visibility
const OdUInt8 * visibility() const
Definition: GiGeometry.h:477
OdGiFaceData::setSelectionMarkers
void setSelectionMarkers(const OdGsMarker *selectionMarkers)
Definition: GiGeometry.h:321
OdGiGeometry::pushModelTransform
virtual void pushModelTransform(const OdGeVector3d &normal)=0
ODA_ASSERT
#define ODA_ASSERT(exp)
Definition: DebugStuff.h:49
OdGiGeometry
Definition: GiGeometry.h:698
OdGiModelTransformSaverOpt::OdGiModelTransformSaverOpt
OdGiModelTransformSaverOpt(OdGiGeometry &geom, const OdGeMatrix3d &xMat)
Definition: GiGeometry.h:1391
OdGiEdgeData::setSelectionMarkers
void setSelectionMarkers(const OdGsMarker *selectionMarkers)
Definition: GiGeometry.h:145
OdGiFaceData::trueColors
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:432
OdGiGeometry::shell
virtual void shell(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)=0
OdGiModelTransformSaver::OdGiModelTransformSaver
OdGiModelTransformSaver(OdGiGeometry &geom, const OdGeMatrix3d &xMat)
Definition: GiGeometry.h:1346
OdGiFaceData::setNormals
void setNormals(const OdGeVector3d *normals)
Definition: GiGeometry.h:333
OdGiModelTransformSaverOpt::~OdGiModelTransformSaverOpt
~OdGiModelTransformSaverOpt()
Definition: GiGeometry.h:1400
OdGiVertexData::mappingCoords
const OdGePoint3d * mappingCoords(MapChannel channel) const
Definition: GiGeometry.h:664
kOdGiArcSector
@ kOdGiArcSector
Definition: GiGeometry.h:685
OdGiGeometry::image
virtual void image(const OdGiImageBGRA32 &img, const OdGePoint3d &origin, const OdGeVector3d &uVec, const OdGeVector3d &vVec, OdGiRasterImage::TransparencyMode trpMode=OdGiRasterImage::kTransparency8Bit)=0
GeMatrix3d.h
OdGiEdgeData::layerIds
OdDbStub ** layerIds() const
Definition: GiGeometry.h:195
OdGiFaceData::setColors
void setColors(const OdUInt16 *colors)
Definition: GiGeometry.h:283
OdGiGeometry::polyline
virtual void polyline(OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, OdGsMarker baseSubEntMarker=-1)=0
OdGeMatrix3d::kIdentity
static GE_STATIC_EXPORT const OdGeMatrix3d kIdentity
Definition: GeMatrix3d.h:79
OdGiMapper
Definition: GiMaterial.h:1123
OdGiGeometry::mesh
virtual void mesh(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)=0
OdGiVertexData::orientationFlag
OdGiOrientationType orientationFlag() const
Definition: GiGeometry.h:644
OdGiFaceData::setLayers
void setLayers(OdDbStub **layerIds)
Definition: GiGeometry.h:309
OdGiVertexData::setNormals
void setNormals(const OdGeVector3d *normals)
Definition: GiGeometry.h:573
OdGiFaceData::mappers
const OdGiMapper * mappers() const
Definition: GiGeometry.h:495
OdGiFaceData::transparency
const OdCmTransparency * transparency() const
Definition: GiGeometry.h:504
OdGePoint2d
Definition: GePoint2d.h:60