NVIDIA IndeX API nvidia_logo_transpbg.gif Up
itriangle_mesh_subset.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_ITRIANGLE_MESH_SUBSET_H
8#define NVIDIA_INDEX_ITRIANGLE_MESH_SUBSET_H
9
10#include <mi/dice.h>
11#include <mi/base/interface_declare.h>
12#include <mi/math/vector.h>
13
15
16namespace nv {
17
18namespace index {
19
25 public mi::base::Interface_declare<0x19fa1bbf,0xcda6,0x43d5,0x89,0x40,0x57,0x95,0x78,0x99,0xb5,0x3d,
26 IDistributed_data_subset>
27{
28public:
35 {
36 TRIFLAGS_VISIBLE_EDGE_NONE = 0,
37 TRIFLAGS_VISIBLE_EDGE_01 = 1,
38 TRIFLAGS_VISIBLE_EDGE_12 = 2,
39 TRIFLAGS_VISIBLE_EDGE_20 = 4,
40 TRIFLAGS_VISIBLE_EDGE_ALL = 7
41 };
42
82 virtual bool initialize(
83 const mi::math::Bbox_struct<mi::Float32, 3>& bounding_box,
84
85 const mi::math::Vector_struct<mi::Float32, 3>* vertices,
86 mi::Uint32 nb_vertices,
87
88 const mi::Uint32* vertex_indices,
89 mi::Uint32 nb_indices,
90
91 const mi::Uint64* global_triangle_ids,
92 mi::Uint64 nb_global_triangle_ids,
93
94 const mi::math::Vector_struct<mi::Float32, 3>* normals = 0,
95 mi::Uint32 nb_normals = 0,
96
97 const mi::math::Vector_struct<mi::Float32, 2>* texture_coordinates = 0,
98 mi::Uint32 nb_texture_coordinates = 0,
99
100 const mi::math::Color_struct* colors = 0,
101 mi::Uint32 nb_colors = 0,
102
103 const mi::Uint32* normal_indices = 0,
104 const mi::Uint32* tex_coord_indices = 0,
105 const mi::Uint32* color_indices = 0,
106 const mi::Uint32* colormap_indices = 0,
107
108 const mi::Uint16* materials = 0,
109 mi::Uint32 nb_materials = 0,
110
111 const ITriangle_mesh_subset::Triflags* triangle_flags = 0, // BROKEN, bit flag combinations!
112 mi::Uint32 nb_triangle_flags = 0) = 0;
113
116 virtual mi::Uint32 get_nb_triangles() const = 0;
117
120 virtual mi::Uint32 get_nb_vertices() const = 0;
121
124 virtual const mi::math::Vector_struct<mi::Float32, 3>* get_vertices() const = 0;
125
129 virtual const mi::Uint32* get_vertex_indices() const = 0;
130
133 virtual mi::Uint32 get_nb_normals() const = 0;
134
137 virtual const mi::math::Vector_struct<mi::Float32, 3>* get_normals() const = 0;
138
142 virtual const mi::Uint32* get_normal_indices() const = 0;
143
146 virtual mi::Uint32 get_nb_texture_coordinates() const = 0;
147
150 virtual const mi::math::Vector_struct<mi::Float32, 2>* get_texture_coordinates() const = 0;
151
155 virtual const mi::Uint32* get_texture_coordinate_indices() const = 0;
156
159 virtual mi::Uint32 get_nb_colors() const = 0;
160
163 virtual const mi::math::Color_struct* get_colors() const = 0;
164
168 virtual const mi::Uint32* get_color_indices() const = 0;
169
173 virtual const mi::Uint32* get_colormap_indices() const = 0;
174
177 virtual mi::Uint32 get_nb_materials() const = 0;
178
181 virtual const mi::Uint16* get_materials() const = 0;
182
185 virtual mi::Uint32 get_nb_triangle_flags() const = 0;
186
190
194 virtual const mi::Uint64* get_global_triangle_ids() const = 0;
195
200 virtual const mi::math::Bbox_struct<mi::Float32, 3>& get_bounding_box() const = 0;
201};
202
203
204}} // namespace index / nv
205
206#endif // NVIDIA_INDEX_ITRIANGLE_MESH_SUBSET_H
Defines the vertices and per-vertex attributes of a subset of a triangle mesh.
Definition: itriangle_mesh_subset.h:27
virtual const mi::Uint32 * get_color_indices() const =0
Returns the tri-vertex to color index.
Triflags
Triangle flags.
Definition: itriangle_mesh_subset.h:35
virtual mi::Uint32 get_nb_texture_coordinates() const =0
Returns the number of texture coordinates.
virtual const ITriangle_mesh_subset::Triflags * get_triangle_flags() const =0
Returns the triangle flags.
virtual const mi::Uint32 * get_normal_indices() const =0
Returns the tri-vertex to normal index array.
virtual mi::Uint32 get_nb_colors() const =0
Returns the number of colors.
virtual const mi::math::Vector_struct< mi::Float32, 2 > * get_texture_coordinates() const =0
Returns the vertex texture coordinate array.
virtual mi::Uint32 get_nb_materials() const =0
Returns the number of materials.
virtual const mi::Uint32 * get_colormap_indices() const =0
Returns the tri-vertex to colormap index array.
virtual mi::Uint32 get_nb_triangle_flags() const =0
Returns the number of triangle flags.
virtual const mi::Uint32 * get_texture_coordinate_indices() const =0
Returns the tri-vertex to texture coordinate index array.
virtual const mi::math::Bbox_struct< mi::Float32, 3 > & get_bounding_box() const =0
Returns the bounding box of the sub-mesh.
virtual const mi::Uint64 * get_global_triangle_ids() const =0
Returns the IDs of the triangles in the sub-mesh.
virtual const mi::math::Vector_struct< mi::Float32, 3 > * get_normals() const =0
Returns the vertex normals array.
virtual mi::Uint32 get_nb_normals() const =0
Returns the number of vertex normals.
virtual const mi::Uint32 * get_vertex_indices() const =0
Returns the tri-vertex to vertex position index array.
virtual const mi::math::Vector_struct< mi::Float32, 3 > * get_vertices() const =0
Returns the vertex position array.
virtual mi::Uint32 get_nb_vertices() const =0
Returns the number of vertices.
virtual bool initialize(const mi::math::Bbox_struct< mi::Float32, 3 > &bounding_box, const mi::math::Vector_struct< mi::Float32, 3 > *vertices, mi::Uint32 nb_vertices, const mi::Uint32 *vertex_indices, mi::Uint32 nb_indices, const mi::Uint64 *global_triangle_ids, mi::Uint64 nb_global_triangle_ids, const mi::math::Vector_struct< mi::Float32, 3 > *normals=0, mi::Uint32 nb_normals=0, const mi::math::Vector_struct< mi::Float32, 2 > *texture_coordinates=0, mi::Uint32 nb_texture_coordinates=0, const mi::math::Color_struct *colors=0, mi::Uint32 nb_colors=0, const mi::Uint32 *normal_indices=0, const mi::Uint32 *tex_coord_indices=0, const mi::Uint32 *color_indices=0, const mi::Uint32 *colormap_indices=0, const mi::Uint16 *materials=0, mi::Uint32 nb_materials=0, const ITriangle_mesh_subset::Triflags *triangle_flags=0, mi::Uint32 nb_triangle_flags=0)=0
Initializes the triangle mesh subset by assigning vertices and per-vertex attributes.
virtual const mi::math::Color_struct * get_colors() const =0
Returns the vertex color array.
virtual mi::Uint32 get_nb_triangles() const =0
Returns the number of triangles in the sub-mesh.
virtual const mi::Uint16 * get_materials() const =0
Returns the triangle materials.
Distributed subset interaces for a large-scale distributed datasets.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349