CFx SDK Documentation  2023 SP0
AECHarvester.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 __AECHARVESTER_H__
25 #define __AECHARVESTER_H__
26 
27 #include "FMProfile2D.h"
28 #include <GiContextForDbDatabase.h>
29 #include <Gi/GiBaseVectorizer.h>
32 
36 namespace AECGe
37 {
38 
39  using namespace FacetModeler;
40 
44 class AECGEOMETRY_API Harvester : public OdGiBaseVectorizer,
46 {
47  public:
51  Harvester( OdDbDatabase* pDb, const OdGeMatrix3d& mUCS );
52 
56  virtual ~Harvester();
57 
61  const OdGeTol& tol() const;
62 
66  void setTol( const OdGeTol& tTol );
67 
71  bool isProjectOnUCS() const;
72 
76  void setIsProjectOnUCS( bool bProject );
77 
78  public:
82  virtual void processGeometry( Segment2D& rGeometry ) const = 0;
83 
87  virtual void processGeometry( Contour2D& rGeometry ) const = 0;
88 
92  virtual void processGeometry( Profile2D& rGeometry ) const = 0;
93 
94  public:
98  virtual OdGiRegenType regenType() const;
99 
103  virtual void polylineOut( OdInt32 numPoints, const OdGePoint3d* vertexList );
104 
108  virtual void polygonOut( OdInt32 numPoints,
109  const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0 );
110 
114  virtual void plineProc( const OdGiPolyline& polyline,
115  const OdGeMatrix3d* pXfm = 0, OdUInt32 fromIndex = 0, OdUInt32 numSegs = 0 );
116 
120  virtual void polylineProc( OdInt32 numPoints,
121  const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0, const OdGeVector3d* pExtrusion = 0, OdGsMarker baseSubEntMarker = -1);
122 
126  virtual void polygonProc( OdInt32 numPoints,
127  const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0, const OdGeVector3d* pExtrusion = 0 );
128 
132  virtual void meshProc( OdInt32 numRows,
133  OdInt32 numColumns, const OdGePoint3d* vertexList, const OdGiEdgeData* pEdgeData = 0,
134  const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0 );
135 
139  virtual void circleProc( const OdGePoint3d& center,
140  double radius, const OdGeVector3d& normal, const OdGeVector3d* pExtrusion = 0 );
141 
145  virtual void circleProc( const OdGePoint3d& firstPoint,
146  const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint,
147  const OdGeVector3d* pExtrusion = 0 );
148 
152  virtual void circularArcProc( const OdGePoint3d& center,
153  double radius, const OdGeVector3d& normal, const OdGeVector3d& startVector,
154  double sweepAngle, OdGiArcType arcType = kOdGiArcSimple,
155  const OdGeVector3d* pExtrusion = 0 );
156 
160  virtual void circularArcProc( const OdGePoint3d& firstPoint,
161  const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint,
162  OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0 );
163 
167  virtual void textProc( const OdGePoint3d& position,
168  const OdGeVector3d& u, const OdGeVector3d& v, const OdChar* msg,
169  OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle, const OdGeVector3d* pExtrusion = 0 );
170 
174  virtual void shapeProc( const OdGePoint3d& position,
175  const OdGeVector3d& direction, const OdGeVector3d& upVector,
176  int shapeNumber, const OdGiTextStyle* pTextStyle, const OdGeVector3d* pExtrusion = 0 );
177 
181  virtual void nurbsProc( const OdGeNurbCurve3d& nurbsCurve );
182 
186  virtual void ellipArcProc( const OdGeEllipArc3d& ellipArc, const OdGePoint3d* endPointOverrides = 0,
187  OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0 );
188 
192  virtual void rasterImageProc( const OdGePoint3d& origin,
193  const OdGeVector3d& u, const OdGeVector3d& v,
194  const OdGiRasterImage* pImage, const OdGePoint2d* uvBoundary,
195  OdUInt32 numBoundPts, bool transparency = false, double brightness = 50.0,
196  double contrast = 50.0, double fade = 0.0 );
197 
201  virtual void metafileProc( const OdGePoint3d& origin,
202  const OdGeVector3d& u, const OdGeVector3d& v,
203  const OdGiMetafile* pMetafile, bool dcAligned = true,
204  bool allowClipping = false );
205 
209  virtual void addRef();
210 
214  virtual void release();
215 
216  protected:
218 
219  protected:
224 };
225 
226 class AECGEOMETRY_API HarvesterOverall : public Harvester
227 {
228  public:
233 
234  public:
238  virtual void polylineOut( OdInt32 numPoints, const OdGePoint3d* vertexList );
239 
243  virtual void polygonOut( OdInt32 numPoints,
244  const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0 );
245 
249  virtual void plineProc( const OdGiPolyline& polyline,
250  const OdGeMatrix3d* pXfm = 0, OdUInt32 fromIndex = 0, OdUInt32 numSegs = 0 );
251 
255  virtual void polylineProc( OdInt32 numPoints,
256  const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0, const OdGeVector3d* pExtrusion = 0, OdGsMarker baseSubEntMarker = -1);
257 
261  virtual void polygonProc( OdInt32 numPoints,
262  const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0, const OdGeVector3d* pExtrusion = 0 );
263 
267  virtual void meshProc( OdInt32 numRows,
268  OdInt32 numColumns, const OdGePoint3d* vertexList, const OdGiEdgeData* pEdgeData = 0,
269  const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0 );
270 
274  virtual void circleProc( const OdGePoint3d& center,
275  double radius, const OdGeVector3d& normal, const OdGeVector3d* pExtrusion = 0 );
276 
280  virtual void circleProc( const OdGePoint3d& firstPoint,
281  const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint,
282  const OdGeVector3d* pExtrusion = 0 );
283 
287  virtual void circularArcProc( const OdGePoint3d& center,
288  double radius, const OdGeVector3d& normal, const OdGeVector3d& startVector,
289  double sweepAngle, OdGiArcType arcType = kOdGiArcSimple,
290  const OdGeVector3d* pExtrusion = 0 );
291 
295  virtual void circularArcProc( const OdGePoint3d& firstPoint,
296  const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint,
297  OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0 );
298 
302  virtual void textProc( const OdGePoint3d& position,
303  const OdGeVector3d& u, const OdGeVector3d& v, const OdChar* msg,
304  OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle, const OdGeVector3d* pExtrusion = 0 );
305 
309  virtual void shapeProc( const OdGePoint3d& position,
310  const OdGeVector3d& direction, const OdGeVector3d& upVector,
311  int shapeNumber, const OdGiTextStyle* pTextStyle, const OdGeVector3d* pExtrusion = 0 );
312 
316  virtual void nurbsProc( const OdGeNurbCurve3d& nurbsCurve );
317 
321  virtual void ellipArcProc( const OdGeEllipArc3d& ellipArc, const OdGePoint3d* endPointOverrides = 0,
322  OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0 );
323 };
324 
325 }
326 
327 #endif // __AECHARVESTER_H__
OdGiRegenType
Definition: GiCommonDraw.h:50
OdGiArcType
Definition: GiGeometry.h:683
@ kOdGiArcSimple
Definition: GiGeometry.h:684
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
wchar_t OdChar
virtual void processGeometry(Profile2D &rGeometry) const =0
virtual void plineProc(const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
virtual OdGiRegenType regenType() 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)
virtual void ellipArcProc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
Harvester(OdDbDatabase *pDb, const OdGeMatrix3d &mUCS)
virtual void nurbsProc(const OdGeNurbCurve3d &nurbsCurve)
OdGeMatrix3d m_mUCS
Definition: AECHarvester.h:220
virtual void circleProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)
ODRX_USING_HEAP_OPERATORS(OdGiBaseVectorizer)
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)
virtual void processGeometry(Segment2D &rGeometry) const =0
void setTol(const OdGeTol &tTol)
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)
bool isProjectOnUCS() const
const OdGeTol & tol() const
virtual void addRef()
virtual void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
virtual void processGeometry(Contour2D &rGeometry) const =0
virtual void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
virtual void circleProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)
void setIsProjectOnUCS(bool bProject)
virtual void shapeProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
virtual ~Harvester()
OdGeMatrix3d m_mUCSInverted
Definition: AECHarvester.h:221
virtual void release()
virtual void polygonProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)
virtual void polylineOut(OdInt32 numPoints, const OdGePoint3d *vertexList)
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 polygonOut(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0)
virtual void shapeProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
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)
virtual void circleProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)
virtual void ellipArcProc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
HarvesterOverall(OdDbDatabase *pDb, const OdGeMatrix3d &mUCS)
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 meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
virtual void circularArcProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
virtual void nurbsProc(const OdGeNurbCurve3d &nurbsCurve)
virtual void polygonOut(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0)
virtual void polylineOut(OdInt32 numPoints, const OdGePoint3d *vertexList)
virtual void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
virtual void circleProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)
virtual void plineProc(const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
virtual void polygonProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)
Definition: GeTol.h:49
const GLfloat * v
Definition: gles2_ext.h:315
GLuint GLsizei GLsizei * length
Definition: gles2_ext.h:274