7#ifndef NVIDIA_INDEX_EXAMPLE_ATTRIBUTE_POINT_SET_H
8#define NVIDIA_INDEX_EXAMPLE_ATTRIBUTE_POINT_SET_H
11#include <mi/base/interface_implement.h>
12#include <mi/base/handle.h>
13#include <mi/base/uuid.h>
14#include <mi/math/vector.h>
16#include <nv/index/ipoint_set.h>
32 public mi::neuraylib::Element<0x37d4157e,0x7ac0,0x4812,0xb8,0xe2,0x7a,0x45,0x26,0x4b,0xa3,0x4c,
33 nv::index::IPoint_set>
42 const std::vector< mi::math::Vector_struct< mi::Float32, 3 > >& vertex_vec,
43 const std::vector< mi::Float32 > & attribute_vec,
44 nv::index::IPoint_set::Point_style point_style);
50 m_per_vertex_color_values(),
52 m_point_style(
nv::index::IPoint_set:
:FLAT_CIRCLE),
53 m_rendering_enabled(true),
64 void set_attribute(std::vector< mi::Float32 >
const & attribute_vec);
84 virtual const mi::math::Vector_struct<mi::Float32, 3>*
get_vertices()
const;
89 virtual mi::Size
get_nb_colors()
const {
return m_per_vertex_color_values.size(); }
95 virtual const mi::math::Color_struct*
get_colors()
const;
100 virtual mi::Size
get_nb_radii()
const {
return m_per_vertex_radii.size(); }
106 virtual const mi::Float32*
get_radii()
const;
118 virtual void set_enabled(
bool enable) { m_rendering_enabled = enable;}
132 virtual void set_meta_data(mi::neuraylib::Tag_struct tag) { m_meta_data = tag; }
139 virtual mi::neuraylib::Tag_struct
get_meta_data()
const {
return m_meta_data; }
150 virtual mi::neuraylib::IElement*
copy()
const;
153 mi::neuraylib::ISerializer *serializer)
const;
155 mi::neuraylib::IDeserializer* deserializer);
158 if(m_meta_data.is_valid())
159 result->add_tag(m_meta_data);
174 virtual void set_vertices(mi::math::Vector_struct<mi::Float32, 3>* vertices, mi::Size nb_vertices) { }
175 virtual void set_radii(mi::Float32* radii, mi::Size nb_radii) { }
176 virtual void set_colors(mi::math::Color_struct* colors, mi::Size nb_colors) { }
179 std::vector<mi::math::Vector_struct<mi::Float32, 3> > m_vertex_vec;
181 std::vector<mi::math::Color_struct> m_per_vertex_color_values;
183 std::vector<mi::Float32> m_per_vertex_radii;
185 nv::index::IPoint_set::Point_style m_point_style;
187 bool m_rendering_enabled;
191 mi::neuraylib::Tag m_meta_data;
An example simple point set shape implementation of IPoint_set.
virtual bool get_enabled() const
Get enable/disable rendering state of this shape.
virtual void get_references(mi::neuraylib::ITag_set *result) const
void set_attribute(std::vector< mi::Float32 > const &attribute_vec)
set point attribute
virtual Point_style get_point_style() const
The rasterizer enabling stylized points supports different point styles such as flat disks or shaded ...
virtual void serialize(mi::neuraylib::ISerializer *serializer) const
mi::Float32 get_radius_from_attribute(mi::Float32 attrib)
attribute to radius map example
virtual mi::Size get_nb_colors() const
Get the size of color buffer.
virtual const mi::math::Vector_struct< mi::Float32, 3 > * get_vertices() const
Get the pointer to the array of vertices (points).
virtual void set_pickable(bool pickable)
virtual const char * get_class_name() const
mi::math::Color_struct get_color_from_attribute(mi::Float32 attrib)
attribute to color map example
virtual mi::neuraylib::IElement * copy() const
virtual mi::Size get_nb_vertices() const
virtual mi::Size get_nb_radii() const
Get the size of radius buffer.
Attribute_point_set()
Constructing the point set shape for serialization.
virtual mi::neuraylib::Tag_struct get_meta_data() const
Retrieve the scene element's reference to the user-defined meta data.
virtual bool get_pickable() const
virtual void set_enabled(bool enable)
Set enable/disable rendering state of this shape.
virtual void set_point_style(Point_style style)
mi::math::Vector_struct< mi::Float32, 3 > * peek_vertices()
peek the vertex position for change.
virtual void deserialize(mi::neuraylib::IDeserializer *deserializer)
virtual void set_meta_data(mi::neuraylib::Tag_struct tag)
Each scene element can store additional user-defined meta data.
virtual ~Attribute_point_set()
Destructing the point set shape.
virtual const mi::Float32 * get_radii() const
Get the pointer to the array of per-vertex radii.
virtual const mi::math::Color_struct * get_colors() const
Get the pointer to the array of per-vertex color values.