CFx SDK Documentation  2020SP3
TrVisMetafileAnalyzer.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 // GLES2 metafile parser and comparator
24 
25 #ifndef ODTRVISMETAFILEANALYZER
26 #define ODTRVISMETAFILEANALYZER
27 
28 #include "TD_PackPush.h"
29 
30 #include "TrVisDefs.h"
31 #include "TrVisMetafileStream.h"
32 
41 {
42  public:
43  enum VarType
44  {
48  kTypeInt8 = 2,
57  kTypeFVec2 = 11,
58  kTypeDVec2 = 12,
59  kTypeFVec3 = 13,
60  kTypeDVec3 = 14,
61  kTypeFVec4 = 15,
62  kTypeDVec4 = 16,
63  kTypeFMat3 = 17,
64  kTypeDMat3 = 18,
65  kTypeFMat4 = 19,
66  kTypeDMat4 = 20,
67 
68  kNTypes
69  };
71  {
78 
80  };
81  struct VarState
82  {
84  VarType m_varType; // Type of current variable
85  OdUInt32 m_nVar; // Number of variable under chunk
86  const void * m_pVar; // Pointer onto variable
87 
91  , m_nVar(0)
92  , m_pVar(NULL)
93  { }
94 
96  bool isEOF() const { return m_chunk == OdTrVisMetaRecType_NTypes; }
97 
98  OdUInt8 asUInt8() const ;
99  OdInt8 asInt8() const ;
100  OdUInt16 asUInt16() const ;
101  OdInt16 asInt16() const ;
102  OdUInt32 asUInt32() const ;
103  OdInt32 asInt32() const ;
104  OdUInt64 asUInt64() const ;
105  OdInt64 asInt64() const ;
106  float asFloat() const ;
107  double asDouble() const ;
108  const float *asFVec() const ;
109  const double *asDVec() const ;
110  const OdGeVector2d &asDVec2() const ;
111  const OdGePoint2d &asDPoint2() const ;
112  const OdGeVector3d &asDVec3() const ;
113  const OdGePoint3d &asDPoint3() const ;
114  const OdGeMatrix3d &asDMatrix3d() const;
115  };
116  static struct TypeSpec
117  {
118  OdUInt32 m_typeSize;
119  OdUInt32 m_typeNumber;
120  OdUInt32 m_basisType;
122  static struct BasisFuncs
123  {
124  void (*m_pLRegFunc)(OdUInt32 &lReg, const VarState &varState);
125  bool (*m_pCompFunc)(const void *pStream1, const void *pStream2, OdUInt32 nVars);
128  {
129  kOpSkip = 0, // Skip until next chunk
130  kOpProcess = 1 // Process normally
131  };
132  enum Scheme
133  {
134  kSmBasic = 0, // Basic stream scheme
135  kSmStandalone, // Standalone stream scheme
136  kNumSchemes // Number of stream schemes
137  };
138  protected:
139  static struct RecScheme
140  {
141  const char *m_pSpec[kNumSchemes];
144  {
150 
152  : m_pDataCont(NULL)
154  , m_nStreamSize(0)
156  , m_pStreamEnd(NULL)
157  { }
160  {
162  const char *m_pLogicalCur;
163 
165  : m_pStreamCur(NULL)
167  { }
168  void logicalCopyIn(const StreamMarker &sm2) { m_pLogicalCur = sm2.m_pLogicalCur - 2; }
170  };
172  {
173  kLogicInit = (1 << 0),
174  kLogicExclusive = (1 << 1),
175  kLogicLoopSkip = (1 << 2),
176  kLogicSkip = (1 << 3),
177  kLogicSkipByMask = (1 << 4)
178  };
180  {
186 
188  : m_logicalReg(0)
189  , m_logicalFlags(0)
190  { }
193  public:
194  OdTrVisMetafileParser(const OdBaseMetafileContainer *pContainer = NULL, Scheme streamScheme = kSmBasic)
195  : m_skipMask(0)
196  {
197  initialize(pContainer, streamScheme);
198  }
199 
203 
205 
206  void initialize(const OdBaseMetafileContainer *pContainer, Scheme streamScheme = kSmBasic);
207  void reset();
208 
209  void rewind();
210 
212  protected:
213  static void lRegFuncUInt8(OdUInt32 &lReg, const VarState &varState);
214  static void lRegFuncUInt16(OdUInt32 &lReg, const VarState &varState);
215  static void lRegFuncUInt32(OdUInt32 &lReg, const VarState &varState);
216  static void lRegFuncStub(OdUInt32 &lReg, const VarState &varState);
217 };
218 
227 {
228  protected:
230  static bool (*s_pCompArrayFunc[OdTrVisArrayWrapper::Type_Marker + 1])(const void *pArray1, const void *pArray2, OdUInt32 nSize);
231  public:
232  OdTrVisMetafileComparator(const OdBaseMetafileContainer *pContainer1 = NULL, const OdBaseMetafileContainer *pContainer2 = NULL, OdTrVisMetafileParser::Scheme streamScheme = OdTrVisMetafileParser::kSmBasic)
233  : m_par1(pContainer1, streamScheme)
234  , m_par2(pContainer2, streamScheme)
235  {
236  }
237 
238  bool compare();
239  bool compare(const OdBaseMetafileContainer *pContainer1, const OdBaseMetafileContainer *pContainer2, OdTrVisMetafileParser::Scheme streamScheme = OdTrVisMetafileParser::kSmBasic);
240  protected:
241  friend class OdTrVisMetafileParser;
242  static bool compFuncUInt8(const void *pStream1, const void *pStream2, OdUInt32 nVars);
243  static bool compFuncUInt16(const void *pStream1, const void *pStream2, OdUInt32 nVars);
244  static bool compFuncUInt32(const void *pStream1, const void *pStream2, OdUInt32 nVars);
245  static bool compFuncUInt64(const void *pStream1, const void *pStream2, OdUInt32 nVars);
246  static bool compFuncFloat(const void *pStream1, const void *pStream2, OdUInt32 nVars);
247  static bool compFuncDouble(const void *pStream1, const void *pStream2, OdUInt32 nVars);
248 
249  static bool compFuncArrayVertex(const void *pArray1, const void *pArray2, OdUInt32 nSize);
250  static bool compFuncArrayNormal(const void *pArray1, const void *pArray2, OdUInt32 nSize);
251  static bool compFuncArrayColor(const void *pArray1, const void *pArray2, OdUInt32 nSize);
252  static bool compFuncArrayTexCoord(const void *pArray1, const void *pArray2, OdUInt32 nSize);
253  static bool compFuncArrayIndex(const void *pArray1, const void *pArray2, OdUInt32 nSize);
254  static bool compFuncArrayMarker(const void *pArray1, const void *pArray2, OdUInt32 nSize);
255 };
256 
258 inline OdInt8 OdTrVisMetafileParser::VarState::asInt8() const { return *(const OdInt8*) m_pVar; }
259 
260 #ifdef TD_STRICT_ALIGNMENT
261 
262 template <class T> T align(const void* ptr) { T res; memcpy(&res, ptr, sizeof(T)); return res; }
263 
264 inline OdUInt16 OdTrVisMetafileParser::VarState::asUInt16() const { return align<OdUInt16>(m_pVar); }
265 inline OdInt16 OdTrVisMetafileParser::VarState::asInt16() const { return align<OdInt16 >(m_pVar); }
266 inline OdUInt32 OdTrVisMetafileParser::VarState::asUInt32() const { return align<OdUInt32>(m_pVar); }
267 inline OdInt32 OdTrVisMetafileParser::VarState::asInt32() const { return align<OdInt32 >(m_pVar); }
268 inline OdUInt64 OdTrVisMetafileParser::VarState::asUInt64() const { return align<OdUInt64>(m_pVar); }
269 inline OdInt64 OdTrVisMetafileParser::VarState::asInt64() const { return align<OdInt64 >(m_pVar); }
270 inline float OdTrVisMetafileParser::VarState::asFloat() const { return align<float >(m_pVar); }
271 inline double OdTrVisMetafileParser::VarState::asDouble() const { return align<double >(m_pVar); }
272 inline const float* OdTrVisMetafileParser::VarState::asFVec() const { return align<const float* >(m_pVar); }
273 inline const double* OdTrVisMetafileParser::VarState::asDVec() const { return align<const double*>(m_pVar); }
274 inline const OdGeVector2d& OdTrVisMetafileParser::VarState::asDVec2() const { ODA_ASSERT(OdIntPtr(m_pVar)%8); return *(const OdGeVector2d*)m_pVar; }
275 inline const OdGePoint2d& OdTrVisMetafileParser::VarState::asDPoint2() const { ODA_ASSERT(OdIntPtr(m_pVar)%8); return *(const OdGePoint2d*)m_pVar; }
276 inline const OdGeVector3d& OdTrVisMetafileParser::VarState::asDVec3() const { ODA_ASSERT(OdIntPtr(m_pVar)%8); return *(const OdGeVector3d*)m_pVar; }
277 inline const OdGePoint3d& OdTrVisMetafileParser::VarState::asDPoint3() const { ODA_ASSERT(OdIntPtr(m_pVar)%8); return *(const OdGePoint3d*)m_pVar; }
278 inline const OdGeMatrix3d& OdTrVisMetafileParser::VarState::asDMatrix3d() const { ODA_ASSERT(OdIntPtr(m_pVar)%8); return *(const OdGeMatrix3d*)m_pVar; }
279 
280 #else
281 
282 inline OdUInt16 OdTrVisMetafileParser::VarState::asUInt16() const { return *(const OdUInt16*)m_pVar; }
283 inline OdInt16 OdTrVisMetafileParser::VarState::asInt16() const { return *(const OdInt16*)m_pVar; }
284 inline OdUInt32 OdTrVisMetafileParser::VarState::asUInt32() const { return *(const OdUInt32*)m_pVar; }
285 inline OdInt32 OdTrVisMetafileParser::VarState::asInt32() const { return *(const OdInt32*)m_pVar; }
286 inline OdUInt64 OdTrVisMetafileParser::VarState::asUInt64() const { return *(const OdUInt64*)m_pVar; }
287 inline OdInt64 OdTrVisMetafileParser::VarState::asInt64() const { return *(const OdInt64*)m_pVar; }
288 inline float OdTrVisMetafileParser::VarState::asFloat() const { return *(const float*)m_pVar; }
289 inline double OdTrVisMetafileParser::VarState::asDouble() const { return *(const double*)m_pVar; }
290 inline const float* OdTrVisMetafileParser::VarState::asFVec() const { return (const float*)m_pVar; }
291 inline const double* OdTrVisMetafileParser::VarState::asDVec() const { return (const double*)m_pVar; }
292 inline const OdGeVector2d& OdTrVisMetafileParser::VarState::asDVec2() const { return *(const OdGeVector2d*)m_pVar; }
293 inline const OdGePoint2d& OdTrVisMetafileParser::VarState::asDPoint2() const { return *(const OdGePoint2d*)m_pVar; }
294 inline const OdGeVector3d& OdTrVisMetafileParser::VarState::asDVec3() const { return *(const OdGeVector3d*)m_pVar; }
295 inline const OdGePoint3d& OdTrVisMetafileParser::VarState::asDPoint3() const { return *(const OdGePoint3d*)m_pVar; }
296 inline const OdGeMatrix3d& OdTrVisMetafileParser::VarState::asDMatrix3d() const { return *(const OdGeMatrix3d*)m_pVar; }
297 
298 #endif
299 
300 #include "TD_PackPop.h"
301 
302 #endif // ODTRVISMETAFILEANALYZER
OdTrVisMetafileParser::InitialState
Definition: TrVisMetafileAnalyzer.h:144
OdTrVisMetafileParser::kTypeFVec4
@ kTypeFVec4
Definition: TrVisMetafileAnalyzer.h:61
OdTrVisMetafileParser::kBasisFloat
@ kBasisFloat
Definition: TrVisMetafileAnalyzer.h:76
OdTrVisMetafileParser::CurrentState::m_curVarState
VarState m_curVarState
Definition: TrVisMetafileAnalyzer.h:185
OdTrVisMetafileComparator::compare
bool compare()
OdTrVisMetafileParser::lRegFuncStub
static void lRegFuncStub(OdUInt32 &lReg, const VarState &varState)
OdGeVector3d
Definition: GeVector3d.h:54
NULL
#define NULL
Definition: GsProperties.h:177
OdTrVisArrayWrapper::Type_Marker
@ Type_Marker
Definition: TrVisMetafileStream.h:240
OdTrVisMetafileParser::kBasisUInt32
@ kBasisUInt32
Definition: TrVisMetafileAnalyzer.h:74
OdTrVisMetafileParser::VarState::asDMatrix3d
const OdGeMatrix3d & asDMatrix3d() const
Definition: TrVisMetafileAnalyzer.h:296
OdTrVisMetafileParser::CurrentState::m_loopMarker
StreamMarker m_loopMarker
Definition: TrVisMetafileAnalyzer.h:184
OdTrVisMetafileParser::initialize
void initialize(const OdBaseMetafileContainer *pContainer, Scheme streamScheme=kSmBasic)
OdTrVisMetafileParser::InitialState::m_pStreamStart
const OdUInt8 * m_pStreamStart
Definition: TrVisMetafileAnalyzer.h:148
OdUInt8
unsigned char OdUInt8
Definition: OdPlatformSettings.h:759
OdTrVisMetafileParser::kLogicSkipByMask
@ kLogicSkipByMask
Definition: TrVisMetafileAnalyzer.h:177
OdTrVisMetafileParser::kTypeDVec3
@ kTypeDVec3
Definition: TrVisMetafileAnalyzer.h:60
OdTrVisMetafileParser::kLogicInit
@ kLogicInit
Definition: TrVisMetafileAnalyzer.h:173
OdTrVisMetafileParser::kTypeInvalid
@ kTypeInvalid
Definition: TrVisMetafileAnalyzer.h:45
OdInt64
Definition: Int64.h:43
OdTrVisMetafileParser::m_initState
struct OdTrVisMetafileParser::InitialState m_initState
OdTrVisMetafileParser::VarState::asDVec
const double * asDVec() const
Definition: TrVisMetafileAnalyzer.h:291
OdTrVisMetafileParser::userEntryCurProc
const OdUInt8 *& userEntryCurProc()
Definition: TrVisMetafileAnalyzer.h:204
OdTrVisMetafileParser::VarState::asDVec3
const OdGeVector3d & asDVec3() const
Definition: TrVisMetafileAnalyzer.h:294
OdTrVisMetafileParser::VarState::m_pVar
const void * m_pVar
Definition: TrVisMetafileAnalyzer.h:86
OdTrVisMetafileParser::VarState::asFloat
float asFloat() const
Definition: TrVisMetafileAnalyzer.h:288
OdTrVisMetafileComparator::compFuncArrayNormal
static bool compFuncArrayNormal(const void *pArray1, const void *pArray2, OdUInt32 nSize)
OdTrVisMetafileParser::reset
void reset()
OdTrVisMetafileParser::OdTrVisMetafileParser
OdTrVisMetafileParser(const OdBaseMetafileContainer *pContainer=NULL, Scheme streamScheme=kSmBasic)
Definition: TrVisMetafileAnalyzer.h:194
OdTrVisMetafileParser::InitialState::InitialState
InitialState()
Definition: TrVisMetafileAnalyzer.h:151
OdTrVisMetafileParser::StreamMarker::logicalCopyIn
void logicalCopyIn(const StreamMarker &sm2)
Definition: TrVisMetafileAnalyzer.h:168
OdTrVisMetafileParser::kTypeFloat
@ kTypeFloat
Definition: TrVisMetafileAnalyzer.h:55
OdTrVisMetafileParser::InitialState::m_nStreamSize
OdUInt32 m_nStreamSize
Definition: TrVisMetafileAnalyzer.h:147
OdTrVisMetafileComparator::compFuncUInt64
static bool compFuncUInt64(const void *pStream1, const void *pStream2, OdUInt32 nVars)
OdTrVisMetafileParser::CurrentState::m_caret
StreamMarker m_caret
Definition: TrVisMetafileAnalyzer.h:181
TD_PackPop.h
OdTrVisMetafileParser::VarType
VarType
Definition: TrVisMetafileAnalyzer.h:44
OdTrVisMetafileParser::kNumSchemes
@ kNumSchemes
Definition: TrVisMetafileAnalyzer.h:136
OdUInt16
unsigned short OdUInt16
Definition: OdPlatformSettings.h:760
OdTrVisMetafileParser::VarState::asDouble
double asDouble() const
Definition: TrVisMetafileAnalyzer.h:289
OdUInt32
unsigned int OdUInt32
Definition: OdPlatformSettings.h:783
OdGeMatrix3d
Definition: GeMatrix3d.h:73
OdInt16
short OdInt16
Definition: OdPlatformSettings.h:756
OdTrVisMetafileParser::VarState::asInt8
OdInt8 asInt8() const
Definition: TrVisMetafileAnalyzer.h:258
OdTrVisMetafileParser::VarState::m_nVar
OdUInt32 m_nVar
Definition: TrVisMetafileAnalyzer.h:85
OdTrVisMetafileParser::VarState::asDPoint3
const OdGePoint3d & asDPoint3() const
Definition: TrVisMetafileAnalyzer.h:295
OdTrVisMetafileParser::kBasisUInt8
@ kBasisUInt8
Definition: TrVisMetafileAnalyzer.h:72
OdTrVisMetafileParser::VarState::VarState
VarState()
Definition: TrVisMetafileAnalyzer.h:88
OdTrVisFlatMetafileContainer
Definition: TrVisMetafileStream.h:405
OdTrVisMetafileComparator::OdTrVisMetafileComparator
OdTrVisMetafileComparator(const OdBaseMetafileContainer *pContainer1=NULL, const OdBaseMetafileContainer *pContainer2=NULL, OdTrVisMetafileParser::Scheme streamScheme=OdTrVisMetafileParser::kSmBasic)
Definition: TrVisMetafileAnalyzer.h:232
OdTrVisMetafileParser::s_typeSpec
static struct OdTrVisMetafileParser::TypeSpec s_typeSpec[kNTypes]
OdTrVisMetafileParser::kTypeFMat4
@ kTypeFMat4
Definition: TrVisMetafileAnalyzer.h:65
OdTrVisMetafileComparator::m_par2
OdTrVisMetafileParser m_par2
Definition: TrVisMetafileAnalyzer.h:229
OdTrVisMetafileParser::LogicalFlags
LogicalFlags
Definition: TrVisMetafileAnalyzer.h:172
OdTrVisMetafileComparator::compFuncUInt16
static bool compFuncUInt16(const void *pStream1, const void *pStream2, OdUInt32 nVars)
OdTrVisMetafileParser::VarState::asUInt8
OdUInt8 asUInt8() const
Definition: TrVisMetafileAnalyzer.h:257
OdTrVisMetafileParser::VarState::asInt64
OdInt64 asInt64() const
Definition: TrVisMetafileAnalyzer.h:287
OdGePoint3d
Definition: GePoint3d.h:55
OdTrVisMetaRecType_NTypes
@ OdTrVisMetaRecType_NTypes
Definition: TrVisMetafileStream.h:85
OdTrVisMetafileParser::kNBasisTypes
@ kNBasisTypes
Definition: TrVisMetafileAnalyzer.h:79
OdTrVisMetafileParser::VarState::asDVec2
const OdGeVector2d & asDVec2() const
Definition: TrVisMetafileAnalyzer.h:292
OdTrVisMetafileParser::kTypeDVec2
@ kTypeDVec2
Definition: TrVisMetafileAnalyzer.h:58
OdTrVisMetafileComparator::compFuncArrayIndex
static bool compFuncArrayIndex(const void *pArray1, const void *pArray2, OdUInt32 nSize)
OdTrVisMetafileParser
Definition: TrVisMetafileAnalyzer.h:41
OdInt32
int OdInt32
Definition: OdPlatformSettings.h:782
OdTrVisMetafileParser::VarState::m_varType
VarType m_varType
Definition: TrVisMetafileAnalyzer.h:84
OdTrVisMetafileParser::lRegFuncUInt32
static void lRegFuncUInt32(OdUInt32 &lReg, const VarState &varState)
OdTrVisMetafileParser::VarState::asInt32
OdInt32 asInt32() const
Definition: TrVisMetafileAnalyzer.h:285
OdTrVisMetafileParser::kTypeFVec3
@ kTypeFVec3
Definition: TrVisMetafileAnalyzer.h:59
OdTrVisMetafileParser::StreamMarker::m_pStreamCur
const OdUInt8 * m_pStreamCur
Definition: TrVisMetafileAnalyzer.h:161
OdTrVisMetafileParser::CurrentState::CurrentState
CurrentState()
Definition: TrVisMetafileAnalyzer.h:187
OdTrVisMetafileParser::kOpSkip
@ kOpSkip
Definition: TrVisMetafileAnalyzer.h:129
OdTrVisMetafileParser::kTypeChunk
@ kTypeChunk
Definition: TrVisMetafileAnalyzer.h:46
TrVisDefs.h
OdTrVisMetafileParser::VarState::asUInt64
OdUInt64 asUInt64() const
Definition: TrVisMetafileAnalyzer.h:286
OdTrVisMetafileParser::kBasisDouble
@ kBasisDouble
Definition: TrVisMetafileAnalyzer.h:77
OdTrVisMetafileParser::kBasisUInt64
@ kBasisUInt64
Definition: TrVisMetafileAnalyzer.h:75
OdTrVisMetaRecType
OdTrVisMetaRecType
Definition: TrVisMetafileStream.h:47
OdTrVisMetafileParser::kNTypes
@ kNTypes
Definition: TrVisMetafileAnalyzer.h:68
OdTrVisMetafileParser::VarState::m_chunk
OdTrVisMetaRecType m_chunk
Definition: TrVisMetafileAnalyzer.h:83
OdTrVisMetafileParser::kTypeDMat3
@ kTypeDMat3
Definition: TrVisMetafileAnalyzer.h:64
OdTrVisMetafileParser::StreamMarker::m_pLogicalCur
const char * m_pLogicalCur
Definition: TrVisMetafileAnalyzer.h:162
OdTrVisMetafileParser::kSmStandalone
@ kSmStandalone
Definition: TrVisMetafileAnalyzer.h:135
OdGeVector2d
Definition: GeVector2d.h:51
OdTrVisMetafileParser::kLogicSkip
@ kLogicSkip
Definition: TrVisMetafileAnalyzer.h:176
OdTrVisMetafileParser::kTypeFVec2
@ kTypeFVec2
Definition: TrVisMetafileAnalyzer.h:57
OdTrVisMetafileParser::metafileContainer
const OdTrVisFlatMetafileContainer * metafileContainer() const
Definition: TrVisMetafileAnalyzer.h:200
OdTrVisMetafileParser::StreamMarker::StreamMarker
StreamMarker()
Definition: TrVisMetafileAnalyzer.h:164
OdTrVisMetafileParser::streamSize
OdUInt32 streamSize() const
Definition: TrVisMetafileAnalyzer.h:202
OdTrVisMetafileParser::s_schemes
static struct OdTrVisMetafileParser::RecScheme s_schemes[OdTrVisMetaRecType_NTypes]
OdTrVisMetafileParser::VarState
Definition: TrVisMetafileAnalyzer.h:82
OdTrVisMetafileParser::kTypeUInt16
@ kTypeUInt16
Definition: TrVisMetafileAnalyzer.h:49
OdTrVisMetafileParser::kOpProcess
@ kOpProcess
Definition: TrVisMetafileAnalyzer.h:130
OdTrVisMetafileParser::CurrentState
Definition: TrVisMetafileAnalyzer.h:180
OdTrVisMetafileParser::NextStepOp
NextStepOp
Definition: TrVisMetafileAnalyzer.h:128
TD_PackPush.h
OdTrVisMetafileParser::kSmBasic
@ kSmBasic
Definition: TrVisMetafileAnalyzer.h:134
OdTrVisMetafileComparator::compFuncArrayColor
static bool compFuncArrayColor(const void *pArray1, const void *pArray2, OdUInt32 nSize)
OdInt8
signed char OdInt8
Definition: OdPlatformSettings.h:755
OdTrVisMetafileParser::kTypeFMat3
@ kTypeFMat3
Definition: TrVisMetafileAnalyzer.h:63
OdTrVisMetafileParser::kLogicExclusive
@ kLogicExclusive
Definition: TrVisMetafileAnalyzer.h:174
OdTrVisMetafileParser::nextStep
const VarState & nextStep(NextStepOp op=kOpProcess)
OdTrVisMetafileParser::kTypeDVec4
@ kTypeDVec4
Definition: TrVisMetafileAnalyzer.h:62
TrVisMetafileStream.h
OdTrVisMetafileParser::kTypeUInt32
@ kTypeUInt32
Definition: TrVisMetafileAnalyzer.h:51
OdTrVisMetafileParser::StreamMarker::logicalCopyOut
void logicalCopyOut(StreamMarker &sm2)
Definition: TrVisMetafileAnalyzer.h:169
OdTrVisMetafileComparator
Definition: TrVisMetafileAnalyzer.h:227
OdTrVisMetafileComparator::compFuncUInt8
static bool compFuncUInt8(const void *pStream1, const void *pStream2, OdUInt32 nVars)
OdTrVisMetafileComparator::compFuncArrayTexCoord
static bool compFuncArrayTexCoord(const void *pArray1, const void *pArray2, OdUInt32 nSize)
OdTrVisMetafileComparator::m_par1
OdTrVisMetafileParser m_par1
Definition: TrVisMetafileAnalyzer.h:229
OdTrVisMetafileParser::VarState::asFVec
const float * asFVec() const
Definition: TrVisMetafileAnalyzer.h:290
OdTrVisMetafileParser::kTypeInt8
@ kTypeInt8
Definition: TrVisMetafileAnalyzer.h:48
OdIntPtr
ptrdiff_t OdIntPtr
Definition: OdPlatformSettings.h:884
OdTrVisMetafileComparator::compFuncArrayMarker
static bool compFuncArrayMarker(const void *pArray1, const void *pArray2, OdUInt32 nSize)
OdTrVisMetafileParser::streamScheme
Scheme streamScheme() const
Definition: TrVisMetafileAnalyzer.h:201
ODA_ASSERT
#define ODA_ASSERT(exp)
Definition: DebugStuff.h:49
OdTrVisMetafileParser::lRegFuncUInt16
static void lRegFuncUInt16(OdUInt32 &lReg, const VarState &varState)
OdTrVisMetafileParser::rewind
void rewind()
OdTrVisMetafileParser::StreamMarker
Definition: TrVisMetafileAnalyzer.h:160
OdTrVisMetafileComparator::compFuncDouble
static bool compFuncDouble(const void *pStream1, const void *pStream2, OdUInt32 nVars)
OdTrVisMetafileParser::kTypeInt64
@ kTypeInt64
Definition: TrVisMetafileAnalyzer.h:54
OdTrVisMetafileParser::VarState::asInt16
OdInt16 asInt16() const
Definition: TrVisMetafileAnalyzer.h:283
OdTrVisMetafileParser::InitialState::m_streamScheme
Scheme m_streamScheme
Definition: TrVisMetafileAnalyzer.h:146
OdTrVisMetafileParser::CurrentState::m_logicalReg
OdUInt32 m_logicalReg
Definition: TrVisMetafileAnalyzer.h:182
OdTrVisMetafileParser::CurrentState::m_logicalFlags
OdUInt16 m_logicalFlags
Definition: TrVisMetafileAnalyzer.h:183
OdTrVisMetafileComparator::compFuncUInt32
static bool compFuncUInt32(const void *pStream1, const void *pStream2, OdUInt32 nVars)
OdTrVisMetafileParser::lRegFuncUInt8
static void lRegFuncUInt8(OdUInt32 &lReg, const VarState &varState)
OdTrVisMetafileParser::VarState::asUInt16
OdUInt16 asUInt16() const
Definition: TrVisMetafileAnalyzer.h:282
OdTrVisMetafileParser::InitialState::m_pDataCont
const OdTrVisFlatMetafileContainer * m_pDataCont
Definition: TrVisMetafileAnalyzer.h:145
OdTrVisMetafileParser::kTypeInt32
@ kTypeInt32
Definition: TrVisMetafileAnalyzer.h:52
OdTrVisMetafileParser::BasisVarType
BasisVarType
Definition: TrVisMetafileAnalyzer.h:71
OdTrVisMetafileParser::VarState::asChunk
OdTrVisMetaRecType asChunk() const
Definition: TrVisMetafileAnalyzer.h:95
OdTrVisMetafileParser::kTypeDouble
@ kTypeDouble
Definition: TrVisMetafileAnalyzer.h:56
OdTrVisMetafileComparator::s_pCompArrayFunc
static bool(* s_pCompArrayFunc[OdTrVisArrayWrapper::Type_Marker+1])(const void *pArray1, const void *pArray2, OdUInt32 nSize)
Definition: TrVisMetafileAnalyzer.h:230
OdTrVisMetafileParser::VarState::asDPoint2
const OdGePoint2d & asDPoint2() const
Definition: TrVisMetafileAnalyzer.h:293
OdTrVisMetafileParser::InitialState::m_pStreamEnd
const OdUInt8 * m_pStreamEnd
Definition: TrVisMetafileAnalyzer.h:149
OdTrVisMetafileParser::kTypeUInt8
@ kTypeUInt8
Definition: TrVisMetafileAnalyzer.h:47
OdTrVisMetafileComparator::compare
bool compare(const OdBaseMetafileContainer *pContainer1, const OdBaseMetafileContainer *pContainer2, OdTrVisMetafileParser::Scheme streamScheme=OdTrVisMetafileParser::kSmBasic)
OdTrVisMetafileParser::kTypeUInt64
@ kTypeUInt64
Definition: TrVisMetafileAnalyzer.h:53
OdTrVisMetafileComparator::compFuncFloat
static bool compFuncFloat(const void *pStream1, const void *pStream2, OdUInt32 nVars)
OdTrVisMetafileParser::kTypeDMat4
@ kTypeDMat4
Definition: TrVisMetafileAnalyzer.h:66
OdTrVisMetafileParser::kLogicLoopSkip
@ kLogicLoopSkip
Definition: TrVisMetafileAnalyzer.h:175
void
typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture)
OdTrVisMetafileParser::m_skipMask
OdUInt64 m_skipMask
Definition: TrVisMetafileAnalyzer.h:192
OdTrVisMetafileParser::m_curState
struct OdTrVisMetafileParser::CurrentState m_curState
OdTrVisMetafileParser::Scheme
Scheme
Definition: TrVisMetafileAnalyzer.h:133
OdTrVisMetafileParser::s_basisFunc
static struct OdTrVisMetafileParser::BasisFuncs s_basisFunc[kNBasisTypes]
OdTrVisMetafileParser::VarState::asUInt32
OdUInt32 asUInt32() const
Definition: TrVisMetafileAnalyzer.h:284
OdUInt64
Definition: Int64.h:137
OdTrVisMetafileParser::kTypeInt16
@ kTypeInt16
Definition: TrVisMetafileAnalyzer.h:50
OdTrVisMetafileParser::kBasisUInt16
@ kBasisUInt16
Definition: TrVisMetafileAnalyzer.h:73
OdTrVisMetafileParser::VarState::isEOF
bool isEOF() const
Definition: TrVisMetafileAnalyzer.h:96
OdGePoint2d
Definition: GePoint2d.h:60
OdTrVisMetafileComparator::compFuncArrayVertex
static bool compFuncArrayVertex(const void *pArray1, const void *pArray2, OdUInt32 nSize)