CFx SDK Documentation  2022 SP0
GiConveyorGeometry.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 __ODGICONVEYORGEOMETRY_H__
25 #define __ODGICONVEYORGEOMETRY_H__
26 
27 #include "Gi/GiGeometry.h"
28 #include "Gi/GiCommonDraw.h"
29 #include "Gs/GsSelectionReactor.h"
31 
32 class OdGiRasterImage;
33 class OdGiMetafile;
34 class OdGiViewport;
35 class OdGsView;
36 class OdGiCommonDraw;
37 class OdGiDeviation;
38 class OdGeExtents3d;
39 class OdGeBoundBlock3d;
40 
54 {
55 public:
56  virtual ~OdGiConveyorContext() {}
57 
61  virtual OdGiContext& giContext() const = 0;
62 
70  virtual OdGiSubEntityTraits& subEntityTraits() const = 0;
71 
75  virtual const OdGiSubEntityTraitsData& effectiveTraits() const = 0;
76 
82  virtual void setEffectiveTraits(const OdGiSubEntityTraitsData& traits,
83  const OdGeVector3d* fillNormal = NULL) = 0;
84 
88  virtual bool effectivelyVisible() const { return effectiveTraits().visibility(); }
89 
96  virtual const OdGiDrawableDesc* currentDrawableDesc() const = 0;
97 
104  virtual const OdGiDrawable* currentDrawable() const = 0;
105 
109  virtual const OdGiViewport* giViewport() const = 0;
110 
114  virtual const OdGsView* gsView() const = 0;
115 
126  virtual void onTraitsModified() = 0;
127 
135  virtual void onTextProcessing(const OdGePoint3d& /*position*/,
136  const OdGeVector3d& /*direction*/,
137  const OdGeVector3d& /*upVector*/) { }
138 
142  virtual bool regenAbort() const = 0;
143 
147  virtual const OdGiPathNode* currentGiPath() const = 0;
148 
152  virtual const OdGiDeviation& worldDeviation() const = 0;
156  virtual const OdGiDeviation& modelDeviation() const = 0;
160  virtual const OdGiDeviation& eyeDeviation() const = 0;
161 
172 
180 
184  virtual const OdGiLineweightOverride *currentLineweightOverride() const { return NULL; }
185 
187  {
188  // Spatial filter as simplifier
189  kSpatialFilterSimplPline = 1, // Simplify plineProc() by spatial filter
190  kSpatialFilterSimplNurbs = 2, // Simplify nurbsProc() by spatial filter
191  kSpatialFilterSimplText = 4, // Simplify textProc () by spatial filter
192  kSpatialFilterSimplShape = 8, // Simplify shapeProc() by spatial filter
194  kSpatialFilterSimplText | kSpatialFilterSimplShape), // All spatial filter options
195  // Conveyor embranchment as simplifier
196  kEmbranchmentSimplText = 16, // Simplify textProc () by conveyor embranchment
197  kEmbranchmentSimplNurbs = 32, // Simplify nurbsProc() by conveyor embranchment
198  kEmbranchmentSimplAll = (kEmbranchmentSimplText | kEmbranchmentSimplNurbs), // All conveyor embranchment options
200  // Pline subentity markers
201  kPlineMarkers = 64, // Enable subentity markers set per pline() call
202  kForceMarkersOnModified = 128, // Force onTraitsModified call for each subentity marker change
203  // Polyline subentity markers
204  kPolylineMarkers = 256, // Enable subentity markers set per polyline() call
205  // Pline geometry
206  kPlineAllowArcProc = 512, // Vectorizer will draw arc segments of polyline as arcs (otherwise as sample points)
207  // Enable test-specific functionality
208  kTestMode = 1024, // Enable test mode
209  // Specific vectorization mode
210  kLineTyperAfterMetafile = 2048 // Specific mode (for example in GDI device) when the Line type node are follows by the metafile
211  };
215  virtual OdUInt32 drawContextFlags() const { return 0; }
216 
220  virtual double annotationScale() const { return 1.0; }
221 };
222 
230 {
231 protected:
233 public:
237 
238  OdGiContext& giContext() const { return m_pCtx->giContext(); }
242  const OdGeVector3d* fillNormal = NULL) { m_pCtx->setEffectiveTraits(traits, fillNormal); }
243  bool effectivelyVisible() const { return m_pCtx->effectivelyVisible(); }
245  const OdGiDrawable* currentDrawable() const { return m_pCtx->currentDrawable(); }
246  const OdGiViewport* giViewport() const { return m_pCtx->giViewport(); }
247  const OdGsView* gsView() const { return m_pCtx->gsView(); }
249  void onTextProcessing(const OdGePoint3d& position, const OdGeVector3d& direction, const OdGeVector3d& upVector)
250  { m_pCtx->onTextProcessing(position, direction, upVector); }
251  bool regenAbort() const { return m_pCtx->regenAbort(); }
252  const OdGiPathNode* currentGiPath() const { return m_pCtx->currentGiPath(); }
253  const OdGiDeviation& worldDeviation() const { return m_pCtx->worldDeviation(); }
254  const OdGiDeviation& modelDeviation() const { return m_pCtx->modelDeviation(); }
255  const OdGiDeviation& eyeDeviation() const { return m_pCtx->eyeDeviation(); }
260 };
261 
270 {
271 public:
273 
285  virtual void plineProc(const OdGiPolyline& polyline,
286  const OdGeMatrix3d* pXfm = 0,
287  OdUInt32 fromIndex = 0,
288  OdUInt32 numSegs = 0) = 0;
289 
301  virtual void polylineProc(
302  OdInt32 numPoints, const OdGePoint3d* vertexList,
303  const OdGeVector3d* pNormal = 0,
304  const OdGeVector3d* pExtrusion = 0,
305  OdGsMarker baseSubEntMarker = -1) = 0;
306 
307 
308 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
309 #pragma warning (push)
310 #pragma warning (disable: 4481) // Non-standard extension used
311 
312 // The right function prototype was changed (see above). Old one left to cause compilation error
313  virtual void polylineProc(
314  OdInt32 /*numPoints*/, const OdGePoint3d* /*vertexList*/,
315  const OdGeVector3d* /*pNormal*/,
316  const OdGeVector3d* /*pExtrusion*/,
317  OdInt32 /*baseSubEntMarker*/) sealed {ODA_FAIL();}
318 #pragma warning (pop)
319 #endif
320 
332  virtual void polygonProc(
333  OdInt32 numPoints, const OdGePoint3d* vertexList,
334  const OdGeVector3d* pNormal = 0,
335  const OdGeVector3d* pExtrusion = 0) = 0;
336 
345  virtual void xlineProc(
346  const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint) = 0;
347 
358  virtual void rayProc(
359  const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint) = 0;
360 
377  virtual void meshProc(
378  OdInt32 numRows,
379  OdInt32 numColumns,
380  const OdGePoint3d* vertexList,
381  const OdGiEdgeData* pEdgeData = 0,
382  const OdGiFaceData* pFaceData = 0,
383  const OdGiVertexData* pVertexData = 0) = 0;
384 
399  virtual void shellProc(
400  OdInt32 numVertices, const OdGePoint3d* vertexList,
401  OdInt32 faceListSize, const OdInt32* faceList,
402  const OdGiEdgeData* pEdgeData = 0,
403  const OdGiFaceData* pFaceData = 0,
404  const OdGiVertexData* pVertexData = 0) = 0;
405 
416  virtual void circleProc(
417  const OdGePoint3d& center,
418  double radius,
419  const OdGeVector3d& normal,
420  const OdGeVector3d* pExtrusion = 0) = 0;
421 
433  virtual void circleProc(
434  const OdGePoint3d& firstPoint,
435  const OdGePoint3d& secondPoint,
436  const OdGePoint3d& thirdPoint,
437  const OdGeVector3d* pExtrusion = 0) = 0;
438 
465  virtual void circularArcProc(
466  const OdGePoint3d& center,
467  double radius,
468  const OdGeVector3d& normal,
469  const OdGeVector3d& startVector,
470  double sweepAngle,
471  OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0) = 0;
472 
486  virtual void circularArcProc(
487  const OdGePoint3d& firstPoint,
488  const OdGePoint3d& secondPoint,
489  const OdGePoint3d& thirdPoint,
490  OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0) = 0;
491 
513  virtual void ellipArcProc(
514  const OdGeEllipArc3d& ellipArc,
515  const OdGePoint3d* endPointOverrides = 0,
516  OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0) = 0;
517 
522  virtual void nurbsProc(
523  const OdGeNurbCurve3d& nurbsCurve) = 0;
524 
540  virtual void textProc(
541  const OdGePoint3d& position,
542  const OdGeVector3d& direction,
543  const OdGeVector3d& upVector,
544  const OdChar* msg,
545  OdInt32 numBytes,
546  bool raw,
547  const OdGiTextStyle* pTextStyle,
548  const OdGeVector3d* pExtrusion = 0) = 0;
549 
550  virtual void textProc2(
551  const OdGePoint3d& position,
552  const OdGeVector3d& direction,
553  const OdGeVector3d& upVector,
554  const OdChar* msg,
555  OdInt32 numBytes,
556  bool raw,
557  const OdGiTextStyle* pTextStyle,
558  const OdGeVector3d* pExtrusion = 0,
559  const OdGeExtents3d* /*extentsBox*/ = 0)
560  {
561  textProc(position, direction, upVector, msg, numBytes, raw, pTextStyle, pExtrusion);
562  }
563 
577  virtual void shapeProc(
578  const OdGePoint3d& position,
579  const OdGeVector3d& direction,
580  const OdGeVector3d& upVector,
581  int shapeNumber,
582  const OdGiTextStyle* pTextStyle,
583  const OdGeVector3d* pExtrusion = 0) = 0;
584 
599  virtual void rasterImageProc(
600  const OdGePoint3d& origin,
601  const OdGeVector3d& u,
602  const OdGeVector3d& v,
603  const OdGiRasterImage* pImage,
604  const OdGePoint2d* uvBoundary,
605  OdUInt32 numBoundPts,
606  bool transparency = false,
607  double brightness = 50.0,
608  double contrast = 50.0,
609  double fade = 0.0) = 0;
610 
621  virtual void metafileProc(
622  const OdGePoint3d& origin,
623  const OdGeVector3d& u,
624  const OdGeVector3d& v,
625  const OdGiMetafile* pMetafile,
626  bool dcAligned = true,
627  bool allowClipping = false) = 0;
628 
629  virtual void xlineProc2(const OdGePoint3d& basePoint, const OdGeVector3d& direction)
630  {
631  xlineProc(basePoint, basePoint + direction);
632  }
633  virtual void rayProc2(const OdGePoint3d& basePoint, const OdGeVector3d& direction)
634  {
635  rayProc(basePoint, basePoint + direction);
636  }
637 
638  virtual void setExtentsProc(const OdGePoint3d * /*pPoints*/, bool /*bTransform*/ = true) { }
639 
641  {
644  };
645  virtual int ttfCharProcFlags() const { return 0; }
646  virtual bool ttfCharProc(OdChar /*character*/, const OdGePoint3d& /*position*/,
647  const OdGeBoundBlock3d* /*pBoundBlock*/) { return false; }
648 
649  virtual void ttfPolyDrawProc(
650  OdInt32 numVertices, const OdGePoint3d* vertexList,
651  OdInt32 faceListSize, const OdInt32* faceList,
652  const OdUInt8* /*pBezierTypes*/, const OdGiFaceData* pFaceData = 0)
653  {
654  shellProc(numVertices, vertexList, faceListSize, faceList, 0, pFaceData);
655  }
656 
658  {
659  kBoundaryProcXform = 1, // Non-identity Xform available at least once
660  kBoundaryProcXformNonUni = 2, // Non-uni-scale Xform available at least once
661  kBoundaryProcProjection = 4, // Projective Xform available at least once
662  kBoundaryProcClip = 8, // Boundary clipped partially or completely at least once
663  kBoundaryProcClipFull = 16 // Boundary completely clipped at least once
664  };
666  const OdGeBoundBlock3d & /*boundBlock*/, // {I} represent block for apply check
667  OdUInt32 & /*outputFlags*/) // {O} will represent set of EConveyorBoundaryInfoFlags flags on out
668  {
669  }
670 
671  void polypointProc2(OdGiConveyorContext* pContext,
672  OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors = 0,
673  const OdCmTransparency *pTransparency = 0, const OdGeVector3d* pNormals = 0, const OdGeVector3d* pExtrusions = 0,
674  const OdGsMarker* pSubEntMarkers = 0, OdInt32 nPointSize = 0);
675  void rowOfDotsProc2(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
676 
688  virtual void polypointProc(
689  OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors,
690  const OdCmTransparency* pTransparency = 0, const OdGeVector3d* pNormals = 0, const OdGeVector3d* pExtrusions = 0,
691  const OdGsMarker* pSubEntMarkers = 0, OdInt32 nPointSize = 0) = 0;
692 
700  virtual void rowOfDotsProc(
701  OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint) = 0;
702 
709  virtual void edgeProc(
710  const OdGiEdge2dArray& edges, const OdGeMatrix3d* pXform = 0) = 0;
711 };
712 
713 inline
715  OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors,
716  const OdCmTransparency* pTransparency, const OdGeVector3d* pNormals, const OdGeVector3d* pExtrusions,
717  const OdGsMarker* pSubEntMarkers, OdInt32 /*nPointSize*/)
718 {
719  OdGePoint3d tmpVerts[2];
720  for (OdInt32 nPoint = 0; nPoint < numPoints; nPoint++)
721  {
722  OdGsMarker baseSubEntMarker = -1;
723  if ((pColors || pTransparency || pSubEntMarkers) && pContext)
724  {
725  if (pColors)
726  pContext->subEntityTraits().setTrueColor(pColors[nPoint]);
727  if (pTransparency)
728  pContext->subEntityTraits().setTransparency(pTransparency[nPoint]);
729  if (pSubEntMarkers)
730  pContext->subEntityTraits().setSelectionMarker(pSubEntMarkers[nPoint]);
731  pContext->onTraitsModified();
732  }
733  else if (pSubEntMarkers)
734  baseSubEntMarker = pSubEntMarkers[nPoint];
735  const OdGeVector3d *pNormal = (pNormals) ? (pNormals + nPoint) : NULL;
736  const OdGeVector3d *pExtrusion = (pExtrusions) ? (pExtrusions + nPoint) : NULL;
737  tmpVerts[1] = tmpVerts[0] = vertexList[nPoint];
738  polylineProc(2, tmpVerts, pNormal, pExtrusion, baseSubEntMarker);
739  }
740 }
741 
742 inline
743 void OdGiConveyorGeometry::rowOfDotsProc2(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint)
744 {
745  OdGePoint3d tmpVerts[2];
746  for (OdInt32 nPoint = 0; nPoint < numPoints; nPoint++)
747  {
748  tmpVerts[1] = tmpVerts[0] = startPoint + dirToNextPoint * double(nPoint);
749  polylineProc(2, tmpVerts);
750  }
751 }
752 
753 #endif //#ifndef __ODGICONVEYORGEOMETRY_H__
#define ODA_FAIL()
Definition: DebugStuff.h:65
OdGiArcType
Definition: GiGeometry.h:683
@ kOdGiArcSimple
Definition: GiGeometry.h:684
#define NULL
Definition: GsProperties.h:177
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
unsigned char OdUInt8
wchar_t OdChar
virtual const OdGiViewport * giViewport() const =0
virtual const OdGiLineweightOverride * currentLineweightOverride() const
virtual const OdGiDrawable * currentDrawable() const =0
virtual void onTextProcessing(const OdGePoint3d &, const OdGeVector3d &, const OdGeVector3d &)
virtual OdUInt32 drawContextFlags() const
virtual OdGeMatrix3d getWorldToModelTransform() const =0
virtual const OdGiSubEntityTraitsData & effectiveTraits() const =0
virtual const OdGiDeviation & modelDeviation() const =0
virtual const OdGiDeviation & eyeDeviation() const =0
virtual const OdGiDeviation & worldDeviation() const =0
virtual OdGiContext & giContext() const =0
virtual void setEffectiveTraits(const OdGiSubEntityTraitsData &traits, const OdGeVector3d *fillNormal=NULL)=0
virtual bool effectivelyVisible() const
virtual bool regenAbort() const =0
virtual const OdGsView * gsView() const =0
virtual OdGiSubEntityTraits & subEntityTraits() const =0
virtual const OdGiDrawableDesc * currentDrawableDesc() const =0
virtual void onTraitsModified()=0
virtual OdGeMatrix3d getModelToWorldTransform() const =0
virtual const OdGiPathNode * currentGiPath() const =0
virtual double annotationScale() const
const OdGiDrawable * currentDrawable() const
void onTextProcessing(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector)
void setEffectiveTraits(const OdGiSubEntityTraitsData &traits, const OdGeVector3d *fillNormal=NULL)
const OdGiLineweightOverride * currentLineweightOverride() const
OdGeMatrix3d getModelToWorldTransform() const
OdGiConveyorContext * getOriginalContext() const
OdGeMatrix3d getWorldToModelTransform() const
OdGiContext & giContext() const
void setOriginalContext(OdGiConveyorContext *pCtx)
const OdGiPathNode * currentGiPath() const
const OdGiDeviation & eyeDeviation() const
const OdGiViewport * giViewport() const
const OdGiSubEntityTraitsData & effectiveTraits() const
const OdGiDeviation & modelDeviation() const
OdGiConveyorContextWrapper(OdGiConveyorContext *pCtx=NULL)
OdGiSubEntityTraits & subEntityTraits() const
const OdGiDrawableDesc * currentDrawableDesc() const
const OdGiDeviation & worldDeviation() const
const OdGsView * gsView() const
OdGiConveyorContext * m_pCtx
virtual void circularArcProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)=0
virtual void plineProc(const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)=0
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)=0
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)=0
virtual void edgeProc(const OdGiEdge2dArray &edges, const OdGeMatrix3d *pXform=0)=0
virtual void xlineProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)=0
virtual void ellipArcProc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)=0
virtual void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)=0
virtual void shapeProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)=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)=0
virtual void rayProc(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)=0
virtual void circleProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)=0
virtual void xlineProc2(const OdGePoint3d &basePoint, const OdGeVector3d &direction)
virtual void ttfPolyDrawProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdUInt8 *, const OdGiFaceData *pFaceData=0)
virtual void textProc2(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, const OdChar *msg, OdInt32 numBytes, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0, const OdGeExtents3d *=0)
virtual bool ttfCharProc(OdChar, const OdGePoint3d &, const OdGeBoundBlock3d *)
virtual void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)=0
virtual void circularArcProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)=0
virtual void conveyorBoundaryInfoProc(const OdGeBoundBlock3d &, OdUInt32 &)
virtual void circleProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)=0
virtual void polygonProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)=0
void polypointProc2(OdGiConveyorContext *pContext, OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors=0, const OdCmTransparency *pTransparency=0, const OdGeVector3d *pNormals=0, const OdGeVector3d *pExtrusions=0, const OdGsMarker *pSubEntMarkers=0, OdInt32 nPointSize=0)
virtual int ttfCharProcFlags() const
virtual void nurbsProc(const OdGeNurbCurve3d &nurbsCurve)=0
virtual void metafileProc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)=0
virtual void rayProc2(const OdGePoint3d &basePoint, const OdGeVector3d &direction)
virtual void textProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, const OdChar *msg, OdInt32 numBytes, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)=0
virtual void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)=0
virtual void setExtentsProc(const OdGePoint3d *, bool=true)
void rowOfDotsProc2(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
virtual void setSelectionMarker(OdGsMarker selectionMarker)=0
virtual void setTrueColor(const OdCmEntityColor &color)=0
virtual void setTransparency(const OdCmTransparency &transparency)
Definition: Gs.h:133
const GLfloat * v
Definition: gles2_ext.h:315