struct CCL::IPointLight3D

Overview

3D point light interface. More…

#include <iscene3d.h>

struct IPointLight3D: public CCL::ILightSource3D
{
    // fields

    static constexpr float kDefaultRadius = 100.f;
    static constexpr float kDefaultMinimum = 0.01f;
    static constexpr float kDefaultLinearFactor = 0.1f;
    static constexpr float kDefaultConstantTerm = 1.f;

    // methods

    virtual tresult CCL_API setAttenuationRadius (float radius = kDefaultRadius) = 0;
    virtual float CCL_API getAttenuationRadius () const = 0;
    virtual tresult CCL_API setAttenuationMinimum (float minimum = kDefaultMinimum) = 0;
    virtual float CCL_API getAttenuationMinimum () const = 0;
    virtual tresult CCL_API setAttenuationLinearFactor (float linearFactor = kDefaultLinearFactor) = 0;
    virtual float CCL_API getAttenuationLinearFactor () const = 0;
    virtual tresult CCL_API setAttenuationConstantTerm (float constantTerm = kDefaultConstantTerm) = 0;
    virtual float CCL_API getAttenuationConstantTerm () const = 0;
    DECLARE_STRINGID_MEMBER (kAttenuationRadius);
};

Inherited Members

public:
    // enums

    enum NodeFlags;
    enum NodeType;

    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;
    virtual NodeType CCL_API getNodeType () const = 0;
    virtual UIDRef CCL_API getNodeClassID () const = 0;
    virtual int CCL_API getNodeFlags () const = 0;
    virtual StringID CCL_API getNodeName () const = 0;
    virtual void CCL_API setNodeName (StringID name) = 0;
    virtual void CCL_API setNodeData (VariantRef data) = 0;
    virtual VariantRef CCL_API getNodeData () const = 0;
    virtual PointF3DRef CCL_API getPosition () const = 0;
    virtual tresult CCL_API setPosition (PointF3DRef p) = 0;
    virtual tresult CCL_API setPositionX (float x) = 0;
    virtual tresult CCL_API setPositionY (float y) = 0;
    virtual tresult CCL_API setPositionZ (float z) = 0;
    virtual float CCL_API getYawAngle () const = 0;
    virtual tresult CCL_API setYawAngle (float angle) = 0;
    virtual float CCL_API getPitchAngle () const = 0;
    virtual tresult CCL_API setPitchAngle (float angle) = 0;
    virtual float CCL_API getRollAngle () const = 0;
    virtual tresult CCL_API setRollAngle (float angle) = 0;
    virtual float CCL_API getScaleX () const = 0;
    virtual tresult CCL_API setScaleX (float factor) = 0;
    virtual float CCL_API getScaleY () const = 0;
    virtual tresult CCL_API setScaleY (float factor) = 0;
    virtual float CCL_API getScaleZ () const = 0;
    virtual tresult CCL_API setScaleZ (float factor) = 0;
    virtual Transform3DRef CCL_API getWorldTransform () const = 0;
    virtual Transform3DRef CCL_API getInverseWorldTransform () const = 0;
    virtual void CCL_API setWorldTransform (Transform3DRef transform) = 0;
    virtual IScene3D*CCL_API getRootNode () = 0;
    virtual ISceneNode3D*CCL_API getParentNode () = 0;
    virtual ISceneChildren3D*CCL_API getChildren () = 0;
    virtual ISceneConstraints3D*CCL_API getConstraints () = 0;

    virtual tresult CCL_API addAnimation (
        StringID propertyId,
        const IAnimation* animation
    ) = 0;

    virtual tresult CCL_API removeAnimation (StringID propertyId) = 0;
    virtual tresult CCL_API enableHitTesting (tbool state) = 0;
    virtual tbool CCL_API isHitTestingEnabled () const = 0;

    virtual ISceneNode3D*CCL_API findIntersectingNode (
        Ray3DRef ray,
        float tolerance = 0.f,
        int flags = 0
    ) const = 0;

    DECLARE_STRINGID_MEMBER (kName);
    virtual ColorRef CCL_API getLightColor () const = 0;
    virtual tresult CCL_API setLightColor (ColorRef color) = 0;
    virtual uint32 CCL_API getLightMask () const = 0;
    DECLARE_STRINGID_MEMBER (kLightColor);

Detailed Documentation

3D point light interface.

Methods

virtual tresult CCL_API setAttenuationRadius (float radius = kDefaultRadius) = 0

Set light attenuation radius.

virtual float CCL_API getAttenuationRadius () const = 0

Get light attenuation radius.

virtual tresult CCL_API setAttenuationMinimum (float minimum = kDefaultMinimum) = 0

Set light intensity at attenuation radius.

virtual float CCL_API getAttenuationMinimum () const = 0

Get light intensity at attenuation radius.

virtual tresult CCL_API setAttenuationLinearFactor (float linearFactor = kDefaultLinearFactor) = 0

Set attenuation linear factor.

virtual float CCL_API getAttenuationLinearFactor () const = 0

Get attenuation linear factor.

virtual tresult CCL_API setAttenuationConstantTerm (float constantTerm = kDefaultConstantTerm) = 0

Set attenuation constant term.

virtual float CCL_API getAttenuationConstantTerm () const = 0

Get attenuation constant term.

DECLARE_STRINGID_MEMBER (kAttenuationRadius)

< float

< float < float