24 #ifndef __GSOVERLAYDEFS_H_INCLUDED_
25 #define __GSOVERLAYDEFS_H_INCLUDED_
198 template <
typename OverlayDataType = OdGsOverlayDataPlaceholder>
204 virtual OverlayDataType *
createData() {
return new OverlayDataType(); }
205 virtual void deleteData(OverlayDataType *pObj) {
delete pObj; }
227 for (
OdUInt32 nOverlay = 0; nOverlay < nOverlays; nOverlay++)
229 if (pOverlays[nOverlay].m_data)
231 OverlayDataType *pNewData = pAllocator->
createData();
232 *pNewData = *pOverlays[nOverlay].
m_data;
234 pOverlays[nOverlay].
m_data = pNewData;
281 for (
OdUInt32 nOverlay = 0; nOverlay < nOverlays; nOverlay++)
283 if (pOverlays[nOverlay].m_data)
346 if (
GETBIT(bitSet, 1 << nOlay))
@ kGsDirectTopmostOverlay
@ kGsHighlightSelectionOverlay
#define SETBIT(flags, bit, value)
#define SETBIT_0(flags, bit)
#define GETBIT(flags, bit)
#define SETBIT_1(flags, bit)
T & at(size_type arrayIndex)
const T * asArrayPtr() const
void resize(size_type logicalLength, const T &value)
const OverlayDataType * overlayData() const
Iterator(OverlayDataArray &_overlaysData, OdUInt32 _bitSet)
OverlayDataType * overlayData()
OdGsOverlayId overlayId() const
OverlayDataArray & overlaysData
OdGsOverlayDataContainer()
bool deactivateOverlay(OdGsOverlayId id)
bool isMultipleOverlays() const
bool isOverlayActive(OdGsOverlayId id) const
bool isAnyOverlayInvalid() const
OdUInt32 m_uActiveOverlays
OverlayDataArray m_overlaysData
bool isAllOverlaysIvalid() const
void setOverlaysInvalid(OdUInt32 nOverlays, bool bSet=true)
void substituteAllocator(Allocator *pAllocator)
~OdGsOverlayDataContainer()
OdUInt32 m_uInvalidOverlays
void setOverlaysInvalid(bool bSet=true)
bool activateOverlay(OdGsOverlayId id)
void subAllocator(Allocator *pAllocator)
void activate(OdGsOverlayId id) const
OdArray< OverlayData > OverlayDataArray
OdUInt32 activeOverlays() const
void setOverlayInvalid(OdGsOverlayId id, bool bSet=true)
const OverlayDataType * getOverlayData(OdGsOverlayId id, bool bActivate=false) const
OdUInt32 invalidOverlays() const
OverlayDataType * getOverlayData(OdGsOverlayId id, bool bActivate=false)
void deactivate(OdGsOverlayId id)
Iterator newIterator(OdUInt32 nMask=kGsAllOverlays) const
bool execForEach(ForEach &impl, OdUInt32 nMask=kGsAllOverlays) const
bool isOverlayInvalid(OdGsOverlayId id) const
OdGsOverlayDataPlaceholder()
~OdGsOverlayDataPlaceholder()
virtual OverlayDataType * createData()
virtual void deleteData(OverlayDataType *pObj)
virtual bool call(OdGsOverlayId overlayId, OverlayDataType *pData)=0
OdUInt32 m_numOverlayRefs
static OdUInt32 overlayFlags(OdGsOverlayId id)
static bool validateOverlayIndex(OdGsOverlayId id)
static bool validateDefinitions(OdUInt32 gsModelDef)
static OdUInt32 overlayIndexToRenderingOrder(OdGsOverlayId id)
static bool validateRenderingOrder(OdUInt32 renderOrder)
static OdGsOverlayId overlayRenderingOrderToIndex(OdUInt32 renderOrder)