CFx SDK Documentation  2023 SP0
GiConveyorPassingImpl.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 __ODGICONVEYORPASSINGIMPL__
25 #define __ODGICONVEYORPASSINGIMPL__
26 
27 #include "Gi/GiEmptyGeometry.h"
28 
29 
30 template<class TThisClass, class TBase = OdGiConveyorGeometry>
31 class OdGiConveyorPassingImpl : public TBase {
32  OdGiConveyorGeometry& destGeom() {
33  return static_cast<TThisClass*>(this)->destGeometry();
34  }
35 public:
36  void plineProc(const OdGiPolyline& polyline,
37  const OdGeMatrix3d* pXfm = 0,
38  OdUInt32 fromIndex = 0,
39  OdUInt32 numSegs = 0)
40  {
41  destGeom().plineProc(polyline, pXfm, fromIndex, numSegs);
42  }
43 
44  void polylineProc(OdInt32 numPoints,
45  const OdGePoint3d* vertexList,
46  const OdGeVector3d* pNormal = 0,
47  const OdGeVector3d* pExtrusion = 0,
48  OdGsMarker baseSubEntMarker = -1)
49  {
50  destGeom().polylineProc(numPoints, vertexList, pNormal, pExtrusion, baseSubEntMarker);
51  }
52 
53  void polygonProc(OdInt32 numPoints,
54  const OdGePoint3d* vertexList,
55  const OdGeVector3d* pNormal = 0,
56  const OdGeVector3d* pExtrusion = 0)
57  {
58  destGeom().polygonProc(numPoints, vertexList, pNormal, pExtrusion);
59  }
60 
61  void xlineProc(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint) {
62  destGeom().xlineProc(firstPoint, secondPoint);
63  }
64 
65  void rayProc(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint) {
66  destGeom().rayProc(basePoint, throughPoint);
67  }
68 
69  void meshProc(OdInt32 numRows,
70  OdInt32 numColumns,
71  const OdGePoint3d* vertexList,
72  const OdGiEdgeData* pEdgeData = 0,
73  const OdGiFaceData* pFaceData = 0,
74  const OdGiVertexData* pVertexData = 0)
75  {
76  destGeom().meshProc(numRows, numColumns, vertexList, pEdgeData, pFaceData, pVertexData);
77  }
78 
79  void shellProc(OdInt32 numVertices,
80  const OdGePoint3d* vertexList,
81  OdInt32 faceListSize,
82  const OdInt32* faceList,
83  const OdGiEdgeData* pEdgeData = 0,
84  const OdGiFaceData* pFaceData = 0,
85  const OdGiVertexData* pVertexData = 0)
86  {
87  destGeom().shellProc(numVertices, vertexList, faceListSize, faceList, pEdgeData, pFaceData, pVertexData);
88  }
89 
90  void circleProc(const OdGePoint3d& center, double radius, const OdGeVector3d& normal, const OdGeVector3d* pExtrusion = 0) {
91  destGeom().circleProc(center, radius, normal, pExtrusion);
92  }
93 
94  void circleProc(const OdGePoint3d& firstPoint,
95  const OdGePoint3d& secondPoint,
96  const OdGePoint3d& thirdPoint,
97  const OdGeVector3d* pExtrusion = 0)
98  {
99  destGeom().circleProc(firstPoint, secondPoint, thirdPoint, pExtrusion);
100  }
101 
102  void circularArcProc(const OdGePoint3d& center,
103  double radius,
104  const OdGeVector3d& normal,
105  const OdGeVector3d& startVector,
106  double sweepAngle,
107  OdGiArcType arcType = kOdGiArcSimple,
108  const OdGeVector3d* pExtrusion = 0)
109  {
110  destGeom().circularArcProc(center, radius, normal, startVector, sweepAngle, arcType, pExtrusion);
111  }
112 
113  void circularArcProc(const OdGePoint3d& firstPoint,
114  const OdGePoint3d& secondPoint,
115  const OdGePoint3d& thirdPoint,
116  OdGiArcType arcType = kOdGiArcSimple,
117  const OdGeVector3d* pExtrusion = 0)
118  {
119  destGeom().circularArcProc(firstPoint, secondPoint, thirdPoint, arcType, pExtrusion);
120  }
121 
122  void ellipArcProc(const OdGeEllipArc3d& ellipArc,
123  const OdGePoint3d* endPointOverrides = 0,
124  OdGiArcType arcType = kOdGiArcSimple,
125  const OdGeVector3d* pExtrusion = 0)
126  {
127  destGeom().ellipArcProc(ellipArc, endPointOverrides, arcType, pExtrusion);
128  }
129 
130  void nurbsProc(const OdGeNurbCurve3d& nurbsCurve) {
131  destGeom().nurbsProc(nurbsCurve);
132  }
133 
134  void textProc(const OdGePoint3d& position,
135  const OdGeVector3d& direction,
136  const OdGeVector3d& upVector,
137  const OdChar* msg,
138  OdInt32 numBytes,
139  bool raw,
140  const OdGiTextStyle* pTextStyle,
141  const OdGeVector3d* pExtrusion = 0)
142  {
143  destGeom().textProc(position, direction, upVector, msg, numBytes, raw, pTextStyle, pExtrusion);
144  }
145 
146  void textProc2(const OdGePoint3d& position,
147  const OdGeVector3d& direction,
148  const OdGeVector3d& upVector,
149  const OdChar* msg,
150  OdInt32 numBytes,
151  bool raw,
152  const OdGiTextStyle* pTextStyle,
153  const OdGeVector3d* pExtrusion = 0,
154  const OdGeExtents3d* extentsBox = 0)
155  {
156  destGeom().textProc2(position, direction, upVector, msg, numBytes, raw, pTextStyle, pExtrusion, extentsBox);
157  }
158 
159  void shapeProc(const OdGePoint3d& position,
160  const OdGeVector3d& direction,
161  const OdGeVector3d& upVector,
162  int shapeNumber,
163  const OdGiTextStyle* pTextStyle,
164  const OdGeVector3d* pExtrusion = 0)
165  {
166  destGeom().shapeProc(position, direction, upVector, shapeNumber, pTextStyle, pExtrusion);
167  }
168 
169  void rasterImageProc(const OdGePoint3d& origin,
170  const OdGeVector3d& u,
171  const OdGeVector3d& v,
172  const OdGiRasterImage* pImage,
173  const OdGePoint2d* uvBoundary,
174  OdUInt32 numBoundPts,
175  bool transparency = false,
176  double brightness = 50.0,
177  double contrast = 50.0,
178  double fade = 0.0)
179  {
180  destGeom().rasterImageProc(origin, u, v, pImage, uvBoundary, numBoundPts, transparency, brightness, contrast, fade);
181  }
182 
183  void metafileProc(const OdGePoint3d& origin,
184  const OdGeVector3d& u,
185  const OdGeVector3d& v,
186  const OdGiMetafile* pMetafile,
187  bool dcAligned = true,
188  bool allowClipping = false)
189  {
190  destGeom().metafileProc(origin, u, v, pMetafile, dcAligned, allowClipping);
191  }
192 
193  void xlineProc2(const OdGePoint3d& basePoint, const OdGeVector3d& direction) {
194  destGeom().xlineProc2(basePoint, direction);
195  }
196 
197  void rayProc2(const OdGePoint3d& basePoint, const OdGeVector3d& direction) {
198  destGeom().rayProc2(basePoint, direction);
199  }
200 
201  void ttfPolyDrawProc(OdInt32 numVertices,
202  const OdGePoint3d* vertexList,
203  OdInt32 faceListSize,
204  const OdInt32* faceList,
205  const OdUInt8* pBezierTypes,
206  const OdGiFaceData* pFaceData = 0)
207  {
208  destGeom().ttfPolyDrawProc(numVertices, vertexList, faceListSize, faceList, pBezierTypes, pFaceData);
209  }
210 
211  void polypointProc(OdInt32 numPoints,
212  const OdGePoint3d* vertexList,
213  const OdCmEntityColor* pColors,
214  const OdCmTransparency* pTransparency = 0,
215  const OdGeVector3d* pNormals = 0,
216  const OdGeVector3d* pExtrusions = 0,
217  const OdGsMarker* pSubEntMarkers = 0,
218  OdInt32 nPointSize = 0)
219  {
220  destGeom().polypointProc(numPoints, vertexList, pColors, pTransparency, pNormals, pExtrusions, pSubEntMarkers, nPointSize);
221  }
222 
223  void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint)
224  {
225  destGeom().rowOfDotsProc(numPoints, startPoint, dirToNextPoint);
226  }
227 
228  void edgeProc(const OdGiEdge2dArray& edges, const OdGeMatrix3d* pXform = 0)
229  {
230  destGeom().edgeProc(edges, pXform);
231  }
232 
234  const OdGeBoundBlock3d & boundBlock, // {I} represent block for apply check
235  OdUInt32 & outputFlags) // {O} will represent set of EConveyorBoundaryInfoFlags flags on out
236  {
237  destGeom().conveyorBoundaryInfoProc( boundBlock, outputFlags );
238  }
239 };
240 
241 
242 #endif // __ODGICONVEYORPASSINGIMPL__
OdGiArcType
Definition: GiGeometry.h:683
@ kOdGiArcSimple
Definition: GiGeometry.h:684
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
unsigned char OdUInt8
wchar_t OdChar
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 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 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
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
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)
void shapeProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
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)
void circleProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)
void plineProc(const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
void polygonProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)
void ellipArcProc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
void circularArcProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
virtual void conveyorBoundaryInfoProc(const OdGeBoundBlock3d &boundBlock, OdUInt32 &outputFlags)
void nurbsProc(const OdGeNurbCurve3d &nurbsCurve)
void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
void edgeProc(const OdGiEdge2dArray &edges, const OdGeMatrix3d *pXform=0)
void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
void shellProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
void circleProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)
void rayProc2(const OdGePoint3d &basePoint, const OdGeVector3d &direction)
void metafileProc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)
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)
void ttfPolyDrawProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdUInt8 *pBezierTypes, const OdGiFaceData *pFaceData=0)
void rayProc(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
void xlineProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
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 *extentsBox=0)
void xlineProc2(const OdGePoint3d &basePoint, const OdGeVector3d &direction)
void circularArcProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
const GLfloat * v
Definition: gles2_ext.h:315