CFx SDK Documentation  2022 SP0
GiGeometrySimplifier.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 __ODGIGEOMETRYSIMPLIFIER_H__
25 #define __ODGIGEOMETRYSIMPLIFIER_H__
26 
27 #include "Gi/GiFill.h"
28 #include "Gi/GiMapperItem.h"
29 #include "Gi/GiExport.h"
30 #include "Gi/GiConveyorGeometry.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 
37 class OdGiDeviation;
38 
39 class OdGeLineSeg2d;
40 class OdGeLine2d;
41 class OdGeCircArc2d;
42 class OdGeCircArc3d;
43 class 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*);
63 protected:
72  void drawTypedArc(OdGiArcType arcType, const OdGePoint3d& center,
73  OdGePoint3dArray& points, const OdGeVector3d* pNormal, const OdGeVector3d* pExtrusion);
74 protected:
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  kSimplLastFlag = kSimplEyeSpaceSilhs
85  ,kZInverted = (1 << 30) //FELIX_CHANGE
86  ,kDiscardBackFaces = (1 << 31) //FELIX_CHANGE
87  };
89 private:
90  OdInt32 m_nVertexCount;
91  const OdGePoint3d* m_pVertexList;
92  const OdGiVertexData* m_pVertexData;
93  OdGePoint2dArray m_loopsPnts;
94  OdGePoint3dArray m_points3d1; // for shellProc/plineProc level
95  OdGePoint3dArray m_points3d2; // for triangleOut/polylineOut level
96 protected:
100 
107  double deviation(const OdGiDeviationType deviationType, const OdGePoint3d& pointOnCurve) const;
108 
115  bool fillMode();
116  bool fillMode(bool& drawEdges);
117  bool fillMode(bool& drawEdges, bool& secColor);
119  bool shmFillMode(bool& drawEdges);
120  bool shmFillMode(bool& drawEdges, bool& secColor);
121 
125  bool processingText() const { return GETBIT(m_simplFlags, kSimplProcessingText); }
126 
130  bool silhouettesProcessingInEyeSpace() const { return GETBIT(m_simplFlags, kSimplEyeSpaceSilhs); }
134  void enableSilhouettesProcessingInEyeSpace(bool bEnable) { SETBIT(m_simplFlags, kSimplEyeSpaceSilhs, bEnable); }
135 
139  OdGiContext& giCtx() const { return const_cast<OdGiContext&>(m_pDrawCtx->giContext()); }
140 
148  virtual bool plineArcSegmentsAsArcProc(OdUInt32 drawContextFlags) const;
149 public:
152 
167  void setDeviation(const OdGeDoubleArray& deviations);
168 
175  void setDeviation(const OdGiDeviation* pDeviation);
176 
195  OdGsView::RenderMode renderMode() { return m_renderMode; }
196 
205 
209  OdGiConveyorContext* drawContext( ) { return m_pDrawCtx; }
210  const OdGiConveyorContext* drawContext( ) const { return m_pDrawCtx; }
211 
225  virtual void polylineOut(OdInt32 numPoints, const OdGePoint3d* vertexList);
226 
238  virtual void polygonOut(OdInt32 numPoints,
239  const OdGePoint3d* vertexList,
240  const OdGeVector3d* pNormal = 0);
241 
255  void setVertexData(OdInt32 numVertices,
256  const OdGePoint3d* vertexList,
257  const OdGiVertexData* pVertexData = 0);
258 
263  {
264  return m_nVertexCount;
265  }
266 
271  {
272  return m_pVertexList;
273  }
274 
278  const OdGiVertexData* vertexData() const
279  {
280  return m_pVertexData;
281  }
282 
287  {
288  return m_baseSubEntMarker;
289  }
290 
311  virtual void plineProc(const OdGiPolyline& polyline,
312  const OdGeMatrix3d* pXfm = 0,
313  OdUInt32 fromIndex = 0,
314  OdUInt32 numSegs = 0);
315 
325  virtual void polylineProc(OdInt32 numPoints,
326  const OdGePoint3d* vertexList,
327  const OdGeVector3d* pNormal = 0,
328  const OdGeVector3d* pExtrusion = 0,
329  OdGsMarker baseSubEntMarker = -1);
330 
337  virtual void polygonProc(OdInt32 numPoints,
338  const OdGePoint3d* vertexList,
339  const OdGeVector3d* pNormal = 0,
340  const OdGeVector3d* pExtrusion = 0);
341 
345  virtual void xlineProc(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint);
346 
350  virtual void rayProc(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint);
351 
359  virtual void meshProc(OdInt32 numRows,
360  OdInt32 numColumns,
361  const OdGePoint3d* vertexList,
362  const OdGiEdgeData* pEdgeData = 0,
363  const OdGiFaceData* pFaceData = 0,
364  const OdGiVertexData* pVertexData = 0);
365 
387  virtual void generateMeshWires(OdInt32 numRows,
388  OdInt32 numColumns,
389  const OdGiEdgeData* pEdgeData,
390  const OdGiFaceData* pFaceData);
391 
412  virtual void generateMeshFaces(OdInt32 numRows, OdInt32 numColumns,
413  const OdGiFaceData* pFaceData);
414 
422  virtual void meshFaceOut(const OdInt32* faceList, const OdGeVector3d* pNormal);
423 
431  virtual void shellProc(OdInt32 numVertices,
432  const OdGePoint3d* vertexList,
433  OdInt32 faceListSize,
434  const OdInt32* faceList,
435  const OdGiEdgeData* pEdgeData = 0,
436  const OdGiFaceData* pFaceData = 0,
437  const OdGiVertexData* pVertexData = 0);
438 
460  virtual void generateShellWires(OdInt32 faceListSize,
461  const OdInt32* faceList,
462  const OdGiEdgeData* pEdgeData = 0,
463  const OdGiFaceData* pFaceData = 0);
464 
486  virtual void generateShellFaces(OdInt32 faceListSize,
487  const OdInt32* faceList,
488  const OdGiEdgeData* pEdgeData = 0,
489  const OdGiFaceData* pFaceData = 0);
490 
511  virtual void shellFaceOut(OdInt32 faceListSize,
512  const OdInt32* faceList,
513  const OdGeVector3d* pNormal);
514 
531  virtual void triangleOut(const OdInt32* vertices,
532  const OdGeVector3d* pNormal);
533 
554  virtual void generateShellFacets(OdInt32 faceListSize,
555  const OdInt32* faceList,
556  const OdGiFaceData* pFaceData = 0,
557  OdInt32 maxFacetSize = 3);
558 
576  virtual void facetOut(const OdInt32* faceList,
577  const OdInt32* edgeIndices,
578  const OdGeVector3d* pNormal);
579 
586  virtual void circleProc(const OdGePoint3d& center,
587  double radius,
588  const OdGeVector3d& normal,
589  const OdGeVector3d* pExtrusion = 0);
590 
591  virtual void circleProc(const OdGePoint3d& firstPoint,
592  const OdGePoint3d& secondPoint,
593  const OdGePoint3d& thirdPoint,
594  const OdGeVector3d* pExtrusion = 0);
595 
603  virtual void circularArcProc(const OdGePoint3d& center,
604  double radius,
605  const OdGeVector3d& normal,
606  const OdGeVector3d& startVector,
607  double sweepAngle,
608  OdGiArcType arcType = kOdGiArcSimple,
609  const OdGeVector3d* pExtrusion = 0);
610 
611  virtual void circularArcProc(const OdGePoint3d& firstPoint,
612  const OdGePoint3d& secondPoint,
613  const OdGePoint3d& thirdPoint,
614  OdGiArcType arcType = kOdGiArcSimple,
615  const OdGeVector3d* pExtrusion = 0);
616 
624  virtual void textProc(const OdGePoint3d& position,
625  const OdGeVector3d& u,
626  const OdGeVector3d& v,
627  const OdChar* msg,
628  OdInt32 length,
629  bool raw,
630  const OdGiTextStyle* pTextStyle,
631  const OdGeVector3d* pExtrusion = 0);
632  virtual void textProc2(const OdGePoint3d& position,
633  const OdGeVector3d& u, const OdGeVector3d& v,
634  const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle,
635  const OdGeVector3d* pExtrusion = 0, const OdGeExtents3d* extentsBox = 0);
636 
644  virtual void shapeProc(const OdGePoint3d& position,
645  const OdGeVector3d& direction,
646  const OdGeVector3d& upVector,
647  int shapeNumber,
648  const OdGiTextStyle* pTextStyle,
649  const OdGeVector3d* pExtrusion = 0);
650 
657  virtual void nurbsProc(const OdGeNurbCurve3d& nurbsCurve);
658 
665  virtual void ellipArcProc(
666  const OdGeEllipArc3d& ellipArc,
667  const OdGePoint3d* endPointOverrides = 0,
668  OdGiArcType arcType = kOdGiArcSimple,
669  const OdGeVector3d* pExtrusion = 0);
670 
677  virtual bool ellipArcProc(const OdGeEllipArc3d& ellipArc, double width);
678 
682  virtual void rasterImageProc(const OdGePoint3d& origin,
683  const OdGeVector3d& u,
684  const OdGeVector3d& v,
685  const OdGiRasterImage* pImage,
686  const OdGePoint2d* uvBoundary,
687  OdUInt32 numBoundPts,
688  bool transparency = false,
689  double brightness = 50.0,
690  double contrast = 50.0,
691  double fade = 0.0);
692 
705  virtual void initTexture(const OdGePoint3d& origin,
706  const OdGeVector3d& u,
707  const OdGeVector3d& v,
708  const OdGiRasterImage* pImage,
709  bool transparency,
710  double brightness,
711  double contrast,
712  double fade);
713 
717  virtual void uninitTexture();
718 
722  virtual void metafileProc(const OdGePoint3d& origin,
723  const OdGeVector3d& u,
724  const OdGeVector3d& v,
725  const OdGiMetafile* pMetafile,
726  bool dcAligned = true,
727  bool allowClipping = false);
728 
734  virtual void polypointProc(OdInt32 numPoints,
735  const OdGePoint3d* vertexList,
736  const OdCmEntityColor* pColors,
737  const OdCmTransparency* pTransparency = 0,
738  const OdGeVector3d* pNormals = 0,
739  const OdGeVector3d* pExtrusions = 0,
740  const OdGsMarker* pSubEntMarkers = 0,
741  OdInt32 nPointSize = 0);
742 
748  virtual void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
749 
756  virtual void edgeProc(const OdGiEdge2dArray& edges, const OdGeMatrix3d* pXform = 0);
757 
771  virtual void polylineOut(OdInt32 numPoints, const OdInt32* vertexIndexList);
772 
778  OdInt32 rows, OdInt32 columns,
779  const OdGePoint3d* pVertexList,
780  const OdGiEdgeData* pEdgeData,
781  const OdGiFaceData* pFaceData,
782  const OdGiVertexData* pVertexData);
783 
790  virtual void ttfPolyDrawProc(
791  OdInt32 numVertices, const OdGePoint3d* vertexList,
792  OdInt32 faceListSize, const OdInt32* faceList,
793  const OdUInt8* pBezierTypes, const OdGiFaceData* pFaceData = 0);
794 
799  void subdivideShellByVertexLimit(OdInt32 numVertices, const OdGePoint3d* vertexList,
800  OdInt32 faceListSize, const OdInt32* faceList,
801  const OdGiEdgeData* pEdgeData, const OdGiFaceData* pFaceData,
802  const OdGiVertexData* pVertexData, OdUInt32 nLimit);
803 
804 
809  const OdGePoint3d* pVertexList,
810  OdInt32 faceListSize,
811  const OdInt32* pFaceList,
812  const OdGiFaceData* pFaceData = 0,
813  OdGiMapperItemEntry* pMapper = 0
814  );
815 
816 protected:
817  // Pline primitive generation helpers
818  bool jointLineWithArc(const OdGiPolyline& lwBuf, OdInt32 LineSegNo, OdInt32 ArcSegNo, OdGePoint3dArray& points);
819  bool jointLineWithLine(const OdGiPolyline& lwBuf, OdInt32 LineSegNo1, OdInt32 LineSegNo2, OdGePoint3dArray& points);
820  bool jointArcWithLine(const OdGiPolyline& lwBuf, OdGeCircArc2d& arc, OdInt32 arcSegNo, OdInt32 lineSegNo,
821  OdGePoint3d& point1, OdGePoint3d& point2);
822  // Mesh primitive generation helpers
823  bool isMeshRequireVertexNormals(const OdGiVertexData *pVertexData);
824  void generateMeshVertexNormals(OdInt32 numRows, OdInt32 numCols, const OdGePoint3d *pVertexList, const OdGiVertexData *pVertexData,
825  OdGiVertexData &vertexData, OdGeVector3dArray &normals);
826  // Block of internal optimizations
828  OdGeLineSeg2d *m_pLineSeg2dEx[2]; OdGeLineSeg2d &tmpLineSeg2dEx(int n);
829  OdGeLine2d *m_pLine2dEx[4]; OdGeLine2d &tmpLine2dEx(int n);
833  OdGePoint3dArray &tmpPoints3d(int nLevel) { return (!nLevel) ? m_points3d1 : m_points3d2; }
834 };
835 
843 {
846  OdGiFillType fillType = kOdGiFillNever);
847  void set(OdDb::LineWeight lweight, OdGiFillType fillType, const OdGeVector3d* fillNormal);
849 
856 };
857 
858 #include "TD_PackPop.h"
859 
860 #endif //#ifndef __ODGIGEOMETRYSIMPLIFIER_H__
OdGiFillType
Definition: Gi.h:40
@ kOdGiFillNever
Definition: Gi.h:42
OdGiDeviationType
Definition: GiCommonDraw.h:64
#define ODGI_EXPORT
Definition: GiExport.h:35
OdGiArcType
Definition: GiGeometry.h:683
@ kOdGiArcSimple
Definition: GiGeometry.h:684
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
unsigned char OdUInt8
wchar_t OdChar
#define SETBIT(flags, bit, value)
Definition: OdaDefs.h:497
#define GETBIT(flags, bit)
Definition: OdaDefs.h:498
virtual OdGiContext & giContext() const =0
virtual void generateShellFacets(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiFaceData *pFaceData=0, OdInt32 maxFacetSize=3)
bool shmFillMode(bool &drawEdges)
bool silhouettesProcessingInEyeSpace() const
OdGeEllipArc3d * m_pEllipArc3d
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
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 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)
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)
const OdGePoint3d * vertexDataList() const
const OdGiConveyorContext * drawContext() const
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
virtual void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
OdGiConveyorContext * drawContext()
OdGePoint3dArray & tmpPoints3d(int nLevel)
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)
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)
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)
OdGiContext & giCtx() const
void setDeviation(const OdGeDoubleArray &deviations)
virtual void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
virtual void generateShellFill(OdGiHatchPatternPtr pHatch, const OdGePoint3d *pVertexList, OdInt32 faceListSize, const OdInt32 *pFaceList, const OdGiFaceData *pFaceData=0, OdGiMapperItemEntry *pMapper=0)
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)
const OdGiVertexData * vertexData() const
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:138
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:382
@ kLnWt000
Definition: OdaDefs.h:383
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