struct CCL::ISceneNode3D

Overview

Node in a 3D scene. More…

#include <iscene3d.h>

struct ISceneNode3D: public CCL::IUnknown
{
    // enums

    enum NodeFlags;
    enum NodeType;

    // methods

    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);
};

Inherited Members

public:
    // 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;

Detailed Documentation

Node in a 3D scene.

Methods

virtual NodeType CCL_API getNodeType () const = 0

Get node type.

virtual UIDRef CCL_API getNodeClassID () const = 0

Get node class identifier (also available via IObject/ITypeInfo).

virtual int CCL_API getNodeFlags () const = 0

Get node flags.

virtual StringID CCL_API getNodeName () const = 0

Get node name.

virtual void CCL_API setNodeName (StringID name) = 0

Set node name.

virtual void CCL_API setNodeData (VariantRef data) = 0

Set associated application data (optional).

virtual VariantRef CCL_API getNodeData () const = 0

Get associated application data.

virtual PointF3DRef CCL_API getPosition () const = 0

Get position in parent space (optional).

virtual tresult CCL_API setPosition (PointF3DRef p) = 0

Set position in parent space (optional).

virtual tresult CCL_API setPositionX (float x) = 0

Set X position in parent space (optional).

virtual tresult CCL_API setPositionY (float y) = 0

Set Y position in parent space (optional).

virtual tresult CCL_API setPositionZ (float z) = 0

Set Z position in parent space (optional).

virtual float CCL_API getYawAngle () const = 0

Get yaw angle (radians) in parent space (optional).

virtual tresult CCL_API setYawAngle (float angle) = 0

Set yaw angle (radians) in parent space (optional).

virtual float CCL_API getPitchAngle () const = 0

Get pitch angle (radians) in parent space (optional).

virtual tresult CCL_API setPitchAngle (float angle) = 0

Set pitch angle (radians) in parent space (optional).

virtual float CCL_API getRollAngle () const = 0

Get roll angle (radians) in parent space (optional).

virtual tresult CCL_API setRollAngle (float angle) = 0

Set roll angle (radians) in parent space (optional).

virtual float CCL_API getScaleX () const = 0

Get scale (x component) in parent space (optional).

virtual tresult CCL_API setScaleX (float factor) = 0

Set scale (x component) in parent space (optional).

virtual float CCL_API getScaleY () const = 0

Get scale (y component) in parent space (optional).

virtual tresult CCL_API setScaleY (float factor) = 0

Set scale (y component) in parent space (optional).

virtual float CCL_API getScaleZ () const = 0

Get scale (z component) in parent space (optional).

virtual tresult CCL_API setScaleZ (float factor) = 0

Set scale (z component) in parent space (optional).

virtual Transform3DRef CCL_API getWorldTransform () const = 0

Get the world transform matrix.

virtual Transform3DRef CCL_API getInverseWorldTransform () const = 0

Get the inverse world transform matrix.

virtual void CCL_API setWorldTransform (Transform3DRef transform) = 0

Set the node’s world transform matrix.

virtual IScene3D*CCL_API getRootNode () = 0

Get scene (root) node.

virtual ISceneNode3D*CCL_API getParentNode () = 0

Get parent node.

virtual ISceneChildren3D*CCL_API getChildren () = 0

Get interface to manage child nodes (optional, can be null).

virtual ISceneConstraints3D*CCL_API getConstraints () = 0

Get interface to manage node constraints.

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

Add animation for node property.

virtual tresult CCL_API removeAnimation (StringID propertyId) = 0

Remove animation for node property.

virtual tresult CCL_API enableHitTesting (tbool state) = 0

Enable hit testing.

virtual tbool CCL_API isHitTestingEnabled () const = 0

Check if hit testing is enabled.

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

Find a node that intersects with a given ray.

Only returns nodes which have hit testing enabled.

DECLARE_STRINGID_MEMBER (kName)

<ISceneNode3D

<IUIValue (PointF3D) < float < float < float < float < float < float < float < float < float