CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GiGeometry.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#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
49
68{
69 const OdUInt16* m_pColors;
70 const OdCmEntityColor* m_pTrueColors;
71 OdDbStub** m_pLayerIds;
72 OdDbStub** m_pLinetypeIds;
73 const OdGsMarker* m_pSelectionMarkers;
74 const OdUInt8* m_pVisibilities;
75public:
81 : m_pColors(NULL)
82 , m_pTrueColors(NULL)
83 , m_pLayerIds(NULL)
84 , m_pLinetypeIds(NULL)
85 , m_pSelectionMarkers(NULL)
86 , m_pVisibilities(NULL)
87 {}
88
101 const OdUInt16 *colors) { m_pColors = colors; }
102
115 const OdCmEntityColor *colors) { m_pTrueColors = colors; }
116
128 OdDbStub* *layerIds) { m_pLayerIds = layerIds; }
129
141 OdDbStub* *linetypeIds) { m_pLinetypeIds = linetypeIds; }
142
152 const OdGsMarker* selectionMarkers) { m_pSelectionMarkers = selectionMarkers; }
153
173 const OdUInt8* visibilities) { m_pVisibilities = visibilities; }
174
186 const OdUInt16* colors() const { return m_pColors; }
187
199 const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
200
212 OdDbStub** layerIds() const { return m_pLayerIds; }
213
226 OdDbStub** linetypeIds() const { return m_pLinetypeIds; }
227
238 const OdGsMarker* selectionMarkers() const { return m_pSelectionMarkers; }
239
260 const OdUInt8* visibility() const { return m_pVisibilities; }
261};
262
263
273{
274 const OdUInt16* m_pColors;
275 const OdCmEntityColor* m_pTrueColors;
276 OdDbStub** m_pLayerIds;
277 const OdGsMarker* m_pSelectionMarkers;
278 const OdUInt8* m_pVisibilities;
279 const OdGeVector3d* m_pNormals;
280 OdDbStub** m_pMaterialIds;
281 const OdGiMapper* m_pMappers;
282 const OdCmTransparency* m_pTransparency;
283 const OdGePoint2d* m_pFillOrigins;
284 const OdGeVector2d* m_pFillDirections;
285public:
292 : m_pColors(NULL)
293 , m_pTrueColors(NULL)
294 , m_pLayerIds(NULL)
295 , m_pSelectionMarkers(NULL)
296 , m_pVisibilities(NULL)
297 , m_pNormals(NULL)
298 , m_pMaterialIds(NULL)
299 , m_pMappers(NULL)
300 , m_pTransparency(NULL)
301 , m_pFillOrigins(NULL)
302 , m_pFillDirections(NULL)
303 {}
304
318 const OdUInt16 *colors) { m_pColors = colors; }
319
333 const OdCmEntityColor *colors) { m_pTrueColors = colors; }
334
346 OdDbStub* *layerIds) { m_pLayerIds = layerIds; }
347
357 const OdGsMarker* selectionMarkers) { m_pSelectionMarkers = selectionMarkers; }
358
368 const OdGeVector3d* normals) { m_pNormals = normals; }
369
388 const OdUInt8* visibilities) { m_pVisibilities = visibilities; }
389
401 OdDbStub* *materialIds) { m_pMaterialIds = materialIds; }
402
415 const OdGiMapper* mappers) { m_pMappers = mappers; }
416
430 const OdCmTransparency *transparencies) { m_pTransparency = transparencies; }
431
443 const OdGePoint2d* fillOrigins) { m_pFillOrigins = fillOrigins; }
444
456 const OdGeVector2d* fillDirections) { m_pFillDirections = fillDirections; }
457
469 const OdUInt16* colors() const { return m_pColors; }
470
482 const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
483
495 OdDbStub** layerIds() const { return m_pLayerIds; }
496
506 const OdGsMarker* selectionMarkers() const { return m_pSelectionMarkers; }
507
517 const OdGeVector3d* normals() const { return m_pNormals; }
518
537 const OdUInt8* visibility() const { return m_pVisibilities; }
538
550 OdDbStub** materials() const { return m_pMaterialIds; }
551
563 const OdGiMapper* mappers() const { return m_pMappers; }
564
578 const OdCmTransparency* transparency() const { return m_pTransparency; }
579
591 const OdGePoint2d* fillOrigins() const { return m_pFillOrigins; }
592
604 const OdGeVector2d* fillDirections() const { return m_pFillDirections; }
605};
606
607typedef enum
608{
615} OdGiOrientationType; // Represents faces orientation for calculating various parameters.
616
617
634{
635 const OdGeVector3d* m_pNormals;
636 OdGiOrientationType m_orientationFlag;
637 const OdCmEntityColor* m_pTrueColors;
638 const OdGePoint3d* m_pMappingCoords;
639public:
644 : m_pNormals(NULL)
645 , m_orientationFlag(kOdGiNoOrientation)
646 , m_pTrueColors(NULL)
647 , m_pMappingCoords(NULL)
648 {}
649
654
665 const OdGeVector3d* normals) { m_pNormals = normals; }
666
685 const OdGiOrientationType orientationType) { m_orientationFlag = orientationType; }
686
698 const OdCmEntityColor *colors) { m_pTrueColors = colors; }
699
712 MapChannel channel,
713 const OdGePoint3d *coords) { ODA_ASSERT(channel == kAllChannels); m_pMappingCoords = coords; }
714
724 const OdGeVector3d* normals() const { return m_pNormals; }
725
739 OdGiOrientationType orientationFlag() const { return m_orientationFlag; }
740
752 const OdCmEntityColor* trueColors() const { return m_pTrueColors; }
753
767 const OdGePoint3d* mappingCoords(MapChannel channel) const { ODA_ASSERT(channel == kAllChannels); return m_pMappingCoords; }
768};
769
770class OdGiDrawable;
771struct OdGiClipBoundary;
773
774class OdDbPolyline;
775class OdPolyPolygon3d;
776class OdGeNurbCurve3d;
777class OdGiTextStyle;
778class OdDbBody;
779class OdGeEllipArc3d;
780class OdGiPolyline;
781class OdGiBrep;
782
786typedef enum
787{
788 kOdGiArcSimple = 0, // Unfilled.
789 kOdGiArcSector = 1, // Filled area bounded by the arc and its center.
790 kOdGiArcChord = 2 // Filled area bounded by the arc and its end points
792
802{
803public:
805
819
830
845 virtual void pushModelTransform(
846 const OdGeVector3d& normal) = 0;
847
860 virtual void pushModelTransform(
861 const OdGeMatrix3d& xfm) = 0;
862
866 virtual void popModelTransform() = 0;
867
883 virtual void circle(
884 const OdGePoint3d& center,
885 double radius,
886 const OdGeVector3d& normal) = 0;
887
899 virtual void circle(
900 const OdGePoint3d& firstPoint,
901 const OdGePoint3d& secondPoint,
902 const OdGePoint3d& thirdPoint) = 0;
903
928 virtual void circularArc(
929 const OdGePoint3d& center,
930 double radius,
931 const OdGeVector3d& normal,
932 const OdGeVector3d& startVector,
933 double sweepAngle,
934 OdGiArcType arcType = kOdGiArcSimple) = 0;
935
946 virtual void circularArc(
947 const OdGePoint3d& firstPoint,
948 const OdGePoint3d& secondPoint,
949 const OdGePoint3d& thirdPoint,
950 OdGiArcType arcType = kOdGiArcSimple) = 0;
951
967 virtual void polyline(
968 OdInt32 numVertices,
969 const OdGePoint3d* vertexList,
970 const OdGeVector3d* pNormal = 0,
971 OdGsMarker baseSubEntMarker = -1) = 0;
972
986 virtual void polygon(
987 OdInt32 numVertices,
988 const OdGePoint3d* vertexList) = 0;
989
1004 virtual void polygon(
1005 OdInt32 numVertices,
1006 const OdGePoint3d* vertexList,
1007 const OdGeVector3d* pNormal);
1008
1021 virtual void pline(
1022 const OdGiPolyline& polyline,
1023 OdUInt32 fromIndex = 0,
1024 OdUInt32 numSegs = 0) = 0;
1025
1048 virtual void mesh(
1049 OdInt32 numRows,
1050 OdInt32 numColumns,
1051 const OdGePoint3d* vertexList,
1052 const OdGiEdgeData* pEdgeData = 0,
1053 const OdGiFaceData* pFaceData = 0,
1054 const OdGiVertexData* pVertexData = 0) = 0;
1055
1078 virtual void shell(
1079 OdInt32 numVertices,
1080 const OdGePoint3d* vertexList,
1081 OdInt32 faceListSize,
1082 const OdInt32* faceList,
1083 const OdGiEdgeData* pEdgeData = 0,
1084 const OdGiFaceData* pFaceData = 0,
1085 const OdGiVertexData* pVertexData = 0) = 0;
1086
1106 virtual void text(
1107 const OdGePoint3d& position,
1108 const OdGeVector3d& normal,
1109 const OdGeVector3d& direction,
1110 double height,
1111 double width,
1112 double oblique,
1113 const OdString& msg) = 0;
1114
1128 virtual void text(
1129 const OdGePoint3d& position,
1130 const OdGeVector3d& normal,
1131 const OdGeVector3d& direction,
1132 const OdChar* msg,
1133 OdInt32 length,
1134 bool raw,
1135 const OdGiTextStyle* pTextStyle) = 0;
1136
1148 virtual void xline(
1149 const OdGePoint3d& firstPoint,
1150 const OdGePoint3d& secondPoint) = 0;
1151
1163 virtual void ray(
1164 const OdGePoint3d& basePoint,
1165 const OdGePoint3d& throughPoint) = 0;
1166
1176 virtual void nurbs(
1177 const OdGeNurbCurve3d& nurbsCurve) = 0;
1178
1197 virtual void ellipArc(
1198 const OdGeEllipArc3d& ellipArc,
1199 const OdGePoint3d* endPointsOverrides = 0,
1200 OdGiArcType arcType = kOdGiArcSimple) = 0;
1201
1213 virtual void draw(
1214 const OdGiDrawable* pDrawable) = 0;
1215
1225 virtual void pushClipBoundary(
1226 OdGiClipBoundary* pBoundary) = 0;
1227
1233 virtual void popClipBoundary() = 0;
1234
1244 virtual void worldLine(
1245 const OdGePoint3d points[2]) = 0;
1246
1258 virtual void image(
1259 const OdGiImageBGRA32& img,
1260 const OdGePoint3d& origin,
1261 const OdGeVector3d& uVec,
1262 const OdGeVector3d& vVec,
1264
1270 virtual void edge(
1271 const OdGiEdge2dArray& edges) = 0;
1272
1279 virtual const OdGiPathNode* currentGiPath() const;
1280
1291 virtual void pushClipBoundary(
1292 OdGiClipBoundary* pBoundary, OdGiAbstractClipBoundary* pClipInfo);
1293
1308 virtual void polypoint(
1309 OdInt32 numPoints,
1310 const OdGePoint3d* vertexList,
1311 const OdCmEntityColor* pColors,
1312 const OdCmTransparency* pTransparency,
1313 const OdGeVector3d* pNormals = NULL,
1314 const OdGsMarker* pSubEntMarkers = NULL,
1315 OdInt32 nPointSize = 0);
1316
1329 ODRX_SEALED_VIRTUAL void polypoint(
1330 OdInt32 numPoints,
1331 const OdGePoint3d* vertexList,
1332 const OdCmEntityColor* pColors,
1333 const OdGeVector3d* pNormals = NULL,
1334 const OdGsMarker* pSubEntMarkers = NULL) ODRX_SEALED;
1335
1347 ODRX_SEALED_VIRTUAL void polypoint(
1348 OdInt32 numPoints,
1349 const OdGePoint3d* vertexList,
1350 const OdGeVector3d* pNormals = NULL,
1351 const OdGsMarker* pSubEntMarkers = NULL) ODRX_SEALED;
1352
1366 virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions,
1367 const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints,
1368 const OdCmEntityColor *pOutlineColors = NULL, const OdUInt32 *pOutlinePsLinetypes = NULL,
1369 const OdCmEntityColor *pFillColors = NULL, const OdCmTransparency *pFillTransparencies = NULL);
1370
1381 virtual void rowOfDots(
1382 OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
1383
1389 virtual void pointCloud(
1390 const OdGiPointCloud &pCloud);
1391
1398 virtual bool brep( const OdGiBrep& giBrep );
1399};
1400
1402{
1403 return 0;
1404}
1405
1407{
1408 // Some implementations could not support additional clipping styles, so redirect to old style clipping method by default.
1409 pushClipBoundary(pBoundary);
1410}
1411
1412inline void OdGiGeometry::polygon(OdInt32 numVertices, const OdGePoint3d* vertexList, const OdGeVector3d* pNormal)
1413{
1414 polygon(numVertices, vertexList);
1415}
1416
1417inline void OdGiGeometry::polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors,
1418 const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers)
1419{
1420 polypoint(numPoints, vertexList, pColors, NULL, pNormals, pSubEntMarkers);
1421}
1422
1423inline void OdGiGeometry::polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList,
1424 const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers)
1425{
1426 polypoint(numPoints, vertexList, NULL, pNormals, pSubEntMarkers);
1427}
1428
1439{
1440 bool m_bSave;
1441 OdGiGeometry& m_geom;
1442public:
1443 OdGiClipBoundarySaver(OdGiGeometry& geom, bool bSave) : m_bSave(bSave), m_geom(geom){}
1444 void setSave(bool bSave){m_bSave = bSave;}
1446 {
1447 if (m_bSave)
1448 m_geom.popClipBoundary();
1449 }
1450};
1451
1462{
1463 OdGiGeometry& m_geom;
1464public:
1465 OdGiModelTransformSaver(OdGiGeometry& geom, const OdGeMatrix3d& xMat) : m_geom(geom)
1466 {
1467 m_geom.pushModelTransform(xMat);
1468 }
1470 {
1471 m_geom.popModelTransform();
1472 }
1473};
1474
1475/* #11298 info: Matrix identity check was removed from OdGiModelTransformSaver and place into separate OdGiModelTransformSaverOpt class.
1476 Identity check is also time consuming operation and it is only makes things worse if matrices become identity seldom in
1477 some case. Following statistics on 10 typical drawing was collected on 18.10.2012:
1478
1479 Source File : Line Identity=true Identity=false % of identity=true
1480..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNode.cpp : 1263 3202 60838 5%
1481..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNodeImpl.cpp : 707 2 64364 0.003%
1482..\..\..\..\..\TD\Source\Gs\GsBlockReferenceNodeImpl.cpp : 868 3 62 4.6%
1483..\..\..\..\..\TD\Source\database\Entities\DbBlockReference.cpp : 1101 25 64905 0.038%
1484..\..\..\..\..\TD\Source\database\Entities\DbDimension.cpp : 1307 12546 16 99.87%
1485..\..\..\..\..\TD\Source\database\Entities\DbHatchRender.cpp : 714 38566 0 100%
1486..\..\..\..\..\TD\Source\database\Entities\DbMInsertBlock.cpp : 322 1603 30457 5%
1487..\..\..\..\..\TD\Source\database\Entities\DbModelerGeometryImpl.cpp : 1410 8 0 100%
1488..\..\..\..\..\TD\Source\database\Entities\DbModelerGeometryImpl.cpp : 1545 6 0 100%
1489..\..\..\..\..\TD\Source\database\Entities\DbPoint.cpp : 264 0 208 0%
1490..\..\..\..\TD\Source\database\GiDefaultContext.cpp : 454 4405 0 100%
1491..\..\..\..\TD\Source\database\GiDefaultContext.cpp : 557 124 23626 0.522%
1492
1493All places where percents of identity=true < 10% will use OdGiModelTransformSaver. Places where Identity=true very frequent will use
1494OdGiModelTransformSaverOpt. Unchecked places isn't principle since them are called very seldom. */
1495
1506{
1507 OdGiGeometry& m_geom;
1508 bool m_bIdentity;
1509public:
1510 OdGiModelTransformSaverOpt(OdGiGeometry& geom, const OdGeMatrix3d& xMat) : m_geom(geom)
1511 {
1512 // @@@TODO: check, probably simple memcmp will be more effective here. memcmp is very assembler-optimized in modern crt's. Identity
1513 // matrix could be inexact only after some multiplications and etc. But statistics must be collected first for isEqual check
1514 // and for memcmp, if it will be faster and precisely enough isEqualTo check with tolerance can be exchanged by memcmp.
1515 m_bIdentity = xMat.isEqualTo(OdGeMatrix3d::kIdentity);
1516 if (!m_bIdentity)
1517 m_geom.pushModelTransform(xMat);
1518 }
1520 {
1521 if (!m_bIdentity)
1522 m_geom.popModelTransform();
1523 }
1524};
1525
1526#include "TD_PackPop.h"
1527
1528#endif
#define ODA_ASSERT(exp)
Definition: DebugStuff.h:57
OdGiArcType
Definition: GiGeometry.h:787
@ kOdGiArcSimple
Definition: GiGeometry.h:788
@ kOdGiArcSector
Definition: GiGeometry.h:789
@ kOdGiArcChord
Definition: GiGeometry.h:790
OdArray< OdGeCurve2d *, OdMemoryAllocator< OdGeCurve2d * > > OdGiEdge2dArray
Definition: GiGeometry.h:48
OdGiOrientationType
Definition: GiGeometry.h:608
@ kOdGiCounterClockwise
Definition: GiGeometry.h:610
@ kOdGiNoOrientation
Definition: GiGeometry.h:612
@ kOdGiClockwise
Definition: GiGeometry.h:614
ptrdiff_t OdGsMarker
unsigned int OdUInt32
unsigned short OdUInt16
int OdInt32
unsigned char OdUInt8
#define ODRX_SEALED_VIRTUAL
#define ODRX_SEALED
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)
Definition: GiGeometry.h:1443
void setSave(bool bSave)
Definition: GiGeometry.h:1444
OdDbStub ** linetypeIds() const
Definition: GiGeometry.h:226
const OdUInt16 * colors() const
Definition: GiGeometry.h:186
void setTrueColors(const OdCmEntityColor *colors)
Definition: GiGeometry.h:114
void setColors(const OdUInt16 *colors)
Definition: GiGeometry.h:100
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:199
const OdGsMarker * selectionMarkers() const
Definition: GiGeometry.h:238
OdDbStub ** layerIds() const
Definition: GiGeometry.h:212
void setVisibility(const OdUInt8 *visibilities)
Definition: GiGeometry.h:172
void setSelectionMarkers(const OdGsMarker *selectionMarkers)
Definition: GiGeometry.h:151
void setLayers(OdDbStub **layerIds)
Definition: GiGeometry.h:127
void setLinetypes(OdDbStub **linetypeIds)
Definition: GiGeometry.h:140
const OdUInt8 * visibility() const
Definition: GiGeometry.h:260
const OdUInt16 * colors() const
Definition: GiGeometry.h:469
const OdGePoint2d * fillOrigins() const
Definition: GiGeometry.h:591
void setFillOrigins(const OdGePoint2d *fillOrigins)
Definition: GiGeometry.h:442
void setLayers(OdDbStub **layerIds)
Definition: GiGeometry.h:345
void setNormals(const OdGeVector3d *normals)
Definition: GiGeometry.h:367
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:482
void setSelectionMarkers(const OdGsMarker *selectionMarkers)
Definition: GiGeometry.h:356
void setMaterials(OdDbStub **materialIds)
Definition: GiGeometry.h:400
void setColors(const OdUInt16 *colors)
Definition: GiGeometry.h:317
void setTrueColors(const OdCmEntityColor *colors)
Definition: GiGeometry.h:332
void setFillDirections(const OdGeVector2d *fillDirections)
Definition: GiGeometry.h:455
const OdGeVector2d * fillDirections() const
Definition: GiGeometry.h:604
const OdGeVector3d * normals() const
Definition: GiGeometry.h:517
const OdGiMapper * mappers() const
Definition: GiGeometry.h:563
const OdUInt8 * visibility() const
Definition: GiGeometry.h:537
void setMappers(const OdGiMapper *mappers)
Definition: GiGeometry.h:414
const OdGsMarker * selectionMarkers() const
Definition: GiGeometry.h:506
void setTransparency(const OdCmTransparency *transparencies)
Definition: GiGeometry.h:429
const OdCmTransparency * transparency() const
Definition: GiGeometry.h:578
OdDbStub ** materials() const
Definition: GiGeometry.h:550
OdDbStub ** layerIds() const
Definition: GiGeometry.h:495
void setVisibility(const OdUInt8 *visibilities)
Definition: GiGeometry.h:387
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
Definition: GiGeometry.h:1401
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)
Definition: GiGeometry.h:1465
OdGiModelTransformSaverOpt(OdGiGeometry &geom, const OdGeMatrix3d &xMat)
Definition: GiGeometry.h:1510
void setMappingCoords(MapChannel channel, const OdGePoint3d *coords)
Definition: GiGeometry.h:711
void setOrientationFlag(const OdGiOrientationType orientationType)
Definition: GiGeometry.h:684
const OdGePoint3d * mappingCoords(MapChannel channel) const
Definition: GiGeometry.h:767
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:752
OdGiOrientationType orientationFlag() const
Definition: GiGeometry.h:739
void setNormals(const OdGeVector3d *normals)
Definition: GiGeometry.h:664
const OdGeVector3d * normals() const
Definition: GiGeometry.h:724
void setTrueColors(const OdCmEntityColor *colors)
Definition: GiGeometry.h:697
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