struct CCL::IModel3D

Overview

3D model interface. More…

#include <imodel3d.h>

struct IModel3D: public CCL::IClassAllocator
{
    // methods

    virtual tresult CCL_API addGeometry (
        IGeometry3D* geometry,
        IMaterial3D* material = nullptr
    ) = 0;

    virtual int CCL_API getGeometryCount () const = 0;
    virtual IGeometry3D*CCL_API getGeometryAt (int index) const = 0;
    virtual tresult CCL_API setGeometryAt (int index, IGeometry3D* geometry) = 0;
    virtual IMaterial3D*CCL_API getMaterialAt (int index) const = 0;
    virtual tresult CCL_API setMaterialAt (int index, IMaterial3D* material) = 0;
    IModel3D IGeometry3D* createGeometry ();
    IGeometry3D* createBillboard ();
    ISolidColorMaterial3D* createSolidColorMaterial ();
    ITextureMaterial3D* createTextureMaterial ();
    IMaterial3D* getFirstMaterial () const;
    void setMaterialForGeometries (IMaterial3D* material);
};

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;
    virtual tresult CCL_API createInstance (UIDRef cid, UIDRef iid, void** obj) = 0;

Detailed Documentation

3D model interface.

Models defined in Skin XML can be accessed by name via ITheme::getResource().

Methods

virtual tresult CCL_API addGeometry (
    IGeometry3D* geometry,
    IMaterial3D* material = nullptr
) = 0

Add geometry to model (takes ownership).

virtual int CCL_API getGeometryCount () const = 0

Get number of geometries.

virtual IGeometry3D*CCL_API getGeometryAt (int index) const = 0

Get geometry at given index.

virtual tresult CCL_API setGeometryAt (int index, IGeometry3D* geometry) = 0

Assign a material to the geometry at given index (shared).

virtual IMaterial3D*CCL_API getMaterialAt (int index) const = 0

Get material assigned to geometry at given index.

virtual tresult CCL_API setMaterialAt (int index, IMaterial3D* material) = 0

Assign a material to the geometry at given index (shared).