OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
Specialized version of Ogre::Light which caches which zones the light affects. More...
#include <OgrePCZLight.h>
Public Member Functions | |
PCZLight () | |
Default constructor (for Python mainly). | |
PCZLight (const String &name) | |
Normal constructor. | |
~PCZLight () | |
Standard destructor. | |
void | _notifyMoved (void) override |
MovableObject notified when SceneNode changes. | |
void | addZoneToAffectedZonesList (PCZone *zone) |
Manually add a zone to the zones affected list. | |
bool | affectsVisibleZone (void) |
bool | affectsZone (PCZone *zone) |
Check if a zone is in the list of zones affected by the light. | |
void | clearAffectedZones (void) |
Clear the affectedZonesList. | |
void | clearNeedsUpdate (void) |
Clear update flag. | |
const String & | getMovableType (void) const override |
Overridden from MovableObject. | |
bool | getNeedsUpdate (void) |
Get status of need for update. this checks all affected zones. | |
void | removeZoneFromAffectedZonesList (PCZone *zone) |
Manually remove a zone from the affected list. | |
void | setAffectsVisibleZone (bool affects) |
Marks a light as affecting a visible zone. | |
void | updateZones (PCZone *defaultZone, unsigned long frameCount) |
Update the list of zones the light affects. | |
Public Member Functions inherited from Ogre::Light | |
Light () | |
Default constructor (for Python mainly). | |
Light (const String &name) | |
Normal constructor. | |
~Light () | |
Standard destructor. | |
void | _calcTempSquareDist (const Vector3 &worldPos) |
internal method for calculating current squared distance from some world position | |
Real | _deriveShadowFarClipDistance () const |
Derive a shadow camera far distance. | |
Real | _deriveShadowFarClipDistance (const Camera *) const |
Real | _deriveShadowNearClipDistance (const Camera *maincam) const |
Derive a shadow camera near distance from either the light, or from the main camera if the light doesn't have its own setting. | |
virtual const PlaneBoundedVolumeList & | _getFrustumClipVolumes (const Camera *const cam) const |
Internal method for calculating the clip volumes outside of the frustum which can be used to determine which objects are casting shadow on the frustum as a whole. | |
size_t | _getIndexInFrame () const |
Returns the index at which this light is in the current render. | |
virtual const PlaneBoundedVolume & | _getNearClipVolume (const Camera *const cam) const |
Internal method for calculating the 'near clip volume', which is the volume formed between the near clip rectangle of the camera and the light. | |
void | _notifyAttached (Node *parent, bool isTagPoint=false) override |
Internal method called to notify the object that it has been attached to a node. | |
void | _notifyIndexInFrame (size_t i) |
void | _setCameraRelative (Camera *cam) |
Set the camera which this light should be relative to, for camera-relative rendering. | |
virtual void | _updateCustomGpuParameter (uint16 paramIndex, const GpuProgramParameters::AutoConstantEntry &constantEntry, GpuProgramParameters *params) const |
Update a custom GpuProgramParameters constant which is derived from information only this Light knows. | |
void | _updateRenderQueue (RenderQueue *queue) override |
Internal method by which the movable object must add Renderable subclass instances to the rendering queue. | |
AnimableValuePtr | createAnimableValue (const String &valueName) override |
Create a reference-counted AnimableValuePtr for the named value. | |
Vector4 | getAs4DVector (bool cameraRelativeIfSet=false) const |
Returns the details of this light as a 4D vector. | |
const Vector4f & | getAttenuation () const |
Returns all the attenuation params as (range, constant, linear, quadratic) | |
float | getAttenuationConstant (void) const |
Returns the constant factor in the attenuation formula. | |
float | getAttenuationLinear (void) const |
Returns the linear factor in the attenuation formula. | |
float | getAttenuationQuadric (void) const |
Returns the quadric factor in the attenuation formula. | |
float | getAttenuationRange (void) const |
Returns the absolute upper range of the light. | |
const AxisAlignedBox & | getBoundingBox (void) const override |
Retrieves the local axis-aligned bounding box for this object. | |
Real | getBoundingRadius (void) const override |
Retrieves the radius of the origin-centered bounding sphere for this object. | |
const Vector4f & | getCustomParameter (uint16 index) const |
Returns the custom value associated with this Light at the given index. | |
const ShadowCameraSetupPtr & | getCustomShadowCameraSetup (void) const |
Return a pointer to the custom shadow camera setup (null means use SceneManager global version). | |
const Vector3 & | getDerivedDirection (void) const |
Retrieves the direction of the light including any transform from nodes it is attached to. | |
const Vector3 & | getDerivedPosition (bool cameraRelativeIfSet=false) const |
Retrieves the position of the light including any transform from nodes it is attached to. | |
Vector3f | getDerivedSourceHalfHeight () const |
The height half vector of the source in world space. | |
Vector3f | getDerivedSourceHalfWidth () const |
The width half vector of the source in world space. | |
const ColourValue & | getDiffuseColour (void) const |
Returns the colour of the diffuse light given off by this light source (see setDiffuseColour for more info). | |
const Vector3 & | getDirection (void) const |
const Vector3 & | getPosition (void) const |
Returns the position of the light. | |
Real | getPowerScale (void) const |
Returns the scaling factor which indicates the relative power of a light. | |
Real | getShadowFarClipDistance () const |
Returns the far clip plane distance to be used by the shadow camera, if this light casts texture shadows. | |
Real | getShadowFarDistance (void) const |
Returns the maximum distance away from the camera that shadows by this light will be visible. | |
Real | getShadowFarDistanceSquared (void) const |
Real | getShadowNearClipDistance () const |
Returns the near clip plane distance to be used by the shadow camera, if this light casts texture shadows. | |
Vector2f | getSourceSize () const |
const ColourValue & | getSpecularColour (void) const |
Returns the colour of specular light given off by this light source. | |
Real | getSpotlightFalloff (void) const |
Returns the falloff between the inner and outer cones of the spotlight. | |
const Radian & | getSpotlightInnerAngle (void) const |
Returns the angle covered by the spotlights inner cone. | |
Real | getSpotlightNearClipDistance () const |
Returns the near clip plane distance to be used by spotlights that use light clipping. | |
const Radian & | getSpotlightOuterAngle (void) const |
Returns the angle covered by the spotlights outer cone. | |
LightTypes | getType (void) const |
Returns the light type. | |
uint32 | getTypeFlags (void) const override |
Override to return specific type flag. | |
bool | isInLightRange (const Ogre::AxisAlignedBox &container) const |
Check whether a bounding box is included in the lighted area of the light. | |
bool | isInLightRange (const Ogre::Sphere &sphere) const |
Check whether a sphere is included in the lighted area of the light. | |
void | resetCustomShadowCameraSetup (void) |
Reset the shadow camera setup to the default. | |
void | resetShadowFarDistance (void) |
Tells the light to use the shadow far distance of the SceneManager. | |
void | setAttenuation (float range, float constant, float linear, float quadratic) |
Sets the attenuation parameters of the light source i.e. | |
void | setCustomParameter (uint16 index, const Vector4f &value) |
Sets a custom parameter for this Light, which may be used to drive calculations for this specific Renderable, like GPU program parameters. | |
void | setCustomShadowCameraSetup (const ShadowCameraSetupPtr &customShadowSetup) |
Set this light to use a custom shadow camera when rendering texture shadows. | |
void | setDiffuseColour (const ColourValue &colour) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
void | setDiffuseColour (float red, float green, float blue) |
Sets the colour of the diffuse light given off by this source. | |
void | setDirection (const Vector3 &vec) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
void | setDirection (Real x, Real y, Real z) |
void | setPosition (const Vector3 &vec) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
void | setPosition (Real x, Real y, Real z) |
Sets the position of the light. | |
void | setPowerScale (Real power) |
Set a scaling factor to indicate the relative power of a light. | |
void | setShadowFarClipDistance (Real farClip) |
Set the far clip plane distance to be used by the shadow camera, if this light casts texture shadows. | |
void | setShadowFarDistance (Real distance) |
Sets the maximum distance away from the camera that shadows by this light will be visible. | |
void | setShadowNearClipDistance (Real nearClip) |
Set the near clip plane distance to be used by the shadow camera, if this light casts texture shadows. | |
void | setSourceSize (float width, float height) |
Sets the size of the area covered by a area light. | |
void | setSpecularColour (const ColourValue &colour) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
void | setSpecularColour (float red, float green, float blue) |
Sets the colour of the specular light given off by this source. | |
void | setSpotlightFalloff (Real val) |
Sets the falloff between the inner and outer cones of the spotlight. | |
void | setSpotlightInnerAngle (const Radian &val) |
Sets the angle covered by the spotlights inner cone. | |
void | setSpotlightNearClipDistance (Real nearClip) |
Set the near clip plane distance to be used by spotlights that use light clipping, allowing you to render spots as if they start from further down their frustum. | |
void | setSpotlightOuterAngle (const Radian &val) |
Sets the angle covered by the spotlights outer cone. | |
void | setSpotlightRange (const Radian &innerAngle, const Radian &outerAngle, Real falloff=1.0) |
Sets the range of a spotlight, i.e. | |
void | setType (LightTypes type) |
Sets the type of light - see LightTypes for more info. | |
void | setVisible (bool visible) |
Tells this object whether to be visible or not, if it has a renderable component. | |
void | visitRenderables (Renderable::Visitor *visitor, bool debugRenderables=false) override |
Method to allow a caller to abstractly iterate over the Renderable instances that this MovableObject will add to the render queue when asked, if any. | |
Public Member Functions inherited from Ogre::MovableObject | |
MovableObject () | |
Constructor. | |
MovableObject (const String &name) | |
Named constructor. | |
virtual | ~MovableObject () |
Virtual destructor - read Scott Meyers if you don't know why this is needed. | |
MovableObjectFactory * | _getCreator (void) const |
Get the creator of this object, if any (internal use only) | |
LightList * | _getLightList () |
Returns a pointer to the current list of lights for this object. | |
SceneManager * | _getManager (void) const |
Get the manager of this object, if any (internal use only) | |
virtual const Affine3 & | _getParentNodeFullTransform (void) const |
Return the full transformation of the parent sceneNode or the attachingPoint node. | |
virtual void | _notifyCreator (MovableObjectFactory *fact) |
Notify the object of it's creator (internal use only) | |
virtual void | _notifyCurrentCamera (Camera *cam) |
Internal method to notify the object of the camera to be used for the next rendering operation. | |
virtual void | _notifyManager (SceneManager *man) |
Notify the object of it's manager (internal use only) | |
virtual void | _releaseManualHardwareResources () |
Notifies the movable object that hardware resources were lost. | |
virtual void | _restoreManualHardwareResources () |
Notifies the movable object that hardware resources should be restored. | |
void | addQueryFlags (uint32 flags) |
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object. | |
void | addVisibilityFlags (uint32 flags) |
As setVisibilityFlags, except the flags passed as parameters are appended to the existing flags on this object. | |
void | detachFromParent (void) |
Detaches an object from a parent SceneNode or TagPoint, if attached. | |
Real | getBoundingRadiusScaled () const |
as getBoundingRadius, but with scaling applied | |
bool | getCastShadows (void) const override |
Returns whether shadow casting is enabled for this object. | |
uint32 | getLightMask () const |
Get a bitwise mask which will filter the lights affecting this object. | |
Listener * | getListener (void) const |
Gets the current listener for this object. | |
const String & | getName (void) const |
Returns the name of this object. | |
Node * | getParentNode (void) const |
Returns the node to which this object is attached. | |
SceneNode * | getParentSceneNode (void) const |
Returns the scene node to which this object is attached. | |
Real | getPointExtrusionDistance (const Light *l) const override |
Get the distance to extrude for a point/spot light. | |
virtual uint32 | getQueryFlags (void) const |
Returns the query flags relevant for this object. | |
bool | getReceivesShadows () |
Returns whether the Material of any Renderable that this MovableObject will add to the render queue will receive shadows. | |
Real | getRenderingDistance (void) const |
Gets the distance at which batches are no longer rendered. | |
Real | getRenderingMinPixelSize () const |
Returns the minimum pixel size an object needs to be in both screen axes in order to be rendered. | |
uint8 | getRenderQueueGroup (void) const |
Gets the queue group for this entity. | |
const Any & | getUserAny (void) const |
UserObjectBindings & | getUserObjectBindings () |
Class that provides convenient interface to establish a linkage between custom user application objects and Ogre core classes. | |
const UserObjectBindings & | getUserObjectBindings () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
virtual uint32 | getVisibilityFlags (void) const |
Returns the visibility flags relevant for this object. | |
bool | getVisible (void) const |
Gets this object whether to be visible or not, if it has a renderable component. | |
const AxisAlignedBox & | getWorldBoundingBox (bool derive=false) const override |
Retrieves the axis-aligned bounding box for this object in world coordinates. | |
virtual const Sphere & | getWorldBoundingSphere (bool derive=false) const |
Retrieves the worldspace bounding sphere for this object. | |
bool | isAttached (void) const |
Returns true if this object is attached to a SceneNode or TagPoint. | |
bool | isDebugDisplayEnabled (void) const |
Gets whether debug display of this object is enabled. | |
virtual bool | isInScene (void) const |
Returns true if this object is attached to a SceneNode or TagPoint, and this SceneNode / TagPoint is currently in an active part of the scene graph. | |
bool | isParentTagPoint () const |
Gets whether the parent node is a TagPoint (or a SceneNode) | |
virtual bool | isVisible (void) const |
Returns whether or not this object is supposed to be visible or not. | |
const LightList & | queryLights (void) const |
Gets a list of lights, ordered relative to how close they are to this movable object. | |
void | removeQueryFlags (uint32 flags) |
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object. | |
void | removeVisibilityFlags (uint32 flags) |
As setVisibilityFlags, except the flags passed as parameters are removed from the existing flags on this object. | |
void | setCastShadows (bool enabled) |
Sets whether or not this object will cast shadows. | |
void | setDebugDisplayEnabled (bool enabled) |
Sets whether or not the debug display of this object is enabled. | |
void | setLightMask (uint32 lightMask) |
Set a bitwise mask which will filter the lights affecting this object. | |
void | setListener (Listener *listener) |
Sets a listener for this object. | |
void | setQueryFlags (uint32 flags) |
Sets the query flags for this object. | |
void | setRenderingDistance (Real dist) |
Sets the distance at which the object is no longer rendered. | |
void | setRenderingMinPixelSize (Real pixelSize) |
Sets the minimum pixel size an object needs to be in both screen axes in order to be rendered. | |
virtual void | setRenderQueueGroup (uint8 queueID) |
Sets the render queue group this entity will be rendered through. | |
virtual void | setRenderQueueGroupAndPriority (uint8 queueID, ushort priority) |
Sets the render queue group and group priority this entity will be rendered through. | |
void | setUserAny (const Any &anything) |
void | setVisibilityFlags (uint32 flags) |
Sets the visibility flags for this object. | |
void | setVisible (bool visible) |
Tells this object whether to be visible or not, if it has a renderable component. | |
Public Member Functions inherited from Ogre::ShadowCaster | |
virtual | ~ShadowCaster () |
const AxisAlignedBox & | getDarkCapBounds (const Light &light, Real dirLightExtrusionDist) const |
Gets the world space bounding box of the dark cap, as extruded using the light provided. | |
virtual EdgeData * | getEdgeList (void) |
Returns details of the edges which might be used to determine a silhouette. | |
const AxisAlignedBox & | getLightCapBounds (void) const |
Gets the world space bounding box of the light cap. | |
virtual const ShadowRenderableList & | getShadowVolumeRenderableList (const Light *light, const HardwareIndexBufferPtr &indexBuffer, size_t &indexBufferUsedSize, float extrusionDistance, int flags=0) |
Gets an list of the renderables required to render the shadow volume. | |
bool | hasEdgeList () |
Returns whether the object has a valid edge list. | |
Public Member Functions inherited from Ogre::AnimableObject | |
AnimableObject () | |
virtual | ~AnimableObject () |
virtual const StringVector & | getAnimableValueNames (void) const |
Gets a list of animable value names for this object. | |
Additional Inherited Members | |
Public Types inherited from Ogre::Light | |
enum | LightTypes : uint8 { LT_POINT = 0 , LT_DIRECTIONAL = 1 , LT_SPOTLIGHT = 2 , LT_RECTLIGHT = 3 } |
Defines the type of light. More... | |
Public Types inherited from Ogre::ShadowCaster | |
typedef Ogre::ShadowRenderableList | ShadowRenderableList |
typedef VectorIterator< ShadowRenderableList > | ShadowRenderableListIterator |
Static Public Member Functions inherited from Ogre::MovableObject | |
static uint32 | getDefaultQueryFlags () |
Get the default query flags for all future MovableObject instances. | |
static uint32 | getDefaultVisibilityFlags () |
Get the default visibility flags for all future MovableObject instances. | |
static void | setDefaultQueryFlags (uint32 flags) |
Set the default query flags for all future MovableObject instances. | |
static void | setDefaultVisibilityFlags (uint32 flags) |
Set the default visibility flags for all future MovableObject instances. | |
Static Public Member Functions inherited from Ogre::ShadowCaster | |
static void | clearShadowRenderableList (ShadowRenderableList &shadowRenderables) |
Common implementation of releasing shadow renderables. | |
static void | extrudeVertices (const HardwareVertexBufferSharedPtr &vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist) |
Utility method for extruding vertices based on a light. | |
Public Attributes inherited from Ogre::Light | |
Real | tempSquareDist |
Temp tag used for sorting. | |
Specialized version of Ogre::Light which caches which zones the light affects.
Ogre::PCZLight::PCZLight | ( | ) |
Default constructor (for Python mainly).
Normal constructor.
Should not be called directly, but rather the SceneManager::createLight method should be used.
Ogre::PCZLight::~PCZLight | ( | ) |
Standard destructor.
Overridden from MovableObject.
Reimplemented from Ogre::Light.
Manually add a zone to the zones affected list.
Check if a zone is in the list of zones affected by the light.
Marks a light as affecting a visible zone.
Update the list of zones the light affects.
Manually remove a zone from the affected list.
MovableObject notified when SceneNode changes.
Reimplemented from Ogre::Light.
Get status of need for update. this checks all affected zones.