24#ifndef __OD_GS_LIGHT_NODE__
25#define __OD_GS_LIGHT_NODE__
54 kLastFlag = kLightDrawableIsInvisible
63 void clearVpDepTraitsMap();
234 static bool drawableIsLight(
const OdGiDrawable *pDrawable);
258 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it =
m_mapVpDepTraitsData.find( viewportID );
272 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it =
m_mapVpDepTraitsData.find( viewportID );
286 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it =
m_mapVpDepTraitsData.find( viewportID );
300 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it =
m_mapVpDepTraitsData.find( viewportID );
312 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it =
m_mapVpDepTraitsData.find( viewportID );
324 if( !
data || !vdData )
return;
#define GS_TOOLKIT_EXPORT
OdSmartPtr< OdGsLightNode > OdGsLightNodePtr
#define GETBIT(flags, bit)
static void deleteLightTraitsData(OdGiLightTraitsData *pLightTraits)
static LightType drawableLightType(const OdGiDrawable *pDrawable)
double vpDepDimming() const
virtual bool isLight() const
OdGsLightNode(OdGsBaseModel *pModel, const OdGiDrawable *pUnderlyingDrawable, bool bSetGsNode=true)
LightInsertPath m_lightInsertParents
bool isOwnedBy(OdGsUpdateContext &ctx, OdGsContainerNode *pParent) const
virtual void invalidate(OdGsContainerNode *pParent, OdGsViewImpl *pView, OdUInt32 mask)
OdGeMatrix3d modelTransform() const
@ kLightDrawableIsInvisible
@ kViewportDependentLight
OdGiDistantLightTraitsData * distantLightTraitsData(OdUInt32 viewportID=(OdUInt32) ULONG_MAX)
void setLightOwner(OdGsUpdateContext &ctx, OdGsContainerNode *pParent)
void adjustViewportDependentLightTraitsData(OdGiLightTraitsVpDepData *vdData, OdGiLightTraitsData *data)
std::map< OdUInt32, OdGiLightTraitsData * > m_mapVpDepTraitsData
OdGiPointLightTraitsData * pointLightTraitsData(OdUInt32 viewportID=(OdUInt32) ULONG_MAX)
void setModelTransform(const OdGeMatrix3d &xform)
OdGiLightTraitsData * m_pLightTraits
void updateViewportDependent(OdGsViewImpl *pView)
OdGiLightTraitsData * lightTraitsData(OdUInt32 viewportID=(OdUInt32) ULONG_MAX)
ODRX_DECLARE_MEMBERS(OdGsLightNode)
virtual void update(OdGsUpdateContext &ctx, OdGsContainerNode *pParent, OdSiSpatialIndex *)
virtual bool saveClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer) const
void clearVpDepTraitsMap()
virtual bool isLight() const
OdGsNode * getLightOwner() const
static bool drawableIsLight(const OdGiDrawable *pDrawable)
OdVector< OdIntPtr, OdMemoryAllocator< OdIntPtr > > LightInsertPath
virtual bool loadClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer)
void contextualUpdate(OdGsUpdateContext &ctx)
OdGsNode * m_pLightParent
OdGeMatrix3d m_model2World
OdGiLightTraitsData::LightType lightType()
OdGiWebLightTraitsData * webLightTraitsData(OdUInt32 viewportID=(OdUInt32) ULONG_MAX)
bool isOwnedBy(const OdGsNode *pOwner) const
OdGiSpotLightTraitsData * spotLightTraitsData(OdUInt32 viewportID=(OdUInt32) ULONG_MAX)
OdGiDrawablePtr underlyingDrawable() const
GLint GLenum GLsizei GLsizei GLint GLsizei const void * data