7#ifndef NVIDIA_INDEX_EXAMPLE_ATTRIBUTE_LINE_SET_H
8#define NVIDIA_INDEX_EXAMPLE_ATTRIBUTE_LINE_SET_H
11#include <mi/base/interface_implement.h>
12#include <mi/base/handle.h>
13#include <mi/base/uuid.h>
15#include <nv/index/iline_set.h>
23 :
public mi::neuraylib::Element<0xe5165851,0xf363,0x4dd7,0x8b,0x5c,0xaa,0xd5,0x18,0x15,0x16,0xd0,
32 const std::vector<mi::math::Vector_struct<mi::Float32, 3> >& line_segments_vec,
33 const std::vector< mi::Float32 > & attribute_vec);
39 m_per_segment_colors(),
40 m_per_segment_widths(),
41 m_rendering_enabled(true),
49 void set_attribute(std::vector< mi::Float32 >
const & attribute_vec);
78 virtual const mi::math::Vector_struct<mi::Float32, 3>*
get_lines()
const;
84 virtual mi::Size
get_nb_colors()
const {
return m_per_segment_colors.size(); };
90 virtual const mi::math::Color_struct*
get_colors()
const;
96 virtual mi::Size
get_nb_widths()
const {
return m_per_segment_widths.size(); }
103 virtual const mi::Float32*
get_widths()
const;
115 virtual nv::index::ILine_set::Line_type
get_line_type()
const;
150 virtual void set_meta_data(mi::neuraylib::Tag_struct tag) { m_meta_data = tag; }
157 virtual mi::neuraylib::Tag_struct
get_meta_data()
const {
return m_meta_data; }
162 virtual mi::neuraylib::IElement*
copy()
const;
164 virtual void serialize(mi::neuraylib::ISerializer *serializer)
const;
165 virtual void deserialize(mi::neuraylib::IDeserializer* deserializer);
168 if(m_meta_data.is_valid())
169 result->add_tag(m_meta_data);
184 virtual void set_line_type(nv::index::ILine_set::Line_type type) { }
185 virtual void set_line_style(nv::index::ILine_set::Line_style style) { }
186 virtual void set_lines(
187 mi::math::Vector_struct<mi::Float32, 3>* line_segments,
188 mi::Size nb_line_segments) { }
189 virtual void set_colors(
190 mi::math::Color_struct* colors,
191 mi::Size nb_colors) { }
192 virtual void set_widths(
194 mi::Size nb_widths) { }
197 std::vector<mi::math::Vector_struct<mi::Float32, 3> > m_line_segments;
199 std::vector<mi::math::Color_struct> m_per_segment_colors;
201 std::vector<mi::Float32> m_per_segment_widths;
203 bool m_rendering_enabled;
207 mi::neuraylib::Tag m_meta_data;
An example of line set that contains 3D line segments (stored as vertices in a array) and a color as ...
virtual const mi::Float32 * get_widths() const
Get the pointer to the array of per-segment widths (for rasterized lines) or radii (for ray traced cy...
virtual const mi::math::Vector_struct< mi::Float32, 3 > * get_lines() const
Get the pointer to the array of line vertices (two vertices per line segment)
virtual void serialize(mi::neuraylib::ISerializer *serializer) const
void set_attribute(std::vector< mi::Float32 > const &attribute_vec)
set line attribute
virtual mi::Size get_nb_vertices() const
Get number of line segment in this line set.
virtual bool get_pickable() const
Each shape may be set pickable, i.e., the ray cast through the scene can intersect the shape.
mi::math::Color_struct get_color_from_attribute(mi::Float32 attrib)
attribute to color map example
virtual void set_enabled(bool is_enable)
Set graphical representation can be enabled or disabled from rendering.
virtual void set_meta_data(mi::neuraylib::Tag_struct tag)
Each scene element can store additional user-defined meta data.
virtual nv::index::ILine_set::Line_type get_line_type() const
Get the line style.
virtual mi::neuraylib::IElement * copy() const
virtual void get_references(mi::neuraylib::ITag_set *result) const
virtual Cap_style get_cap_style() const
Get the line cap style.
virtual mi::Size get_nb_colors() const
Get number of color values.
mi::Float32 get_width_from_attribute(mi::Float32 attrib)
attribute to width map example
virtual void set_pickable(bool pickable)
Attribute_line_set()
Constructing the attribute line set shape for serialization.
virtual const char * get_class_name() const
virtual void set_cap_style(Cap_style style)
Set the line cap style.
virtual mi::Size get_nb_lines() const
Get number of line segment in this line set.
virtual const mi::math::Color_struct * get_colors() const
Get the pointer to the array of per-segment color values.
virtual void deserialize(mi::neuraylib::IDeserializer *deserializer)
virtual bool get_enabled() const
get rendering mode
virtual mi::Size get_nb_widths() const
Get number of radii.
virtual mi::neuraylib::Tag_struct get_meta_data() const
Retrieve the scene element's reference to the user-defined meta data.
virtual nv::index::ILine_set::Line_style get_line_style() const
Get the line style.