neuray API Programmer's Manual

itriangle_mesh.h File Reference

Description

Scene element Triangle_mesh.

Code Example

itriangle_mesh.h

‎/***************************************************************************************************
 * Copyright 2024 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_ITRIANGLE_MESH_H
#define MI_NEURAYLIB_ITRIANGLE_MESH_H

#include <mi/neuraylib/iattribute_vector.h>
#include <mi/neuraylib/identifier.h>
#include <mi/neuraylib/iscene_element.h>
#include <mi/neuraylib/itriangle_connectivity.h>
#include <mi/neuraylib/typedefs.h>

namespace mi {

namespace neuraylib {
































































































class ITriangle_mesh :
    public base::Interface_declare<0x71006633,0x1e05,0x4c21,0xa0,0x09,0x07,0x6f,0x33,0x6d,0x9c,0x89,
                                   neuraylib::IScene_element>
{
public:



    virtual Uint32 
               points_size() const = 0;

    virtual Uint32 
               points_capacity() const = 0;

    virtual void reserve_points( Uint32 n) = 0;

    virtual Sint32 
               point( Uint32 index, Float32_3_struct& p) const = 0;

    virtual Sint32 
               point( Uint32 index, Float64_3_struct& p) const = 0;

    virtual Uint32 
               append_point( const Float32_3_struct& p) = 0;

    virtual Uint32 
               append_point( const Float64_3_struct& p) = 0;

    virtual Uint32 
               append_points( const Float32_3_struct* p, Size n) = 0;

    virtual Uint32 
               append_points( const Float64_3_struct* p, Size n) = 0;

    virtual Sint32 
               set_point( Uint32 index, const Float32_3_struct& p) = 0;

    virtual Sint32 
               set_point( Uint32 index, const Float64_3_struct& p) = 0;

    virtual Sint32 
               set_points( Uint32 index, const Float32_3_struct* p, Size n) = 0;

    virtual Sint32 
               set_points( Uint32 index, const Float64_3_struct* p, Size n) = 0;




    virtual Uint32 
               triangles_size() const = 0;

    virtual Uint32 
               triangles_capacity() const = 0;

    virtual void reserve_triangles( Uint32 n) = 0;

    virtual Triangle_point_indices_struct 
               triangle_point_indices(
        Triangle_handle_struct hnd) const = 0;

    virtual Triangle_handle_struct 
               append_triangle(
        const Triangle_point_indices_struct& triangle)= 0;

    virtual Triangle_handle_struct 
               append_triangles(
        const Triangle_point_indices_struct* triangles, Size n) = 0;

    virtual Triangle_handle_struct 
               append_triangles( const Uint32* indices, Size n) = 0;

    virtual Sint32 
               set_triangle(
        Triangle_handle_struct hnd, const Triangle_point_indices_struct& triangle) = 0;

    virtual Sint32 
               set_triangles(
        Triangle_handle_struct hnd, const Triangle_point_indices_struct* triangle, Size n) = 0;




    virtual const ITriangle_connectivity* access_mesh_connectivity() const = 0;

    virtual ITriangle_connectivity* edit_mesh_connectivity() = 0;

    virtual Sint32 
               attach_mesh_connectivity( ITriangle_connectivity* connectivity) = 0;




    virtual ITriangle_connectivity* create_connectivity(
        Connectivity_map_type map_type = CONNECTIVITY_MAP_GENERIC) = 0;

    virtual const ITriangle_connectivity* access_connectivity( Mesh_attribute_name name) const = 0;

    virtual ITriangle_connectivity* edit_connectivity( Mesh_attribute_name name) = 0;

    virtual Sint32 
               attach_connectivity( ITriangle_connectivity* connectivity) = 0;

    virtual Sint32 
               remove_connectivity( Mesh_attribute_name name) = 0;




    virtual bool has_attribute( Mesh_attribute_name name) const = 0;

    virtual IAttribute_vector* create_attribute_vector(
        Mesh_attribute_name name, Uint32 dim = 1) = 0;

    virtual const IAttribute_vector* access_attribute_vector(
        Mesh_attribute_name name) const = 0;

    virtual IAttribute_vector* edit_attribute_vector( Mesh_attribute_name name) = 0;

    virtual Sint32 
               attach_attribute_vector( IAttribute_vector* attribute_vector) = 0;

    virtual Sint32 
               remove_attribute_vector( Mesh_attribute_name name) = 0;




    virtual Bbox3_struct 
               get_bbox() const = 0;

    virtual Bbox3_struct 
               get_tight_bbox(
        const Float64_4_4_struct& transformation_matrix) const = 0;




    virtual void set_maximum_displacement( Float32 displacement) = 0;

    virtual Float32 
               get_maximum_displacement() const = 0;


};
 // end group mi_neuray_leaf_nodes

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_ITRIANGLE_MESH_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
Interface representing a triangle mesh. More...