24 #ifndef __OD_GS_LIGHT_NODE__
25 #define __OD_GS_LIGHT_NODE__
47 bool m_bIsVewportDependentLight;
48 bool m_bIsViewportDependentNeedUpdate;
49 std::map< OdUInt32, OdGiLightTraitsData* > m_mapVpDepTraitsData;
56 void clearVpDepTraitsMap();
101 static bool drawableIsLight(
const OdGiDrawable *pDrawable);
120 if( m_bIsVewportDependentLight )
122 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it = m_mapVpDepTraitsData.find( viewportID );
123 if( it != m_mapVpDepTraitsData.end() )
134 if( m_bIsVewportDependentLight )
136 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it = m_mapVpDepTraitsData.find( viewportID );
137 if( it != m_mapVpDepTraitsData.end() )
148 if( m_bIsVewportDependentLight )
150 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it = m_mapVpDepTraitsData.find( viewportID );
151 if( it != m_mapVpDepTraitsData.end() )
162 if( m_bIsVewportDependentLight )
164 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it = m_mapVpDepTraitsData.find( viewportID );
165 if( it != m_mapVpDepTraitsData.end() )
174 if( m_bIsVewportDependentLight )
176 std::map< OdUInt32, OdGiLightTraitsData* >::iterator it = m_mapVpDepTraitsData.find( viewportID );
177 if( it != m_mapVpDepTraitsData.end() )
182 return m_pLightTraits;
188 if( !m_bIsVewportDependentLight )
return;
189 if( !
data || !vdData )
return;
202 for( std::map< OdUInt32, OdGiLightTraitsData* >::iterator it = m_mapVpDepTraitsData.begin(); it != m_mapVpDepTraitsData.end(); ++it )
206 m_mapVpDepTraitsData.clear();
#define GS_TOOLKIT_EXPORT
OdSmartPtr< OdGsLightNode > OdGsLightNodePtr
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)
bool isOwnedBy(OdGsUpdateContext &ctx, OdGsContainerNode *pParent) const
virtual void invalidate(OdGsContainerNode *pParent, OdGsViewImpl *pView, OdUInt32 mask)
OdGeMatrix3d modelTransform() const
void setLightOwner(OdGsUpdateContext &ctx, OdGsContainerNode *pParent)
void adjustViewportDependentLightTraitsData(OdGiLightTraitsVpDepData *vdData, OdGiLightTraitsData *data)
OdGiLightTraitsData * lightTraitsData(OdUInt32 viewportID=ULONG_MAX)
OdGiSpotLightTraitsData * spotLightTraitsData(OdUInt32 viewportID=ULONG_MAX)
void setModelTransform(const OdGeMatrix3d &xform)
OdGsNode * getLightOwner() const
OdGiPointLightTraitsData * pointLightTraitsData(OdUInt32 viewportID=ULONG_MAX)
void updateViewportDependent(OdGsViewImpl *pView)
ODRX_DECLARE_MEMBERS(OdGsLightNode)
virtual void update(OdGsUpdateContext &ctx, OdGsContainerNode *pParent, OdSiSpatialIndex *)
virtual bool saveClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer) const
void clearVpDepTraitsMap()
OdGiDistantLightTraitsData * distantLightTraitsData(OdUInt32 viewportID=ULONG_MAX)
virtual bool isLight() const
static bool drawableIsLight(const OdGiDrawable *pDrawable)
virtual bool loadClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer)
OdGiWebLightTraitsData * webLightTraitsData(OdUInt32 viewportID=ULONG_MAX)
OdGiLightTraitsData::LightType lightType()
bool isOwnedBy(const OdGsNode *pOwner) const
OdGiDrawablePtr underlyingDrawable() const
GLint GLenum GLsizei GLsizei GLint GLsizei const void * data