CFx SDK Documentation  2023 SP0
RxObject.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 _ODRXOBJECT_INCLUDED_
25 #define _ODRXOBJECT_INCLUDED_ /* { Secret } *//
26 
27 //FELIX_CHANGE_BEGIN
28 #if defined(_SW_VERSION) && !defined (XENON)
29  #define OdRxModule ds_OdRxModule
30 #else
31 #endif
32 //FELIX_CHANGE_END
33 
34 #include "TD_PackPush.h"
35 #include "RootExport.h"
36 #include "OdHeap.h"
37 #include "OdArrayPreDef.h"
38 #include "OdString.h"
39 #include "BaseObjectPtr.h"
40 
41 class OdRxClass;
42 class OdRxModule;
43 
51 typedef void (*AppNameChangeFuncPtr)(const OdRxClass* classObj, OdString& newAppName, int saveVer);
52 
64 
65 //FELIX_CHANGE_BEGIN
66 #if defined(_SW_VERSION) && !defined (XENON)
67  #define FX_STUB static void stub() {} //we declare extra function making ODA binary incompatible with official release.
68 #else
69  #define FX_STUB
70 #endif
71 //FELIX_CHANGE_END
72 #define ODRX_DECLARE_MEMBERS_GENERIC(ClassType, ClassName)\
73 public: \
74  \
75 /*FELIX_CHANGE_BEGIN*/ \
76 /*introduce new function to all rx classes*/ \
77  FX_STUB \
78 /*FELIX_CHANGE_END*/ \
79  \
80  \
81  static OdSmartPtr<ClassName> cast(const OdRxObject* pObj) \
82  { \
83  if (pObj) \
84  return OdSmartPtr<ClassName>(((ClassName*)pObj->queryX(ClassName::desc())), kOdRxObjAttach); \
85  return (ClassName*)0; \
86  } \
87  \
88  static ClassType* g_pDesc; \
89  \
90  \
91  \
92  \
93  static ClassType* desc(); \
94  \
95  \
96  \
97  \
98  virtual ClassType* isA() const; \
99  \
100  \
101  \
102  virtual OdRxObject* queryX(const OdRxClass* protocolClass) const; \
103  \
104  \
105  \
106  static OdRxObjectPtr pseudoConstructor(); \
107  \
108  \
109  \
110  static OdSmartPtr<ClassName> createObject() \
111  { if (!desc()) throw OdError(eNotInitializedYet); return desc()->create(); } \
112  \
113  \
114  static void rxInit(); \
115  static void rxInit(AppNameChangeFuncPtr appNameChangeFunc); \
116  \
117 /* Unregisters ClassName with Teigha. **/ \
118  static void rxUninit()
119 
120 
131 #define ODRX_DECLARE_MEMBERS(ClassName)\
132  ODRX_DECLARE_MEMBERS_GENERIC(OdRxClass, ClassName)
133 
140 #define EMPTY_CONSTR(ClassName)(ClassName*)0
141 
152 #define NEWOBJ_CONSTR(ClassName) OdSmartPtr<ClassName>(new ClassName, kOdRxObjAttach)
153 
154 #define ODRX_DEFINE_RTTI_MEMBERS_GENERIC(ClassType, ClassName, ParentClass) \
155  \
156  ClassType* ClassName::g_pDesc = 0; \
157  ClassType* ClassName::desc() { return g_pDesc; } \
158  ClassType* ClassName::isA() const { return g_pDesc; } \
159  \
160  OdRxObject* ClassName::queryX(const OdRxClass* pClass) const { \
161  return ::odQueryXImpl<ClassName, ParentClass>(this, pClass); \
162  }
163 
170 #define ODRX_DEFINE_RTTI_MEMBERS(ClassName, ParentClass) \
171  ODRX_DEFINE_RTTI_MEMBERS_GENERIC(OdRxClass, ClassName, ParentClass)
172 
173 #define ODRX_DEFINE_INIT_MEMBERS_GENERIC(ClassName, CREATE_CLASS_INSTANCE, CREATE_CLASS_INSTANCE2) \
174  \
175 /* Registers this class with Teigha. */ \
176 void ClassName::rxInit() \
177 { \
178  if (!ClassName::g_pDesc) { \
179  ClassName::g_pDesc = CREATE_CLASS_INSTANCE; \
180  } else { \
181  ODA_ASSERT(("Class ["#ClassName"] is already initialized.",0)); \
182  throw OdError(eExtendedError); \
183  } \
184 } \
185 void ClassName::rxInit(AppNameChangeFuncPtr pAppNameChangeCallback) \
186 { \
187  if (!ClassName::g_pDesc) { \
188  ClassName::g_pDesc = CREATE_CLASS_INSTANCE2; \
189  } else { \
190  ODA_ASSERT(("Class ["#ClassName"] is already initialized.",0)); \
191  throw OdError(eExtendedError); \
192  } \
193 } \
194  \
195 /* Unregisters this class with Teigha. */ \
196 void ClassName::rxUninit() \
197 { \
198  if (ClassName::g_pDesc) { \
199  ::deleteOdRxClass(ClassName::g_pDesc); \
200  ClassName::g_pDesc = 0; \
201  } else { \
202  ODA_ASSERT(("Class ["#ClassName"] is not initialized yet.",0)); \
203  throw OdError(eNotInitializedYet); \
204  } \
205 }
206 
215 #define ODRX_DEFINE_INIT_MEMBERS(ClassName, ParentClass, pseudoConsFn, DwgVer, \
216  MaintVer, nProxyFlags, szDWGClassName, \
217  szDxfName, szAppName, nCustomFlags) \
218  ODRX_DEFINE_INIT_MEMBERS_GENERIC( \
219  ClassName, \
220  (::newOdRxClass(szDWGClassName, ParentClass::desc(), pseudoConsFn, DwgVer, \
221  MaintVer, nProxyFlags, szDxfName, szAppName, NULL, nCustomFlags)), \
222  (::newOdRxClass(szDWGClassName, ParentClass::desc(), pseudoConsFn, DwgVer, \
223  MaintVer, nProxyFlags, szDxfName, szAppName, pAppNameChangeCallback, nCustomFlags)))
224 
225 
232 #define ODRX_DEFINE_PSEUDOCONSTRUCTOR(ClassName,DOCREATE) \
233  \
234 OdRxObjectPtr ClassName::pseudoConstructor() { return OdRxObjectPtr(DOCREATE(ClassName)); }
235 
242 #define ODRX_DEFINE_MEMBERS2(ClassName,ParentClass,pseudoConsFn,DwgVer,MaintVer,nProxyFlags,szDWGClassName,szDxfName,szAppName,nCustomFlags) \
243  \
244 ODRX_DEFINE_RTTI_MEMBERS(ClassName,ParentClass) \
245  \
246 ODRX_DEFINE_INIT_MEMBERS(ClassName,ParentClass,pseudoConsFn, \
247  DwgVer,MaintVer,nProxyFlags,szDWGClassName,szDxfName,szAppName,nCustomFlags)
248 
249 #define ODRX_DEFINE_MEMBERS(ClassName,ParentClass,DOCREATE,DwgVer,MaintVer,nProxyFlags,szDWGClassName,szDxfName,szAppName)\
250  \
251 ODRX_DEFINE_MEMBERS2(ClassName,ParentClass,ClassName::pseudoConstructor, \
252  DwgVer,MaintVer,nProxyFlags,szDWGClassName,szDxfName,szAppName,0) \
253  \
254 ODRX_DEFINE_PSEUDOCONSTRUCTOR(ClassName,DOCREATE)
255 
256 #define ODRX_DEFINE_MEMBERS_EX(ClassName,ParentClass,DOCREATE,DwgVer,MaintVer,nProxyFlags,szDWGClassName,szDxfName,szAppName,nCustomFlags)\
257  \
258 ODRX_DEFINE_MEMBERS2(ClassName,ParentClass,ClassName::pseudoConstructor, \
259  DwgVer,MaintVer,nProxyFlags,szDWGClassName,szDxfName,szAppName,nCustomFlags) \
260  \
261 ODRX_DEFINE_PSEUDOCONSTRUCTOR(ClassName,DOCREATE)
262 
263 
264 #define ODRX_NO_CONS_DEFINE_MEMBERS_ALTNAME(ClassName,ParentClass,szClassName) \
265  \
266 ODRX_DEFINE_MEMBERS2(ClassName,ParentClass,0,0,0,0,szClassName,OdString::kEmpty,OdString::kEmpty,0) \
267  \
268 ODRX_DEFINE_PSEUDOCONSTRUCTOR(ClassName,EMPTY_CONSTR)
269 
270 
271 
272 #define ODRX_NO_CONS_DEFINE_MEMBERS(ClassName,ParentClass) \
273  \
274 ODRX_NO_CONS_DEFINE_MEMBERS_ALTNAME(ClassName,ParentClass,OD_T(#ClassName))
275 
276 
277 
278 #define ODRX_CONS_DEFINE_MEMBERS_ALTNAME(ClassName,ParentClass,szClassName,DOCREATE) \
279  \
280 ODRX_DEFINE_MEMBERS2(ClassName,ParentClass,ClassName::pseudoConstructor,0,0,0,szClassName,OdString::kEmpty,OdString::kEmpty,0) \
281  \
282 ODRX_DEFINE_PSEUDOCONSTRUCTOR(ClassName,DOCREATE)
283 
284 
285 
286 #define ODRX_CONS_DEFINE_MEMBERS(ClassName,ParentClass,DOCREATE) \
287  \
288 ODRX_CONS_DEFINE_MEMBERS_ALTNAME(ClassName,ParentClass,OD_T(#ClassName),DOCREATE)
289 
290 
291 
292 #define ODRX_DXF_DEFINE_MEMBERS(ClassName,ParentClass,DOCREATE,DwgVer,MaintVer, nProxyFlags,DxfName,AppName) \
293  \
294 ODRX_DEFINE_MEMBERS(ClassName,ParentClass,DOCREATE, \
295  DwgVer,MaintVer,nProxyFlags,OD_T(#ClassName),OD_T(#DxfName),OD_T(#AppName))
296 
297 
298 
299 #define ODRX_DXF_CONS_DEFINE_MEMBERS(ClassName,ParentClass,DwgVer,MaintVer,nProxyFlags,DxfName,AppName) \
300  \
301 ODRX_DEFINE_MEMBERS2(ClassName,ParentClass,ClassName::pseudoConstructor, \
302  DwgVer,MaintVer,nProxyFlags,OD_T(#ClassName),OD_T(#DxfName),OD_T(#AppName),0) \
303  \
304 ODRX_DEFINE_PSEUDOCONSTRUCTOR(ClassName,NEWOBJ_CONSTR)
305 
306 
311 namespace OdRx
312 {
313  enum Ordering
314  {
315  kLessThan =-1, // This object < Specified Object
316  kEqual = 0, // This object == Specified Object
317  kGreaterThan = 1, // This object > Specified Object
318  kNotOrderable = 2 // These objects cannot be ordered.
319  };
320 
322  {
323  kMTRender = 0x01, // worldDraw() or viewportDraw() calls from different threads are allowed
324  // for highest level (MS or PS), elsewhere they should always happen
325  // in one dedicated thread.
326  kMTRenderInBlock = 0x02, // Calls to worldDraw() or viewportDraw() methods from different threads are allowed
327  // if the drawable is located inside a block (compound object).
328  kMTRenderNested = 0x04, // worldDraw() or viewportDraw() from different threads are allowed for
329  // nested drawables of this compound object.
330  kMTRenderReserved = 0x08, // Reserved for future use.
331  kMTRenderMask = 0x0f, // Combination of all MTRender-dependent flags.
332  kMTLoading = 0x80, // Multithread loading is supported for this object.
333  kHistoryAware = 0x100 // The information written by the object to the undo filer can be saved in the history file (is valid between sessions)
334  };
335 }
336 
364 {
368  inline void internalAddRef();
369 
381  void assign(
382  const OdRxObject* pObject)
383  {
384  if (m_pObject != pObject) // To prevent reference counter dec/inc which
385  { // may cause object destruction or subClose
386  release();
387  m_pObject = (OdRxObject*)pObject;
388  internalAddRef();
389  }
390  }
391 
392 public:
393 
408  const OdRxObject* pSource,
409  OdRxObjMod)
410  : OdBaseObjectPtr(pSource)
411  {
412  }
413 
415  const OdRxObject* pSource)
416  : OdBaseObjectPtr(pSource)
417  {
418  internalAddRef();
419  }
420 
422  const OdRxObjectPtr& pSource)
423  : OdBaseObjectPtr(pSource.get())
424  {
425  internalAddRef();
426  }
427 
429  const OdBaseObjectPtr& pSource)
430  : OdBaseObjectPtr(pSource.get())
431  {
432  internalAddRef();
433  }
434 
449  void attach(
450  const OdRxObject* pObject) { release(); m_pObject = (OdRxObject*)pObject; }
451 
459  {
460  release();
461  }
462 
473  inline void release();
474 
486  {
487  OdRxObject* res = m_pObject;
488  m_pObject = 0;
489  return res;
490  }
491 
501  const OdRxObjectPtr& source)
502  { assign(source); return *this; }
503 
505  const OdRxObject* source)
506  { assign(source); return *this; }
507 
509  const OdBaseObjectPtr& source)
510  { assign(source.get()); return *this; }
511 
522  OdRxObject* get() { return m_pObject; }
523  const OdRxObject* get() const { return m_pObject; }
524 
535  const OdRxObject* operator ->() const { return m_pObject; }
536 
537 #ifdef ODA_GCC_2_95
548  operator OdRxObject*() const { return m_pObject; }
549 #else
556  operator OdRxObject*() { return m_pObject; }
557 
558  operator const OdRxObject*() const { return m_pObject; }
559 #endif
560 
562  const OdRxObject* pObject) const { return (m_pObject==pObject); }
563 
565  const OdRxObject* pObject) const { return (m_pObject!=pObject); }
566 };
567 
568 
583 {
584 
588  OdRxObject(const OdRxObject&);
589 
593  OdRxObject& operator = (const OdRxObject&);
594 //FELIX_CHANGE_BEGIN
595 /*
596 protected:
597 */
598 public:
599 //FELIX_CHANGE_END
604 
605 public:
610 
614  virtual ~OdRxObject();
615 
632  virtual OdRxObject* queryX(
633  const OdRxClass* pClass) const;
634 
651  virtual OdRxObject* x(
652  const OdRxClass* pClass) const;
653 
660  const OdRxObject* pointer)
661  {
662  OdRxObjectPtr pRes;
663  if (pointer)
664  pRes.attach(pointer->queryX(desc()));
665  return pRes;
666  }
667 
682  static OdRxClass* desc();
683 
684 
699  virtual OdRxClass* isA() const;
700 
710  virtual void addRef() = 0;
711 
721  virtual void release() = 0;
722 
732  virtual long numRefs() const;
733 
747  bool isKindOf(
748  const OdRxClass* pClass) const
749  {
750  OdRxObjectPtr pRes;
751  pRes.attach(queryX(pClass));
752  return (!pRes.isNull());
753  }
754 
758  virtual OdRxObjectPtr clone() const;
759 
773  virtual void copyFrom(
774  const OdRxObject* pSource);
775 
803  const OdRxObject* pOther) const;
804 
816  virtual bool isEqualTo(
817  const OdRxObject* pOther) const;
818 };
819 
820 
821 
822 void OdRxObjectPtr::internalAddRef()
823 {
824  if(m_pObject) { m_pObject->addRef(); }
825 }
827 {
828  if (m_pObject)
829  {
830  m_pObject->release();
831  m_pObject = NULL;
832  }
833 }
834 
835 #include "SmartPtr.h"
836 
837 
839  {
851  };
852 
853 class OdRxOverruleIterator;
858 
869 
884 {
885 protected:
887 public:
889 
905  OdRxClass* pProtocolClass,
906  OdRxObject* pProtocolObject);
907 
923  const OdRxClass* pProtocolClass);
924 
939  OdRxClass* pProtocolClass);
940 
954  virtual OdRxObjectPtr create() const = 0;
955 
967  virtual const OdString appName() const = 0;
968 
978 
988  virtual const OdString dxfName() const = 0;
989 
999  virtual const OdString name() const = 0;
1000 
1019  OdDb::MaintReleaseVer* pMaintReleaseVer = 0) const = 0;
1020 
1030  virtual OdUInt32 proxyFlags() const = 0;
1031 
1045  virtual bool isDerivedFrom(
1046  const OdRxClass* pClass) const;
1047 
1058  virtual OdRxClass* myParent() const = 0;
1059 
1072  virtual OdRxModule* module() const = 0;
1073 
1084 
1097  virtual void setConstructor(
1098  OdPseudoConstructorType psuedoConstr) = 0;
1099 
1109  virtual OdUInt32 customFlags() const = 0;
1110 
1111  virtual OdRxOverruleIterator* getOverrule(OverrulingType t) const = 0;
1112  virtual void setOverrule(OdRxOverruleIterator* pIt, OverrulingType t) = 0;
1113 };
1114 
1122 
1123 template <class Class, class Parent>
1124 OdRxObject* odQueryXImpl(const Class* pThis, const OdRxClass* pClass)
1125 {
1126  ODA_ASSERT(pClass!=0); // if you get here, most likely requested class is not registred
1127  OdRxObject* pObj = 0;
1128  if(pClass == Class::desc())
1129  {
1130  pObj = (OdRxObject*)pThis;
1131  pObj->addRef();
1132  }
1133  else
1134  {
1135  pObj = Class::desc()->getX(pClass).detach();
1136  if(!pObj)
1137  pObj = pThis->Parent::queryX(pClass);
1138  }
1139  return pObj;
1140 }
1141 
1149  const OdString& sClassName);
1150 
1170  const OdString& sClassName,
1171  OdRxClass* pBaseClass,
1172  OdPseudoConstructorType pConstr = 0,
1173  int DwgVer = 0,
1174  int MaintVer = 0,
1175  int nProxyFlags = 0,
1176  const OdString& sDxfName = OdString::kEmpty,
1177  const OdString& sAppName = OdString::kEmpty,
1178  AppNameChangeFuncPtr fNameChangeFunc = NULL,
1179  int nCustomFlags = 0
1180  );
1181 
1188  OdRxClass* pClass);
1189 
1194 
1201 
1202 #include "TD_PackPop.h"
1203 
1204 #endif //_ODRXOBJECT_INCLUDED_
1205 
#define ODA_ASSERT(exp)
Definition: DebugStuff.h:49
#define NULL
Definition: GsProperties.h:177
unsigned int OdUInt32
#define ODRX_ABSTRACT
#define FIRSTDLL_EXPORT
Definition: RootExport.h:39
FIRSTDLL_EXPORT OdRxObjectPtr odrxCreateObject(const OdString &sClassName)
OdRxObjectPtr(* OdPseudoConstructorType)()
Definition: RxObject.h:868
FIRSTDLL_EXPORT void deleteOdRxClass(OdRxClass *pClass)
void(* ODRXOBJECT_CALLBACK)(const OdRxObject *)
Definition: RxObject.h:1198
FIRSTDLL_EXPORT OdRxClass * newOdRxClass(const OdString &sClassName, OdRxClass *pBaseClass, OdPseudoConstructorType pConstr=0, int DwgVer=0, int MaintVer=0, int nProxyFlags=0, const OdString &sDxfName=OdString::kEmpty, const OdString &sAppName=OdString::kEmpty, AppNameChangeFuncPtr fNameChangeFunc=NULL, int nCustomFlags=0)
OdRxObjMod
Definition: RxObject.h:63
@ kOdRxObjAttach
Definition: RxObject.h:63
OdSmartPtr< OdRxClass > OdRxClassPtr
Definition: RxObject.h:1121
OdRxObject * odQueryXImpl(const Class *pThis, const OdRxClass *pClass)
Definition: RxObject.h:1124
OdArray< OdRxObjectPtr > OdRxObjectPtrArray
Definition: RxObject.h:1193
OverrulingType
Definition: RxObject.h:839
@ kGripOverrule
Definition: RxObject.h:846
@ kDrawableOverrule
Definition: RxObject.h:840
@ kHighlightOverrule
Definition: RxObject.h:844
@ kVisibilityOverrule
Definition: RxObject.h:849
@ kOsnapOverrule
Definition: RxObject.h:848
@ kSubentityOverrule
Definition: RxObject.h:845
@ kGeometryOverrule
Definition: RxObject.h:843
@ kPropertiesOverrule
Definition: RxObject.h:842
@ kTotalOverrules
Definition: RxObject.h:850
@ kObjectOverrule
Definition: RxObject.h:841
@ kTransformOverrule
Definition: RxObject.h:847
FIRSTDLL_EXPORT void odrxUnregisterDestructorCallback()
void(* OdRxMemberCollectionConstructorPtr)(OdRxMemberCollectionBuilder &, void *)
Definition: RxObject.h:857
void(* AppNameChangeFuncPtr)(const OdRxClass *classObj, OdString &newAppName, int saveVer)
Definition: RxObject.h:51
FIRSTDLL_EXPORT void odrxRegisterDestructorCallback(const ODRXOBJECT_CALLBACK callbackFunc)
OdRxObject * m_pObject
Definition: BaseObjectPtr.h:53
bool isNull() const
Definition: BaseObjectPtr.h:70
virtual OdPseudoConstructorType constructor()
virtual OdRxClass * myParent() const =0
virtual bool isDerivedFrom(const OdRxClass *pClass) const
virtual OdRxObjectPtr create() const =0
virtual OdRxOverruleIterator * getOverrule(OverrulingType t) const =0
virtual OdRxModule * module() const =0
virtual void setConstructor(OdPseudoConstructorType psuedoConstr)=0
virtual void setOverrule(OdRxOverruleIterator *pIt, OverrulingType t)=0
ODRX_DECLARE_MEMBERS(OdRxClass)
virtual OdRxObjectPtr getX(const OdRxClass *pProtocolClass)
virtual const OdString name() const =0
virtual OdUInt32 customFlags() const =0
virtual OdUInt32 proxyFlags() const =0
virtual OdRxObjectPtr delX(OdRxClass *pProtocolClass)
virtual OdDb::DwgVersion getClassVersion(OdDb::MaintReleaseVer *pMaintReleaseVer=0) const =0
virtual OdRxObjectPtr addX(OdRxClass *pProtocolClass, OdRxObject *pProtocolObject)
virtual const OdString appName() const =0
virtual const OdString dxfName() const =0
virtual AppNameChangeFuncPtr appNameCallbackPtr() const =0
static OdRxClass * desc()
virtual void release()=0
virtual OdRxObject * x(const OdRxClass *pClass) const
virtual OdRxClass * isA() const
virtual bool isEqualTo(const OdRxObject *pOther) const
virtual ~OdRxObject()
virtual void copyFrom(const OdRxObject *pSource)
virtual OdRxObjectPtr clone() const
virtual OdRxObject * queryX(const OdRxClass *pClass) const
virtual OdRx::Ordering comparedTo(const OdRxObject *pOther) const
virtual long numRefs() const
static OdRxObjectPtr cast(const OdRxObject *pointer)
Definition: RxObject.h:659
bool isKindOf(const OdRxClass *pClass) const
Definition: RxObject.h:747
OdRxObject()
Definition: RxObject.h:609
ODRX_HEAP_OPERATORS()
virtual void addRef()=0
OdRxObject * detach()
Definition: RxObject.h:485
OdRxObjectPtr(const OdBaseObjectPtr &pSource)
Definition: RxObject.h:428
OdRxObjectPtr(const OdRxObject *pSource)
Definition: RxObject.h:414
OdRxObject * operator->()
Definition: RxObject.h:534
OdRxObject * get()
Definition: RxObject.h:522
bool operator==(const OdRxObject *pObject) const
Definition: RxObject.h:561
OdRxObjectPtr & operator=(const OdRxObjectPtr &source)
Definition: RxObject.h:500
void attach(const OdRxObject *pObject)
Definition: RxObject.h:449
void release()
Definition: RxObject.h:826
OdRxObjectPtr(const OdRxObjectPtr &pSource)
Definition: RxObject.h:421
bool operator!=(const OdRxObject *pObject) const
Definition: RxObject.h:564
OdRxObjectPtr(const OdRxObject *pSource, OdRxObjMod)
Definition: RxObject.h:407
const OdRxObject * get() const
Definition: RxObject.h:523
FIRSTDLL_EXPORT_STATIC static const OdString kEmpty
Definition: OdString.h:98
GLenum void ** pointer
Definition: gles2_ext.h:288
typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture)
GLsizei GLsizei GLchar * source
Definition: gles2_ext.h:282
OdRxClass Class
Definition: RxFS.h:42
DwgVersion
Definition: OdaDefs.h:46
MaintReleaseVer
Definition: OdaDefs.h:107
Definition: RxDefs.h:36
Ordering
Definition: RxObject.h:314
@ kLessThan
Definition: RxObject.h:315
@ kNotOrderable
Definition: RxObject.h:318
@ kGreaterThan
Definition: RxObject.h:317
@ kEqual
Definition: RxObject.h:316
MTSupport
Definition: RxObject.h:322
@ kMTRender
Definition: RxObject.h:323
@ kMTLoading
Definition: RxObject.h:332
@ kHistoryAware
Definition: RxObject.h:333
@ kMTRenderReserved
Definition: RxObject.h:330
@ kMTRenderMask
Definition: RxObject.h:331
@ kMTRenderInBlock
Definition: RxObject.h:326
@ kMTRenderNested
Definition: RxObject.h:328