CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GiGeometry.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#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
36class OdDbStub;
37class OdCmEntityColor;
38class OdGeMatrix3d;
39class OdGeVector3d;
40class OdGePoint2d;
41class OdGeCurve2d;
42class OdGiPathNode;
43class OdGiMapper;
45class OdGiImageBGRA32;
46class OdGiPointCloud;
47
52
71{
72 const OdUInt16* m_pColors;
73 const OdCmEntityColor* m_pTrueColors;
74 OdDbStub** m_pLayerIds;
75 OdDbStub** m_pLinetypeIds;
76 const OdGsMarker* m_pSelectionMarkers;
77 const OdUInt8* m_pVisibilities;
78public:
84 : m_pColors(NULL)
85 , m_pTrueColors(NULL)
86 , m_pLayerIds(NULL)
87 , m_pLinetypeIds(NULL)
88 , m_pSelectionMarkers(NULL)
89 , m_pVisibilities(NULL)
90 {}
91
104 const OdUInt16 *colors) { m_pColors = colors; }
105
118 const OdCmEntityColor *colors) { m_pTrueColors = colors; }
119
131 OdDbStub* *layerIds) { m_pLayerIds = layerIds; }
132
144 OdDbStub* *linetypeIds) { m_pLinetypeIds = linetypeIds; }
145
155 const OdGsMarker* selectionMarkers) { m_pSelectionMarkers = selectionMarkers; }
156
177 const OdUInt8* visibilities) { m_pVisibilities = visibilities; }
178
190 const OdUInt16* colors() const { return m_pColors; }
191
203 const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
204
216 OdDbStub** layerIds() const { return m_pLayerIds; }
217
230 OdDbStub** linetypeIds() const { return m_pLinetypeIds; }
231
242 const OdGsMarker* selectionMarkers() const { return m_pSelectionMarkers; }
243
265 const OdUInt8* visibility() const { return m_pVisibilities; }
266};
267
268
278{
279 const OdUInt16* m_pColors;
280 const OdCmEntityColor* m_pTrueColors;
281 OdDbStub** m_pLayerIds;
282 const OdGsMarker* m_pSelectionMarkers;
283 const OdUInt8* m_pVisibilities;
284 const OdGeVector3d* m_pNormals;
285 OdDbStub** m_pMaterialIds;
286 const OdGiMapper* m_pMappers;
287 const OdCmTransparency* m_pTransparency;
288 const OdGePoint2d* m_pFillOrigins;
289 const OdGeVector2d* m_pFillDirections;
290 const OdGeVector2d* m_pFillOffsetDirections;
291 const double* m_pFillOffsetScales;
292 const double* m_pFillDashesScales;
293public:
300 : m_pColors(NULL)
301 , m_pTrueColors(NULL)
302 , m_pLayerIds(NULL)
303 , m_pSelectionMarkers(NULL)
304 , m_pVisibilities(NULL)
305 , m_pNormals(NULL)
306 , m_pMaterialIds(NULL)
307 , m_pMappers(NULL)
308 , m_pTransparency(NULL)
309 , m_pFillOrigins(NULL)
310 , m_pFillDirections(NULL)
311 , m_pFillOffsetDirections(NULL)
312 , m_pFillOffsetScales(NULL)
313 , m_pFillDashesScales(NULL)
314 {}
315
329 const OdUInt16 *colors) { m_pColors = colors; }
330
344 const OdCmEntityColor *colors) { m_pTrueColors = colors; }
345
357 OdDbStub* *layerIds) { m_pLayerIds = layerIds; }
358
368 const OdGsMarker* selectionMarkers) { m_pSelectionMarkers = selectionMarkers; }
369
379 const OdGeVector3d* normals) { m_pNormals = normals; }
380
399 const OdUInt8* visibilities) { m_pVisibilities = visibilities; }
400
412 OdDbStub* *materialIds) { m_pMaterialIds = materialIds; }
413
426 const OdGiMapper* mappers) { m_pMappers = mappers; }
427
441 const OdCmTransparency *transparencies) { m_pTransparency = transparencies; }
442
455 const OdGePoint2d* fillOrigins) { m_pFillOrigins = fillOrigins; }
456
469 const OdGeVector2d* fillDirections) { m_pFillDirections = fillDirections; }
470
481 const OdGeVector2d* fillOffsetDirections) { m_pFillOffsetDirections = fillOffsetDirections; }
482
493 const double* fillOffsetScales) { m_pFillOffsetScales = fillOffsetScales; }
494
505 const double* fillDashesScales) { m_pFillDashesScales = fillDashesScales; }
506
518 const OdUInt16* colors() const { return m_pColors; }
519
531 const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
532
544 OdDbStub** layerIds() const { return m_pLayerIds; }
545
555 const OdGsMarker* selectionMarkers() const { return m_pSelectionMarkers; }
556
566 const OdGeVector3d* normals() const { return m_pNormals; }
567
586 const OdUInt8* visibility() const { return m_pVisibilities; }
587
599 OdDbStub** materials() const { return m_pMaterialIds; }
600
612 const OdGiMapper* mappers() const { return m_pMappers; }
613
627 const OdCmTransparency* transparency() const { return m_pTransparency; }
628
641 const OdGePoint2d* fillOrigins() const { return m_pFillOrigins; }
642
655 const OdGeVector2d* fillDirections() const { return m_pFillDirections; }
656
667 const OdGeVector2d* fillOffsetDirections() const { return m_pFillOffsetDirections; }
668
679 const double* fillDashesScales() const { return m_pFillDashesScales; }
680
691 const double* fillOffsetScales() const { return m_pFillOffsetScales; }
692};
693
694typedef enum
695{
702} OdGiOrientationType; // Represents faces orientation for calculating various parameters.
703
704
721{
722 const OdGeVector3d* m_pNormals;
723 OdGiOrientationType m_orientationFlag;
724 const OdCmEntityColor* m_pTrueColors;
725 const OdGePoint3d* m_pMappingCoords;
726public:
731 : m_pNormals(NULL)
732 , m_orientationFlag(kOdGiNoOrientation)
733 , m_pTrueColors(NULL)
734 , m_pMappingCoords(NULL)
735 {}
736
743 };
744
755 const OdGeVector3d* normals) { m_pNormals = normals; }
756
775 const OdGiOrientationType orientationType) { m_orientationFlag = orientationType; }
776
788 const OdCmEntityColor *colors) { m_pTrueColors = colors; }
789
802 MapChannel channel,
803 const OdGePoint3d *coords) { ODA_VERIFY(channel == kAllChannels); m_pMappingCoords = coords; }
804
814 const OdGeVector3d* normals() const { return m_pNormals; }
815
829 OdGiOrientationType orientationFlag() const { return m_orientationFlag; }
830
842 const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
843
857 const OdGePoint3d* mappingCoords(MapChannel channel) const { ODA_VERIFY(channel == kAllChannels); return m_pMappingCoords; }
858};
859
860class OdGiDrawable;
861struct OdGiClipBoundary;
863
864class OdDbPolyline;
865class OdPolyPolygon3d;
866class OdGeNurbCurve3d;
867class OdGiTextStyle;
868class OdDbBody;
869class OdGeEllipArc3d;
870class OdGiPolyline;
871class OdGiBrep;
872
876typedef enum
877{
878 kOdGiArcSimple = 0, // Unfilled.
879 kOdGiArcSector = 1, // Filled area bounded by the arc and its center.
880 kOdGiArcChord = 2 // Filled area bounded by the arc and its end points
882
891class FIRSTDLL_EXPORT OdGiGeometry : public OdRxObject
892{
893public:
895
909
920
935 virtual void pushModelTransform(
936 const OdGeVector3d& normal) = 0;
937
950 virtual void pushModelTransform(
951 const OdGeMatrix3d& xfm) = 0;
952
956 virtual void popModelTransform() = 0;
957
973 virtual void circle(
974 const OdGePoint3d& center,
975 double radius,
976 const OdGeVector3d& normal) = 0;
977
989 virtual void circle(
990 const OdGePoint3d& firstPoint,
991 const OdGePoint3d& secondPoint,
992 const OdGePoint3d& thirdPoint) = 0;
993
1018 virtual void circularArc(
1019 const OdGePoint3d& center,
1020 double radius,
1021 const OdGeVector3d& normal,
1022 const OdGeVector3d& startVector,
1023 double sweepAngle,
1024 OdGiArcType arcType = kOdGiArcSimple) = 0;
1025
1036 virtual void circularArc(
1037 const OdGePoint3d& firstPoint,
1038 const OdGePoint3d& secondPoint,
1039 const OdGePoint3d& thirdPoint,
1040 OdGiArcType arcType = kOdGiArcSimple) = 0;
1041
1057 virtual void polyline(
1058 OdInt32 numVertices,
1059 const OdGePoint3d* vertexList,
1060 const OdGeVector3d* pNormal = 0,
1061 OdGsMarker baseSubEntMarker = -1) = 0;
1062
1076 virtual void polygon(
1077 OdInt32 numVertices,
1078 const OdGePoint3d* vertexList) = 0;
1079
1094 virtual void polygon(
1095 OdInt32 numVertices,
1096 const OdGePoint3d* vertexList,
1097 const OdGeVector3d* pNormal);
1098
1111 virtual void pline(
1112 const OdGiPolyline& polyline,
1113 OdUInt32 fromIndex = 0,
1114 OdUInt32 numSegs = 0) = 0;
1115
1138 virtual void mesh(
1139 OdInt32 numRows,
1140 OdInt32 numColumns,
1141 const OdGePoint3d* vertexList,
1142 const OdGiEdgeData* pEdgeData = 0,
1143 const OdGiFaceData* pFaceData = 0,
1144 const OdGiVertexData* pVertexData = 0) = 0;
1145
1168 virtual void shell(
1169 OdInt32 numVertices,
1170 const OdGePoint3d* vertexList,
1171 OdInt32 faceListSize,
1172 const OdInt32* faceList,
1173 const OdGiEdgeData* pEdgeData = 0,
1174 const OdGiFaceData* pFaceData = 0,
1175 const OdGiVertexData* pVertexData = 0) = 0;
1176
1196 virtual void text(
1197 const OdGePoint3d& position,
1198 const OdGeVector3d& normal,
1199 const OdGeVector3d& direction,
1200 double height,
1201 double width,
1202 double oblique,
1203 const OdString& msg) = 0;
1204
1218 virtual void text(
1219 const OdGePoint3d& position,
1220 const OdGeVector3d& normal,
1221 const OdGeVector3d& direction,
1222 const OdChar* msg,
1223 OdInt32 length,
1224 bool raw,
1225 const OdGiTextStyle* pTextStyle) = 0;
1226
1238 virtual void xline(
1239 const OdGePoint3d& firstPoint,
1240 const OdGePoint3d& secondPoint) = 0;
1241
1253 virtual void ray(
1254 const OdGePoint3d& basePoint,
1255 const OdGePoint3d& throughPoint) = 0;
1256
1266 virtual void nurbs(
1267 const OdGeNurbCurve3d& nurbsCurve) = 0;
1268
1287 virtual void ellipArc(
1288 const OdGeEllipArc3d& ellipArc,
1289 const OdGePoint3d* endPointsOverrides = 0,
1290 OdGiArcType arcType = kOdGiArcSimple) = 0;
1291
1303 virtual void draw(
1304 const OdGiDrawable* pDrawable) = 0;
1305
1315 virtual void pushClipBoundary(
1316 OdGiClipBoundary* pBoundary) = 0;
1317
1323 virtual void popClipBoundary() = 0;
1324
1334 virtual void worldLine(
1335 const OdGePoint3d points[2]) = 0;
1336
1348 virtual void image(
1349 const OdGiImageBGRA32& img,
1350 const OdGePoint3d& origin,
1351 const OdGeVector3d& uVec,
1352 const OdGeVector3d& vVec,
1354
1360 virtual void edge(
1361 const OdGiEdge2dArray& edges) = 0;
1362
1369 virtual const OdGiPathNode* currentGiPath() const;
1370
1381 virtual void pushClipBoundary(
1382 OdGiClipBoundary* pBoundary, OdGiAbstractClipBoundary* pClipInfo);
1383
1398 virtual void polypoint(
1399 OdInt32 numPoints,
1400 const OdGePoint3d* vertexList,
1401 const OdCmEntityColor* pColors,
1402 const OdCmTransparency* pTransparency,
1403 const OdGeVector3d* pNormals = NULL,
1404 const OdGsMarker* pSubEntMarkers = NULL,
1405 OdInt32 nPointSize = 0);
1406
1420 OdInt32 numPoints,
1421 const OdGePoint3d* vertexList,
1422 const OdCmEntityColor* pColors,
1423 const OdGeVector3d* pNormals = NULL,
1424 const OdGsMarker* pSubEntMarkers = NULL) ODRX_FINAL;
1425
1438 OdInt32 numPoints,
1439 const OdGePoint3d* vertexList,
1440 const OdGeVector3d* pNormals = NULL,
1441 const OdGsMarker* pSubEntMarkers = NULL) ODRX_FINAL;
1442
1456 virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions,
1457 const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints,
1458 const OdCmEntityColor *pOutlineColors = NULL, const OdUInt32 *pOutlinePsLinetypes = NULL,
1459 const OdCmEntityColor *pFillColors = NULL, const OdCmTransparency *pFillTransparencies = NULL);
1460
1471 virtual void rowOfDots(
1472 OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
1473
1479 virtual void pointCloud(
1480 const OdGiPointCloud &pCloud);
1481
1488 virtual bool brep( const OdGiBrep& giBrep );
1489};
1490
1492{
1493 return 0;
1494}
1495
1497{
1498 // Some implementations could not support additional clipping styles, so redirect to old style clipping method by default.
1499 pushClipBoundary(pBoundary);
1500}
1501
1502inline void OdGiGeometry::polygon(OdInt32 numVertices, const OdGePoint3d* vertexList, const OdGeVector3d* /*pNormal*/)
1503{
1504 polygon(numVertices, vertexList);
1505}
1506
1507inline void OdGiGeometry::polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors,
1508 const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers)
1509{
1510 polypoint(numPoints, vertexList, pColors, NULL, pNormals, pSubEntMarkers);
1511}
1512
1513inline void OdGiGeometry::polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList,
1514 const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers)
1515{
1516 polypoint(numPoints, vertexList, NULL, pNormals, pSubEntMarkers);
1517}
1518
1529{
1530 bool m_bSave;
1531 OdGiGeometry& m_geom;
1532public:
1539 OdGiClipBoundarySaver(OdGiGeometry& geom, bool bSave) : m_bSave(bSave), m_geom(geom){}
1540
1546 void setSave(bool bSave){m_bSave = bSave;}
1547
1552 {
1553 if (m_bSave)
1554 m_geom.popClipBoundary();
1555 }
1556};
1557
1568{
1569 OdGiGeometry& m_geom;
1570public:
1577 OdGiModelTransformSaver(OdGiGeometry& geom, const OdGeMatrix3d& xMat) : m_geom(geom)
1578 {
1579 m_geom.pushModelTransform(xMat);
1580 }
1581
1586 {
1587 m_geom.popModelTransform();
1588 }
1589};
1590
1591/* #11298 info: Matrix identity check was removed from OdGiModelTransformSaver and place into separate OdGiModelTransformSaverOpt class.
1592 Identity check is also time consuming operation and it is only makes things worse if matrices become identity seldom in
1593 some case. Following statistics on 10 typical drawing was collected on 18.10.2012:
1594
1595 Source File : Line Identity=true Identity=false % of identity=true
1596..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNode.cpp : 1263 3202 60838 5%
1597..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNodeImpl.cpp : 707 2 64364 0.003%
1598..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNodeImpl.cpp : 868 3 62 4.6%
1599..\..\..\..\..\TD\Source\database\Entities\DbBlockReference.cpp : 1101 25 64905 0.038%
1600..\..\..\..\..\TD\Source\database\Entities\DbDimension.cpp : 1307 12546 16 99.87%
1601..\..\..\..\..\TD\Source\database\Entities\DbHatchRender.cpp : 714 38566 0 100%
1602..\..\..\..\..\TD\Source\database\Entities\DbMInsertBlock.cpp : 322 1603 30457 5%
1603..\..\..\..\..\TD\Source\database\Entities\DbModelerGeometryImpl.cpp : 1410 8 0 100%
1604..\..\..\..\..\TD\Source\database\Entities\DbModelerGeometryImpl.cpp : 1545 6 0 100%
1605..\..\..\..\..\TD\Source\database\Entities\DbPoint.cpp : 264 0 208 0%
1606..\..\..\..\TD\Source\database\GiDefaultContext.cpp : 454 4405 0 100%
1607..\..\..\..\TD\Source\database\GiDefaultContext.cpp : 557 124 23626 0.522%
1608
1609All places where percents of identity=true < 10% will use OdGiModelTransformSaver. Places where Identity=true very frequent will use
1610OdGiModelTransformSaverOpt. Unchecked places isn't principle since them are called very seldom. */
1611
1622{
1623 OdGiGeometry& m_geom;
1624 bool m_bIdentity;
1625public:
1632 OdGiModelTransformSaverOpt(OdGiGeometry& geom, const OdGeMatrix3d& xMat) : m_geom(geom)
1633 {
1634 // @@@TODO: check, probably simple memcmp will be more effective here. memcmp is very assembler-optimized in modern crt's. Identity
1635 // matrix could be inexact only after some multiplications and etc. But statistics must be collected first for isEqual check
1636 // and for memcmp, if it will be faster and precisely enough isEqualTo check with tolerance can be exchanged by memcmp.
1637 m_bIdentity = xMat.isEqualTo(OdGeMatrix3d::kIdentity);
1638 if (!m_bIdentity)
1639 m_geom.pushModelTransform(xMat);
1640 }
1641
1646 {
1647 if (!m_bIdentity)
1648 m_geom.popModelTransform();
1649 }
1650};
1651
1652#include "TD_PackPop.h"
1653
1654#endif
#define ODA_VERIFY(exp)
Definition DebugStuff.h:59
OdGiArcType
Definition GiGeometry.h:877
@ kOdGiArcSimple
Definition GiGeometry.h:878
@ kOdGiArcSector
Definition GiGeometry.h:879
@ kOdGiArcChord
Definition GiGeometry.h:880
OdArray< OdGeCurve2d *, OdMemoryAllocator< OdGeCurve2d * > > OdGiEdge2dArray
Definition GiGeometry.h:51
OdGiOrientationType
Definition GiGeometry.h:695
@ kOdGiCounterClockwise
Definition GiGeometry.h:697
@ kOdGiNoOrientation
Definition GiGeometry.h:699
@ kOdGiClockwise
Definition GiGeometry.h:701
ptrdiff_t OdGsMarker
#define ODRX_FINAL
unsigned int OdUInt32
unsigned short OdUInt16
int OdInt32
unsigned char OdUInt8
#define ODRX_SEALED_VIRTUAL
wchar_t OdChar
#define FIRSTDLL_EXPORT
Definition RootExport.h:39
bool isEqualTo(const OdGeMatrix3d &matrix, const OdGeTol &tol=OdGeContext::gTol) const
static GE_STATIC_EXPORT const OdGeMatrix3d kIdentity
Definition GeMatrix3d.h:97
OdGiClipBoundarySaver(OdGiGeometry &geom, bool bSave)
void setSave(bool bSave)
OdDbStub ** linetypeIds() const
Definition GiGeometry.h:230
const OdUInt16 * colors() const
Definition GiGeometry.h:190
void setTrueColors(const OdCmEntityColor *colors)
Definition GiGeometry.h:117
void setColors(const OdUInt16 *colors)
Definition GiGeometry.h:103
const OdCmEntityColor * trueColors() const
Definition GiGeometry.h:203
const OdGsMarker * selectionMarkers() const
Definition GiGeometry.h:242
OdDbStub ** layerIds() const
Definition GiGeometry.h:216
void setVisibility(const OdUInt8 *visibilities)
Definition GiGeometry.h:176
void setSelectionMarkers(const OdGsMarker *selectionMarkers)
Definition GiGeometry.h:154
void setLayers(OdDbStub **layerIds)
Definition GiGeometry.h:130
void setLinetypes(OdDbStub **linetypeIds)
Definition GiGeometry.h:143
const OdUInt8 * visibility() const
Definition GiGeometry.h:265
const double * fillDashesScales() const
Definition GiGeometry.h:679
const double * fillOffsetScales() const
Definition GiGeometry.h:691
const OdUInt16 * colors() const
Definition GiGeometry.h:518
const OdGePoint2d * fillOrigins() const
Definition GiGeometry.h:641
void setFillOrigins(const OdGePoint2d *fillOrigins)
Definition GiGeometry.h:454
void setLayers(OdDbStub **layerIds)
Definition GiGeometry.h:356
void setNormals(const OdGeVector3d *normals)
Definition GiGeometry.h:378
const OdCmEntityColor * trueColors() const
Definition GiGeometry.h:531
void setFillOffsetScales(const double *fillOffsetScales)
Definition GiGeometry.h:492
void setSelectionMarkers(const OdGsMarker *selectionMarkers)
Definition GiGeometry.h:367
void setMaterials(OdDbStub **materialIds)
Definition GiGeometry.h:411
void setColors(const OdUInt16 *colors)
Definition GiGeometry.h:328
void setFillDashesScales(const double *fillDashesScales)
Definition GiGeometry.h:504
void setTrueColors(const OdCmEntityColor *colors)
Definition GiGeometry.h:343
void setFillDirections(const OdGeVector2d *fillDirections)
Definition GiGeometry.h:468
const OdGeVector2d * fillDirections() const
Definition GiGeometry.h:655
const OdGeVector3d * normals() const
Definition GiGeometry.h:566
const OdGeVector2d * fillOffsetDirections() const
Definition GiGeometry.h:667
const OdGiMapper * mappers() const
Definition GiGeometry.h:612
const OdUInt8 * visibility() const
Definition GiGeometry.h:586
void setMappers(const OdGiMapper *mappers)
Definition GiGeometry.h:425
const OdGsMarker * selectionMarkers() const
Definition GiGeometry.h:555
void setTransparency(const OdCmTransparency *transparencies)
Definition GiGeometry.h:440
void setFillOffsetDirections(const OdGeVector2d *fillOffsetDirections)
Definition GiGeometry.h:480
const OdCmTransparency * transparency() const
Definition GiGeometry.h:627
OdDbStub ** materials() const
Definition GiGeometry.h:599
OdDbStub ** layerIds() const
Definition GiGeometry.h:544
void setVisibility(const OdUInt8 *visibilities)
Definition GiGeometry.h:398
virtual void circle(const OdGePoint3d &center, double radius, const OdGeVector3d &normal)=0
virtual void circularArc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple)=0
virtual void edge(const OdGiEdge2dArray &edges)=0
virtual OdGeMatrix3d getModelToWorldTransform() const =0
virtual void image(const OdGiImageBGRA32 &img, const OdGePoint3d &origin, const OdGeVector3d &uVec, const OdGeVector3d &vVec, OdGiRasterImage::TransparencyMode trpMode=OdGiRasterImage::kTransparency8Bit)=0
virtual void pointCloud(const OdGiPointCloud &pCloud)
virtual void ray(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)=0
virtual void popModelTransform()=0
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
virtual void pline(const OdGiPolyline &polyline, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)=0
virtual void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle)=0
virtual const OdGiPathNode * currentGiPath() const
virtual OdGeMatrix3d getWorldToModelTransform() const =0
virtual void rowOfDots(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
ODRX_DECLARE_MEMBERS(OdGiGeometry)
virtual void circularArc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple)=0
virtual void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, double height, double width, double oblique, const OdString &msg)=0
virtual void polyline(OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, OdGsMarker baseSubEntMarker=-1)=0
virtual void nurbs(const OdGeNurbCurve3d &nurbsCurve)=0
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)
virtual void pushClipBoundary(OdGiClipBoundary *pBoundary)=0
virtual void xline(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)=0
virtual void worldLine(const OdGePoint3d points[2])=0
virtual void pushModelTransform(const OdGeMatrix3d &xfm)=0
virtual void ellipArc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointsOverrides=0, OdGiArcType arcType=kOdGiArcSimple)=0
virtual void circle(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint)=0
virtual void polygon(OdInt32 numVertices, const OdGePoint3d *vertexList)=0
virtual void draw(const OdGiDrawable *pDrawable)=0
virtual void popClipBoundary()=0
virtual void pushModelTransform(const OdGeVector3d &normal)=0
virtual bool brep(const OdGiBrep &giBrep)
virtual void mesh(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)=0
virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions, const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints, const OdCmEntityColor *pOutlineColors=NULL, const OdUInt32 *pOutlinePsLinetypes=NULL, const OdCmEntityColor *pFillColors=NULL, const OdCmTransparency *pFillTransparencies=NULL)
OdGiModelTransformSaver(OdGiGeometry &geom, const OdGeMatrix3d &xMat)
OdGiModelTransformSaverOpt(OdGiGeometry &geom, const OdGeMatrix3d &xMat)
void setMappingCoords(MapChannel channel, const OdGePoint3d *coords)
Definition GiGeometry.h:801
void setOrientationFlag(const OdGiOrientationType orientationType)
Definition GiGeometry.h:774
const OdGePoint3d * mappingCoords(MapChannel channel) const
Definition GiGeometry.h:857
const OdCmEntityColor * trueColors() const
Definition GiGeometry.h:842
OdGiOrientationType orientationFlag() const
Definition GiGeometry.h:829
void setNormals(const OdGeVector3d *normals)
Definition GiGeometry.h:754
const OdGeVector3d * normals() const
Definition GiGeometry.h:814
void setTrueColors(const OdCmEntityColor *colors)
Definition GiGeometry.h:787
GLint GLenum GLsizei width
Definition gles2_ext.h:110
GLuint GLsizei GLsizei * length
Definition gles2_ext.h:274
GLint GLenum GLsizei GLsizei height
Definition gles2_ext.h:110