|
|
virtual Uint32 | triangles_size () const =0 |
| Returns the number of triangles in the mesh. More...
|
|
virtual Uint32 | triangles_capacity () const =0 |
| Returns the number of triangles for which space is allocated in the mesh. More...
|
|
virtual void | reserve_triangles (Uint32 n)=0 |
| Reserves space for at least n triangles. More...
|
|
virtual Uint32 | quads_size () const =0 |
| Returns the number of quads in the mesh. More...
|
|
virtual Uint32 | quads_capacity () const =0 |
| Returns the number of quads for which space is allocated in the mesh. More...
|
|
virtual void | reserve_quads (Uint32 n)=0 |
| Reserves space for at least n quads. More...
|
|
|
virtual Sint32 | set_crease_value (Polygon_handle_struct p, Uint32 index, Float32 value)=0 |
| Sets crease values for an edge. More...
|
|
virtual Float32 | get_crease_value (Polygon_handle_struct p, Uint32 index) const =0 |
| Returns crease values for an edge. More...
|
|
virtual Sint32 | set_crease_values (Polygon_handle_struct p, const Float32 *values)=0 |
| Sets crease values for all edges of a polygon. More...
|
|
virtual const Float32 * | get_crease_values (Polygon_handle_struct p) const =0 |
| Returns crease values for all edges of a polygon. More...
|
|
virtual IArray * | get_inconsistent_crease_values () const =0 |
| Checks all crease values for consistency and returns inconsistent values. More...
|
|
|
virtual Sint32 | set_vertex_feature (Uint32 index, Vertex_feature feature)=0 |
| Sets a vertex feature. More...
|
|
virtual Vertex_feature | get_vertex_feature (Uint32 index) const =0 |
| Returns a vertex features. More...
|
|
virtual Uint32 | points_size () const =0 |
| Returns the number of points in the mesh. More...
|
|
virtual Uint32 | points_capacity () const =0 |
| Returns the number of points for which space is allocated in the mesh. More...
|
|
virtual void | reserve_points (Uint32 n)=0 |
| Reserves space for at least n points. More...
|
|
virtual Sint32 | point (Uint32 index, Float32_3_struct &p) const =0 |
| Returns the coordinates of the point of index index in the output parameter p . More...
|
|
virtual Sint32 | point (Uint32 index, Float64_3_struct &p) const =0 |
| Returns the coordinates of the point of index index in the output parameter p . More...
|
|
virtual Uint32 | append_point (const Float32_3_struct &p)=0 |
| Adds a point p to the end of all points and returns the index of the new point. More...
|
|
virtual Uint32 | append_point (const Float64_3_struct &p)=0 |
| Adds a point p to the end of all points and returns the index of the new point. More...
|
|
virtual Sint32 | set_point (Uint32 index, const Float32_3_struct &p)=0 |
| Sets the point of index index to the new point p . More...
|
|
virtual Sint32 | set_point (Uint32 index, const Float64_3_struct &p)=0 |
| Sets the point of index index to the new point p . More...
|
|
virtual Uint32 | polygons_size () const =0 |
| Returns the number of polygons. More...
|
|
virtual Uint32 | polygon_corners_size (Polygon_handle_struct p) const =0 |
| Returns the number of vertices for a given polygon p . More...
|
|
virtual bool | is_hole (Polygon_handle_struct p) const =0 |
| Indicates whether the polygon p represents a hole. More...
|
|
virtual Uint32 | indices_size () const =0 |
| Returns the total number of indices, i.e., the sum of the number of vertices of all polygons. More...
|
|
virtual bool | is_polygon_size_constant () const =0 |
| Indicates whether all polygons have the same number of vertices. More...
|
|
virtual Polygon_handle_struct | add_polygon (Uint32 num_vertices, bool hole=false)=0 |
| Adds a polygon to the mesh. More...
|
|
virtual const IPolygon_connectivity * | access_mesh_connectivity () const =0 |
| Returns the mesh connectivity. More...
|
|
virtual IPolygon_connectivity * | edit_mesh_connectivity ()=0 |
| Detaches and returns the mesh connectivity. More...
|
|
virtual Sint32 | attach_mesh_connectivity (IPolygon_connectivity *connectivity)=0 |
| Attaches the mesh connectivity to the mesh. More...
|
|
virtual IPolygon_connectivity * | create_connectivity (Connectivity_map_type map_type=CONNECTIVITY_MAP_GENERIC)=0 |
| Creates a new connectivity for non-per-primitive attributes. More...
|
|
virtual const IPolygon_connectivity * | access_connectivity (Mesh_attribute_name name) const =0 |
| Returns the connectivity for a given mesh attribute. More...
|
|
virtual IPolygon_connectivity * | edit_connectivity (Mesh_attribute_name name)=0 |
| Detaches and returns the connectivity for a given mesh attribute. More...
|
|
virtual Sint32 | attach_connectivity (IPolygon_connectivity *connectivity)=0 |
| Attaches a given connectivity to the mesh. More...
|
|
virtual Sint32 | remove_connectivity (Mesh_attribute_name name)=0 |
| Removes the connectivity for a non-per-primitive mesh attribute. More...
|
|
virtual bool | has_attribute (Mesh_attribute_name name) const =0 |
| Indicates whether the mesh has a particular mesh attribute (per-primitive or other types) More...
|
|
virtual IAttribute_vector * | create_attribute_vector (Mesh_attribute_name name, Uint32 dim=1)=0 |
| Creates a per-primitive mesh attribute. More...
|
|
virtual const IAttribute_vector * | access_attribute_vector (Mesh_attribute_name name) const =0 |
| Returns a per-primitive mesh attribute. More...
|
|
virtual IAttribute_vector * | edit_attribute_vector (Mesh_attribute_name name)=0 |
| Detaches and returns a per-primitive mesh attribute. More...
|
|
virtual Sint32 | attach_attribute_vector (IAttribute_vector *attribute_vector)=0 |
| Attaches a given per-primitive mesh attribute to the mesh. More...
|
|
virtual Sint32 | remove_attribute_vector (Mesh_attribute_name name)=0 |
| Removes a per-primitive mesh attribute. More...
|
|
virtual Bbox3_struct | get_bbox () const =0 |
| Returns the bounding box of the polygon mesh. More...
|
|
virtual Bbox3_struct | get_tight_bbox (const Float64_4_4_struct &transformation_matrix) const =0 |
| Returns the bounding box of the polygon mesh after transformation. More...
|
|
virtual void | set_maximum_displacement (Float32 displacement)=0 |
| Sets the maximum displacement of the polygon mesh. More...
|
|
virtual Float32 | get_maximum_displacement () const =0 |
| Returns the maximum displacement of the polygon mesh. 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 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 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 subdivision surface.
Subdivision surfaces are smooth surfaces that are represented by a coarse control mesh. The smooth surface is the limit surface that results from recursive application of a subdivision process that splits each polygon into smaller polygons that are a better approximation of the limit surface than the input polygon.
The control mesh is represented as a polygon mesh with the limitation that only triangles and quads are supported. Holes are not supported, either. Additionally, vertices may be flagged as smooth (the default) or as corners. For each edge it is possible to set a crease value that defines its sharpness.
Note: If quads have already been added and per-primitive attribute vectors are attached, adding another triangle needs time linear in the number of quads. Thus, it is recommended to either first add the triangles and then the quads, or to detach the per-primitive attribute vectors if a large number of triangles is to be added later.
See also the "approx"
attribute on mi::neuraylib::IAttribute_set for information how to control the approximation of the limit surface.