CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GiGeometrySimplifier.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 __ODGIGEOMETRYSIMPLIFIER_H__
25#define __ODGIGEOMETRYSIMPLIFIER_H__
26
27#include "Gi/GiFill.h"
28#include "Gi/GiMapperItem.h"
29#include "Gi/GiExport.h"
31#include "Ge/GeDoubleArray.h"
32#include "Ge/GePoint2dArray.h"
33#include "Ge/GePoint3dArray.h"
34#include "Ge/GeVector3dArray.h"
35#include "Gs/Gs.h"
36
37class OdGiDeviation;
38
39class OdGeLineSeg2d;
40class OdGeLine2d;
41class OdGeCircArc2d;
42class OdGeCircArc3d;
43class OdGeEllipArc3d;
44
45#include "TD_PackPush.h"
46
59{
60 // Old version do not override !!!
61 // Overide shellFaceOut() or triangleOut() instead
62 virtual int polygonWithHolesOut(OdUInt32, const OdGePoint3d*, OdUInt32 , OdUInt32*);
63protected:
72 void drawTypedArc(OdGiArcType arcType, const OdGePoint3d& center,
73 OdGePoint3dArray& points, const OdGeVector3d* pNormal, const OdGeVector3d* pExtrusion);
74protected:
78
80 {
81 kSimplProcessingText = (1 << 0), // True if simplifier is inside TrueType text processing.
82 kSimplFillModeDisabled = (1 << 1), // True if shell/mesh primitives must be filled during vectorization.
83 kSimplEyeSpaceSilhs = (1 << 2), // Enables silhouettes processing in ECS (Eye Space).
84 kSimplEdgeVisible = (1 << 3), // Indexed polylineOut() call represents visible edge.
85 kSimplEdgeSilhouette = (1 << 4), // Indexed polylineOut() call represents silhouette edge.
86 kSimplNoFaceNormals = (1 << 5), // Disable normals passing in triangleOut() for non-triangle faces.
87 kSimplGenTrgNormals = (1 << 6), // Enable triangleOut() normals generation.
88 kSimplLastFlag = kSimplGenTrgNormals
89 ,kZInverted = (1 << 30) //FELIX_CHANGE
90 ,kDiscardBackFaces = (1 << 31) //FELIX_CHANGE
91 };
93private:
94 OdInt32 m_nVertexCount;
95 const OdGePoint3d* m_pVertexList;
96 const OdGiVertexData* m_pVertexData;
97 OdGePoint2dArray m_loopsPnts;
98 OdGePoint3dArray m_points3d1; // for shellProc/plineProc level
99 OdGePoint3dArray m_points3d2; // for triangleOut/polylineOut level
100protected:
104
111 double deviation(const OdGiDeviationType deviationType, const OdGePoint3d& pointOnCurve) const;
112
119 bool fillMode();
120 bool fillMode(bool& drawEdges);
121 bool fillMode(bool& drawEdges, bool& secColor);
123 bool shmFillMode(bool& drawEdges);
124 bool shmFillMode(bool& drawEdges, bool& secColor);
125
129 bool processingText() const { return GETBIT(m_simplFlags, kSimplProcessingText); }
130
134 bool silhouettesProcessingInEyeSpace() const { return GETBIT(m_simplFlags, kSimplEyeSpaceSilhs); }
138 void enableSilhouettesProcessingInEyeSpace(bool bEnable) { SETBIT(m_simplFlags, kSimplEyeSpaceSilhs, bEnable); }
139
143 OdGiContext& giCtx() const { return const_cast<OdGiContext&>(m_pDrawCtx->giContext()); }
144
152 virtual bool plineArcSegmentsAsArcProc(OdUInt32 drawContextFlags) const;
153public:
156
170 void setDeviation(const OdGeDoubleArray& deviations);
171
178 void setDeviation(const OdGiDeviation* pDeviation);
179
200 OdGsView::RenderMode renderMode() { return m_renderMode; }
201
210
217 OdGiConveyorContext* drawContext( ) { return m_pDrawCtx; }
218
225 const OdGiConveyorContext* drawContext( ) const { return m_pDrawCtx; }
226
241 virtual void polylineOut(OdInt32 numPoints, const OdGePoint3d* vertexList);
242
256 virtual void polygonOut(OdInt32 numPoints,
257 const OdGePoint3d* vertexList,
258 const OdGeVector3d* pNormal = 0);
259
270 void setVertexData(OdInt32 numVertices,
271 const OdGePoint3d* vertexList,
272 const OdGiVertexData* pVertexData = 0);
273
281 {
282 return m_nVertexCount;
283 }
284
292 {
293 return m_pVertexList;
294 }
295
303 {
304 return m_pVertexData;
305 }
306
314 {
315 return m_baseSubEntMarker;
316 }
317
325 {
326 return (GETBIT(m_simplFlags, kSimplEdgeVisible)) ? kOdGiVisible :
327 ((GETBIT(m_simplFlags, kSimplEdgeSilhouette)) ? kOdGiSilhouette : kOdGiInvisible);
328 }
329
352 virtual void plineProc(const OdGiPolyline& polyline,
353 const OdGeMatrix3d* pXfm = 0,
354 OdUInt32 fromIndex = 0,
355 OdUInt32 numSegs = 0);
356
375 virtual void polylineProc(OdInt32 numPoints,
376 const OdGePoint3d* vertexList,
377 const OdGeVector3d* pNormal = 0,
378 const OdGeVector3d* pExtrusion = 0,
379 OdGsMarker baseSubEntMarker = -1);
380
396 virtual void polygonProc(OdInt32 numPoints,
397 const OdGePoint3d* vertexList,
398 const OdGeVector3d* pNormal = 0,
399 const OdGeVector3d* pExtrusion = 0);
400
411 virtual void xlineProc(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint);
412
423 virtual void rayProc(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint);
424
443 virtual void meshProc(OdInt32 numRows,
444 OdInt32 numColumns,
445 const OdGePoint3d* vertexList,
446 const OdGiEdgeData* pEdgeData = 0,
447 const OdGiFaceData* pFaceData = 0,
448 const OdGiVertexData* pVertexData = 0);
449
469 virtual void generateMeshWires(OdInt32 numRows,
470 OdInt32 numColumns,
471 const OdGiEdgeData* pEdgeData,
472 const OdGiFaceData* pFaceData);
473
492 virtual void generateMeshFaces(OdInt32 numRows, OdInt32 numColumns,
493 const OdGiFaceData* pFaceData);
494
502 virtual void meshFaceOut(const OdInt32* faceList, const OdGeVector3d* pNormal);
503
504
519 virtual void filledShellProc(
520 const OdGePoint3d* vertexList,
521 OdInt32 faceListSize,
522 const OdInt32* faceList,
523 const OdGiEdgeData* pEdgeData = 0,
524 const OdGiFaceData* pFaceData = 0);
525
526
546 virtual void shellProc(OdInt32 numVertices,
547 const OdGePoint3d* vertexList,
548 OdInt32 faceListSize,
549 const OdInt32* faceList,
550 const OdGiEdgeData* pEdgeData = 0,
551 const OdGiFaceData* pFaceData = 0,
552 const OdGiVertexData* pVertexData = 0);
553
573 virtual void generateShellWires(OdInt32 faceListSize,
574 const OdInt32* faceList,
575 const OdGiEdgeData* pEdgeData = 0,
576 const OdGiFaceData* pFaceData = 0);
577
597 virtual void generateShellFaces(OdInt32 faceListSize,
598 const OdInt32* faceList,
599 const OdGiEdgeData* pEdgeData = 0,
600 const OdGiFaceData* pFaceData = 0);
601
620 virtual void shellFaceOut(OdInt32 faceListSize,
621 const OdInt32* faceList,
622 const OdGeVector3d* pNormal);
623
638 virtual void triangleOut(const OdInt32* vertices,
639 const OdGeVector3d* pNormal);
640
659 virtual void generateShellFacets(OdInt32 faceListSize,
660 const OdInt32* faceList,
661 const OdGiFaceData* pFaceData = 0,
662 OdInt32 maxFacetSize = 3);
663
680 virtual void facetOut(const OdInt32* faceList,
681 const OdInt32* edgeIndices,
682 const OdGeVector3d* pNormal);
683
699 virtual void circleProc(const OdGePoint3d& center,
700 double radius,
701 const OdGeVector3d& normal,
702 const OdGeVector3d* pExtrusion = 0);
703
715 void circleProc2(const OdGePoint3d& center, double radius,
716 const OdGeVector3d& normal, const OdGeVector3d& startVector,
717 const OdGeVector3d* pExtrusion = 0);
718
729 virtual void circleProc(const OdGePoint3d& firstPoint,
730 const OdGePoint3d& secondPoint,
731 const OdGePoint3d& thirdPoint,
732 const OdGeVector3d* pExtrusion = 0);
733
762 virtual void circularArcProc(const OdGePoint3d& center,
763 double radius,
764 const OdGeVector3d& normal,
765 const OdGeVector3d& startVector,
766 double sweepAngle,
767 OdGiArcType arcType = kOdGiArcSimple,
768 const OdGeVector3d* pExtrusion = 0);
769
796 virtual void circularArcProc(const OdGePoint3d& firstPoint,
797 const OdGePoint3d& secondPoint,
798 const OdGePoint3d& thirdPoint,
799 OdGiArcType arcType = kOdGiArcSimple,
800 const OdGeVector3d* pExtrusion = 0);
801
822 virtual void textProc(const OdGePoint3d& position,
823 const OdGeVector3d& u,
824 const OdGeVector3d& v,
825 const OdChar* msg,
827 bool raw,
828 const OdGiTextStyle* pTextStyle,
829 const OdGeVector3d* pExtrusion = 0);
830
852 virtual void textProc2(const OdGePoint3d& position,
853 const OdGeVector3d& u, const OdGeVector3d& v,
854 const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle,
855 const OdGeVector3d* pExtrusion = 0, const OdGeExtents3d* extentsBox = 0);
856
873 virtual void shapeProc(const OdGePoint3d& position,
874 const OdGeVector3d& direction,
875 const OdGeVector3d& upVector,
876 int shapeNumber,
877 const OdGiTextStyle* pTextStyle,
878 const OdGeVector3d* pExtrusion = 0);
879
892 virtual void nurbsProc(const OdGeNurbCurve3d& nurbsCurve);
893
909 virtual void ellipArcProc(
910 const OdGeEllipArc3d& ellipArc,
911 const OdGePoint3d* endPointOverrides = 0,
912 OdGiArcType arcType = kOdGiArcSimple,
913 const OdGeVector3d* pExtrusion = 0);
914
928 virtual bool ellipArcProc(const OdGeEllipArc3d& ellipArc, double width);
929
949 virtual void rasterImageProc(const OdGePoint3d& origin,
950 const OdGeVector3d& u,
951 const OdGeVector3d& v,
952 const OdGiRasterImage* pImage,
953 const OdGePoint2d* uvBoundary,
954 OdUInt32 numBoundPts,
955 bool transparency = false,
956 double brightness = 50.0,
957 double contrast = 50.0,
958 double fade = 0.0);
959
972 virtual void initTexture(const OdGePoint3d& origin,
973 const OdGeVector3d& u,
974 const OdGeVector3d& v,
975 const OdGiRasterImage* pImage,
976 bool transparency,
977 double brightness,
978 double contrast,
979 double fade);
980
984 virtual void uninitTexture();
985
996 virtual void metafileProc(const OdGePoint3d& origin,
997 const OdGeVector3d& u,
998 const OdGeVector3d& v,
999 const OdGiMetafile* pMetafile,
1000 bool dcAligned = true,
1001 bool allowClipping = false);
1002
1019 virtual void polypointProc(OdInt32 numPoints,
1020 const OdGePoint3d* vertexList,
1021 const OdCmEntityColor* pColors,
1022 const OdCmTransparency* pTransparency = 0,
1023 const OdGeVector3d* pNormals = 0,
1024 const OdGeVector3d* pExtrusions = 0,
1025 const OdGsMarker* pSubEntMarkers = 0,
1026 OdInt32 nPointSize = 0);
1027
1040 virtual void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
1041
1053 virtual void pointCloudProc(const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter = NULL);
1054
1067 virtual void edgeProc(const OdGiEdge2dArray& edges, const OdGeMatrix3d* pXform = 0);
1068
1083 virtual void polylineOut(OdInt32 numPoints, const OdInt32* vertexIndexList);
1084
1101 OdInt32 rows, OdInt32 columns,
1102 const OdGePoint3d* pVertexList,
1103 const OdGiEdgeData* pEdgeData,
1104 const OdGiFaceData* pFaceData,
1105 const OdGiVertexData* pVertexData);
1106
1125 virtual void ttfPolyDrawProc(
1126 OdInt32 numVertices, const OdGePoint3d* vertexList,
1127 OdInt32 faceListSize, const OdInt32* faceList,
1128 const OdUInt8* pBezierTypes, const OdGiFaceData* pFaceData = 0);
1129
1143 void subdivideShellByVertexLimit(OdInt32 numVertices, const OdGePoint3d* vertexList,
1144 OdInt32 faceListSize, const OdInt32* faceList,
1145 const OdGiEdgeData* pEdgeData, const OdGiFaceData* pFaceData,
1146 const OdGiVertexData* pVertexData, OdUInt32 nLimit);
1147
1148
1163 OdDouble& fillDensity,
1164 const OdGePoint3d* pVertexList,
1165 OdInt32 faceListSize,
1166 const OdInt32* pFaceList,
1167 const OdGiFaceData* pFaceData = 0,
1168 OdGiMapperItemEntry* pMapper = 0
1169 );
1170
1171protected:
1172 // Pline primitive generation helpers
1173 bool jointLineWithArc(const OdGiPolyline& lwBuf, OdInt32 LineSegNo, OdInt32 ArcSegNo, OdGePoint3dArray& points);
1174 bool jointLineWithLine(const OdGiPolyline& lwBuf, OdInt32 LineSegNo1, OdInt32 LineSegNo2, OdGePoint3dArray& points);
1175 bool jointArcWithLine(const OdGiPolyline& lwBuf, OdGeCircArc2d& arc, OdInt32 arcSegNo, OdInt32 lineSegNo,
1176 OdGePoint3d& point1, OdGePoint3d& point2);
1177 // Mesh primitive generation helpers
1179 void generateMeshVertexNormals(OdInt32 numRows, OdInt32 numCols, const OdGePoint3d *pVertexList, const OdGiVertexData *pVertexData,
1180 OdGiVertexData &vertexData, OdGeVector3dArray &normals);
1181 // Indexed polylineOut helper
1182 inline void polylineOut(OdInt32 numPoints, const OdInt32* vertexIndexList, const OdGiEdgeData* pEdgeData, OdInt32 nEdgeIndex)
1183 {
1184 if (pEdgeData && pEdgeData->visibility())
1185 { const OdUInt8 edgeVisibility = pEdgeData->visibility()[nEdgeIndex];
1186 SETBIT(m_simplFlags, kSimplEdgeVisible, edgeVisibility == kOdGiVisible);
1187 SETBIT(m_simplFlags, kSimplEdgeSilhouette, edgeVisibility == kOdGiSilhouette);
1188 }
1189 polylineOut(numPoints, vertexIndexList);
1190 // Restore default flags state
1191 SETBIT_0(m_simplFlags, kSimplEdgeSilhouette);
1192 SETBIT_1(m_simplFlags, kSimplEdgeVisible);
1193 }
1194 // Block of internal optimizations
1196 OdGeLineSeg2d *m_pLineSeg2dEx[2]; OdGeLineSeg2d &tmpLineSeg2dEx(int n);
1197 OdGeLine2d *m_pLine2dEx[4]; OdGeLine2d &tmpLine2dEx(int n);
1201 OdGePoint3dArray &tmpPoints3d(int nLevel) { return (!nLevel) ? m_points3d1 : m_points3d2; }
1202};
1203
1211{
1222 OdGiFillType fillType = kOdGiFillNever);
1223
1231 void set(OdDb::LineWeight lweight, OdGiFillType fillType, const OdGeVector3d* fillNormal);
1232
1237
1244};
1245
1246#include "TD_PackPop.h"
1247
1248#endif //#ifndef __ODGIGEOMETRYSIMPLIFIER_H__
double OdDouble
Definition: DoubleArray.h:31
OdGiFillType
Definition: Gi.h:42
@ kOdGiFillNever
Definition: Gi.h:44
OdGiVisibility
Definition: Gi.h:48
@ kOdGiSilhouette
Definition: Gi.h:51
@ kOdGiInvisible
Definition: Gi.h:49
@ kOdGiVisible
Definition: Gi.h:50
OdGiDeviationType
Definition: GiCommonDraw.h:65
#define ODGI_EXPORT
Definition: GiExport.h:35
OdGiArcType
Definition: GiGeometry.h:787
@ kOdGiArcSimple
Definition: GiGeometry.h:788
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
unsigned char OdUInt8
wchar_t OdChar
#define SETBIT(flags, bit, value)
Definition: OdaDefs.h:516
#define SETBIT_0(flags, bit)
Definition: OdaDefs.h:519
#define GETBIT(flags, bit)
Definition: OdaDefs.h:517
#define SETBIT_1(flags, bit)
Definition: OdaDefs.h:520
virtual OdGiContext & giContext() const =0
const OdUInt8 * visibility() const
Definition: GiGeometry.h:260
virtual void generateShellFacets(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiFaceData *pFaceData=0, OdInt32 maxFacetSize=3)
bool shmFillMode(bool &drawEdges)
bool silhouettesProcessingInEyeSpace() const
const OdGePoint3d * vertexDataList() const
virtual bool generateShellFill(OdGiHatchPatternPtr pHatch, OdDouble &fillDensity, const OdGePoint3d *pVertexList, OdInt32 faceListSize, const OdInt32 *pFaceList, const OdGiFaceData *pFaceData=0, OdGiMapperItemEntry *pMapper=0)
virtual void nurbsProc(const OdGeNurbCurve3d &nurbsCurve)
virtual void facetOut(const OdInt32 *faceList, const OdInt32 *edgeIndices, const OdGeVector3d *pNormal)
virtual void generateShellFaces(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
virtual void shellFaceOut(OdInt32 faceListSize, const OdInt32 *faceList, const OdGeVector3d *pNormal)
virtual void textProc2(const OdGePoint3d &position, const OdGeVector3d &u, const OdGeVector3d &v, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0, const OdGeExtents3d *extentsBox=0)
bool isMeshRequireVertexNormals(const OdGiVertexData *pVertexData)
bool fillMode(bool &drawEdges, bool &secColor)
OdGsView::RenderMode m_renderMode
OdGePoint3dArray & tmpPoints3d(int nLevel)
void subdivideShellByVertexLimit(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData, const OdGiVertexData *pVertexData, OdUInt32 nLimit)
virtual void generateShellWires(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
virtual void circularArcProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
virtual void plineProc(const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
virtual void generateMeshWires(OdInt32 numRows, OdInt32 numColumns, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData)
void drawTypedArc(OdGiArcType arcType, const OdGePoint3d &center, OdGePoint3dArray &points, const OdGeVector3d *pNormal, const OdGeVector3d *pExtrusion)
bool jointLineWithArc(const OdGiPolyline &lwBuf, OdInt32 LineSegNo, OdInt32 ArcSegNo, OdGePoint3dArray &points)
virtual void pointCloudProc(const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter=NULL)
virtual void polygonOut(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0)
void enableSilhouettesProcessingInEyeSpace(bool bEnable)
OdGsView::RenderMode renderMode()
virtual void triangleOut(const OdInt32 *vertices, const OdGeVector3d *pNormal)
virtual void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
virtual void meshFaceOut(const OdInt32 *faceList, const OdGeVector3d *pNormal)
virtual void circularArcProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
const OdGiConveyorContext * drawContext() const
virtual void metafileProc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)
const OdGiDeviation * m_pDeviation
OdGiConveyorContext * m_pDrawCtx
virtual void xlineProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
virtual void rasterImageProc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiRasterImage *pImage, const OdGePoint2d *uvBoundary, OdUInt32 numBoundPts, bool transparency=false, double brightness=50.0, double contrast=50.0, double fade=0.0)
virtual void polylineOut(OdInt32 numPoints, const OdGePoint3d *vertexList)
bool shmFillMode(bool &drawEdges, bool &secColor)
virtual void filledShellProc(const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
OdGsMarker baseSubEntMarker() const
virtual void shellProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
virtual void polypointProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors, const OdCmTransparency *pTransparency=0, const OdGeVector3d *pNormals=0, const OdGeVector3d *pExtrusions=0, const OdGsMarker *pSubEntMarkers=0, OdInt32 nPointSize=0)
virtual void rayProc(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
OdGiSubEntityTraits * m_pTraits
OdGiContext & giCtx() const
virtual void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
void polylineOut(OdInt32 numPoints, const OdInt32 *vertexIndexList, const OdGiEdgeData *pEdgeData, OdInt32 nEdgeIndex)
virtual bool plineArcSegmentsAsArcProc(OdUInt32 drawContextFlags) const
virtual void textProc(const OdGePoint3d &position, const OdGeVector3d &u, const OdGeVector3d &v, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
void setDeviation(const OdGiDeviation *pDeviation)
virtual bool ellipArcProc(const OdGeEllipArc3d &ellipArc, double width)
virtual void shapeProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
const OdGiVertexData * vertexData() const
virtual void polygonProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)
void setVertexData(OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGiVertexData *pVertexData=0)
OdGiConveyorContext * drawContext()
virtual void circleProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)
double deviation(const OdGiDeviationType deviationType, const OdGePoint3d &pointOnCurve) const
void generateMeshVertexNormals(OdInt32 numRows, OdInt32 numCols, const OdGePoint3d *pVertexList, const OdGiVertexData *pVertexData, OdGiVertexData &vertexData, OdGeVector3dArray &normals)
void setDrawContext(OdGiConveyorContext *pDrawCtx)
bool jointArcWithLine(const OdGiPolyline &lwBuf, OdGeCircArc2d &arc, OdInt32 arcSegNo, OdInt32 lineSegNo, OdGePoint3d &point1, OdGePoint3d &point2)
void circleProc2(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, const OdGeVector3d *pExtrusion=0)
void setDeviation(const OdGeDoubleArray &deviations)
virtual void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
OdGiVisibility polylineOutEdgeVisibility() const
virtual void circleProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)
virtual void edgeProc(const OdGiEdge2dArray &edges, const OdGeMatrix3d *pXform=0)
virtual void initTexture(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiRasterImage *pImage, bool transparency, double brightness, double contrast, double fade)
virtual void generateMeshFaces(OdInt32 numRows, OdInt32 numColumns, const OdGiFaceData *pFaceData)
virtual void polylineOut(OdInt32 numPoints, const OdInt32 *vertexIndexList)
virtual void ellipArcProc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
bool jointLineWithLine(const OdGiPolyline &lwBuf, OdInt32 LineSegNo1, OdInt32 LineSegNo2, OdGePoint3dArray &points)
virtual void uninitTexture()
void convertMeshToShell(OdInt32 rows, OdInt32 columns, const OdGePoint3d *pVertexList, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData, const OdGiVertexData *pVertexData)
virtual void ttfPolyDrawProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdUInt8 *pBezierTypes, const OdGiFaceData *pFaceData=0)
bool fillMode(bool &drawEdges)
Definition: GiMapperItem.h:52
RenderMode
Definition: Gs.h:148
GLint GLenum GLsizei width
Definition: gles2_ext.h:110
const GLfloat * v
Definition: gles2_ext.h:315
GLuint GLsizei GLsizei * length
Definition: gles2_ext.h:274
LineWeight
Definition: OdaDefs.h:386
@ kLnWt000
Definition: OdaDefs.h:387
OdGeVector3d * m_pFillNormal
OdGiSubEntityTraits * m_pTraits
void set(OdDb::LineWeight lweight, OdGiFillType fillType, const OdGeVector3d *fillNormal)
OdGeVector3d m_fillNormal
OdDb::LineWeight m_lweight
OdGiConveyorContext * m_pDrawCtx
OdGiFillData(OdGiConveyorContext *pDrawCtx, OdGiSubEntityTraits *pTraits, OdDb::LineWeight lweight=OdDb::kLnWt000, OdGiFillType fillType=kOdGiFillNever)
OdGiFillType m_fillType