|
|
virtual Sint32 | set_type (Fiber_type fiber_type)=0 |
| Sets the fiber type. More...
|
|
virtual Fiber_type | get_type () const =0 |
| Returns the fiber type. More...
|
|
virtual Size | get_fibers_size () const =0 |
| Returns the number of fibers. More...
|
|
|
virtual Fiber_handle_struct | add_fiber (Size vertices)=0 |
| Adds a fiber with the given number of vertices. More...
|
|
virtual Sint32 | set_radius (Fiber_handle_struct s, Float32 radius)=0 |
| Sets the radius of all vertices of a fiber. More...
|
|
virtual Sint32 | set_radius (Fiber_handle_struct s, Float64 radius)=0 |
| Sets the radius of all vertices of a fiber. More...
|
|
|
virtual Size | get_vertices_size (Fiber_handle_struct s) const =0 |
| Returns the number of vertices. More...
|
|
virtual Sint32 | set_control_point (Fiber_handle_struct s, Size index, Float32_3_struct p)=0 |
| Sets a control point. More...
|
|
virtual Sint32 | get_control_point (Fiber_handle_struct s, Size index, Float32_3_struct &p) const =0 |
| Returns a control point. More...
|
|
virtual Sint32 | set_control_point (Fiber_handle_struct s, Size index, Float64_3_struct p)=0 |
| Sets a control point. More...
|
|
virtual Sint32 | get_control_point (Fiber_handle_struct s, Size index, Float64_3_struct &p) const =0 |
| Returns a control point. More...
|
|
virtual Sint32 | set_radius (Fiber_handle_struct s, Size index, Float32 radius)=0 |
| Sets a radius. More...
|
|
virtual Sint32 | get_radius (Fiber_handle_struct s, Size index, Float32 &radius) const =0 |
| Returns a radius. More...
|
|
virtual Sint32 | set_radius (Fiber_handle_struct s, Size index, Float64 radius)=0 |
| Sets a radius. More...
|
|
virtual Sint32 | get_radius (Fiber_handle_struct s, Size index, Float64 &radius) const =0 |
| Returns a radius. More...
|
|
|
virtual bool | has_attribute (Fiber_attribute_type type, Mesh_attribute_name name) const =0 |
| The attribute vectors that can be created are per-fiber or per-control point. More...
|
|
virtual IAttribute_vector * | create_attribute_vector (Fiber_attribute_type type, Mesh_attribute_name name, Uint32 dim=1)=0 |
| Creates a fiber object attribute. More...
|
|
virtual const IAttribute_vector * | access_attribute_vector (Fiber_attribute_type type, Mesh_attribute_name name) const =0 |
| Returns a fiber object attribute. More...
|
|
virtual IAttribute_vector * | edit_attribute_vector (Fiber_attribute_type type, Mesh_attribute_name name)=0 |
| Detaches and returns a fiber object attribute. More...
|
|
virtual Sint32 | attach_attribute_vector (IAttribute_vector *attribute_vector)=0 |
| Attaches an attribute to the fiber object. More...
|
|
virtual Sint32 | remove_attribute_vector (Fiber_attribute_type type, Mesh_attribute_name name)=0 |
| Removes a fiber object attribute. More...
|
|
|
virtual Bbox3_struct | get_bbox () const =0 |
| Returns the bounding box of the fibers. More...
|
|
virtual Bbox3_struct | get_tight_bbox (const Float64_4_4_struct &transformation_matrix) const =0 |
| Returns the bounding box of the fibers after transformation. More...
|
|
|
virtual Sint32 | set_fiber_data (Fiber_handle_struct s, Size index, const Float32_4_struct *data, Size n)=0 |
| Sets an array of control points and radii per fiber. More...
|
|
virtual Sint32 | set_data (const Uint32 *fibers, Size n, const Float32_4_struct *data, Size m)=0 |
| Sets an array of fibers, control points and radii that describes the whole fiber object. More...
|
|
virtual Sint32 | set_data (const Float32_4_struct *data, Size n)=0 |
| Sets an array of control points and radii for the whole fiber object. More...
|
|
virtual Element_type | get_element_type () const =0 |
| Indicates the actual scene element represented by interfaces derived from this interface. More...
|
|
virtual IData * | create_attribute (const char *name, const char *type)=0 |
| Creates a new attribute name of the type type . More...
|
|
template<class T> |
T * | create_attribute (const char *name, const char *type) |
| Creates a new attribute name of the type type . More...
|
|
template<class T> |
T * | create_attribute (const char *name) |
| Creates a new attribute name of the type T . More...
|
|
virtual bool | destroy_attribute (const char *name)=0 |
| Destroys the attribute name . More...
|
|
virtual const IData * | access_attribute (const char *name) const =0 |
| Returns a const pointer to the attribute name . More...
|
|
template<class T> |
const T * | access_attribute (const char *name) const |
| Returns a const pointer to the attribute name . More...
|
|
virtual IData * | edit_attribute (const char *name)=0 |
| Returns a mutable pointer to the attribute name . More...
|
|
template<class T> |
T * | edit_attribute (const char *name) |
| Returns a mutable pointer to the attribute name . More...
|
|
virtual bool | is_attribute (const char *name) const =0 |
| Indicates existence of an attribute. More...
|
|
virtual const char * | get_attribute_type_name (const char *name) const =0 |
| Returns the type of an attribute. More...
|
|
virtual Sint32 | set_attribute_propagation (const char *name, Propagation_type value)=0 |
| Sets the propagation type of the attribute name . More...
|
|
virtual Propagation_type | get_attribute_propagation (const char *name) const =0 |
| Returns the propagation type of the attribute name . More...
|
|
virtual const char * | enumerate_attributes (Sint32 index) const =0 |
| Returns the name of the attribute indicated by index . More...
|
|
virtual Uint32 | retain () const =0 |
| Increments the reference count. More...
|
|
virtual Uint32 | release () const =0 |
| Decrements the reference count. More...
|
|
virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
| Acquires a const interface from another. More...
|
|
template<class T> |
const T * | get_interface () const |
| Acquires a const interface from another. More...
|
|
virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
| Acquires a mutable interface from another. More...
|
|
template<class T> |
T * | get_interface () |
| Acquires a mutable interface from another. More...
|
|
virtual Uuid | get_iid () const =0 |
| Returns the interface ID of the most derived interface. More...
|
|
|
typedef Interface_declare< id1, ... > | Self |
| Own type. More...
|
|
typedef Uuid_t< id1, ... > | IID |
| Declares the interface ID (IID) of this interface. More...
|
|
typedef Interface_declare< id1, ... > | Self |
| Own type. More...
|
|
typedef Uuid_t< id1, ... > | IID |
| Declares the interface ID (IID) of this interface. More...
|
|
typedef Interface_declare< id1, ... > | Self |
| Own type. More...
|
|
typedef Uuid_t< id1, ... > | IID |
| Declares the interface ID (IID) of this interface. More...
|
|
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> | IID |
| Declares the interface ID (IID) of this interface. More...
|
|
static bool | compare_iid (const Uuid &iid) |
| Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
|
|
static bool | compare_iid (const Uuid &iid) |
| Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
|
|
static bool | compare_iid (const Uuid &iid) |
| Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
|
|
static bool | compare_iid (const Uuid &iid) |
| Compares the interface ID iid against the interface ID of this interface. More...
|
|
Interface representing a collection of fibers.
Fibers are represented as cylindrical curves in 3d space, specified by a set of control points and a cylinder radius in object space. The radius can be specified for the whole fiber or per control point.
Four different types of fibers are supported: Uniform cubic b-Splines, Catmull-Rom Splines, cubic Bezier curves and curves made up of linear segments. In case of Catmull-Rom, uniform cubic b-Spline and cubic Bezier curves a minimum of 4 control points need to be specified per fiber, which specify the first segment. Each additional control point for Catmull-Rom and uniform cubic b-Splines specifies a new segment, as 3 control points are shared with the previous segment, while for cubic Bezier curves 3 new control points are needed to specify a new segment, as only one point is shared with the previous segment. In case of linear curves a minimum of 2 control points need to be specified per fiber; each additional control point specifies a new segment, as one control point is shared with the previous segment.
Per-fiber (mi::neuraylib::FIBER_ATTRIBUTE_PER_PRIMITIVE) and per-control point (mi::neuraylib::FIBER_ATTRIBUTE_PER_VERTEX) attributes can be directly used with the methods of this interface, namely create_attribute_vector(), access_attribute_vector(), edit_attribute_vector(), and attach_attribute_vector().
Currently, the following attributes are supported: