NVIDIA IndeX API nvidia_logo_transpbg.gif Up
iline_set.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_ILINE_SET_H
8#define NVIDIA_INDEX_ILINE_SET_H
9
10#include <mi/base/interface_declare.h>
11#include <mi/dice.h>
12
13#include <nv/index/ishape.h>
14
15namespace nv
16{
17namespace index
18{
19
31class ILine_set :
32 public mi::base::Interface_declare<0xdd11bb4e,0x46ff,0x405b,0xbe,0x0f,0xa4,0x16,0x4f,0x10,0xbd,0x94,
33 nv::index::IImage_space_shape>
34{
35public:
38 {
45 };
46
49 {
68 };
69
72 {
79 };
80
85 virtual Line_type get_line_type() const = 0;
86
93 virtual void set_line_type(Line_type type) = 0;
94
99 virtual Line_style get_line_style() const = 0;
100
105 virtual void set_line_style(Line_style style) = 0;
106
111 virtual Cap_style get_cap_style() const = 0;
112
117 virtual void set_cap_style(Cap_style style) = 0;
118
124 virtual mi::Size get_nb_lines() const = 0;
125
130 virtual mi::Size get_nb_vertices() const = 0;
131
144 virtual const mi::math::Vector_struct<mi::Float32, 3>* get_lines() const = 0;
145
157 virtual void set_lines(
158 mi::math::Vector_struct<mi::Float32, 3>* line_vertices,
159 mi::Size nb_line_vertices) = 0;
160
173 virtual const mi::math::Color_struct* get_colors() const = 0;
174
179 virtual mi::Size get_nb_colors() const = 0;
180
194 virtual void set_colors(
195 mi::math::Color_struct* colors,
196 mi::Size nb_colors) = 0;
197
210 virtual const mi::Float32* get_widths() const = 0;
211
216 virtual mi::Size get_nb_widths() const = 0;
217
231 virtual void set_widths(
232 mi::Float32* widths,
233 mi::Size nb_widths) = 0;
234};
235
236}} // namespace index / nv
237
238#endif // NVIDIA_INDEX_ILINE_SET_H
Interface class for line geometry, which is a scene element and can be added to the scene description...
Definition: iline_set.h:34
virtual mi::Size get_nb_widths() const =0
Get number of line segment width.
virtual void set_line_type(Line_type type)=0
Set the line type.
virtual const mi::math::Vector_struct< mi::Float32, 3 > * get_lines() const =0
Get the pointer to the array of line vertices (points).
virtual Line_style get_line_style() const =0
Get the line style.
virtual void set_colors(mi::math::Color_struct *colors, mi::Size nb_colors)=0
Set the pointer to the array of colors per segment/vertex.
virtual void set_widths(mi::Float32 *widths, mi::Size nb_widths)=0
Set the pointer to the array of widths per segment/vertex.
virtual const mi::math::Color_struct * get_colors() const =0
Get the pointer to the array of colors per segment/vertex.
Cap_style
Available cap styles for the line rendering.
Definition: iline_set.h:72
@ CAP_STYLE_ROUND
round
Definition: iline_set.h:78
@ CAP_STYLE_FLAT
flat
Definition: iline_set.h:74
@ CAP_STYLE_SQUARE
square
Definition: iline_set.h:76
Line_type
Available line types for the line rendering.
Definition: iline_set.h:38
@ LINE_TYPE_PATH
one connected line path
Definition: iline_set.h:42
@ LINE_TYPE_LOOP
one connected and closed line path
Definition: iline_set.h:44
@ LINE_TYPE_SEGMENTS
separated line segments
Definition: iline_set.h:40
virtual void set_line_style(Line_style style)=0
Set the line style.
virtual const mi::Float32 * get_widths() const =0
Get the pointer to the array of widths per segment/vertex.
virtual Cap_style get_cap_style() const =0
Get the line cap style.
virtual mi::Size get_nb_lines() const =0
Get number of line segments.
virtual void set_cap_style(Cap_style style)=0
Set the line cap style.
virtual Line_type get_line_type() const =0
Get the line type.
Line_style
Available line styles for the line rendering.
Definition: iline_set.h:49
@ LINE_STYLE_CENTER
centered
Definition: iline_set.h:57
@ LINE_STYLE_SOLID
solid
Definition: iline_set.h:51
@ LINE_STYLE_PHANTOM
phantom
Definition: iline_set.h:61
@ LINE_STYLE_BORDER
border
Definition: iline_set.h:65
@ LINE_STYLE_DOTTED
dotted
Definition: iline_set.h:55
@ LINE_STYLE_DIVIDE
divide
Definition: iline_set.h:67
@ LINE_STYLE_HIDDEN
hidden
Definition: iline_set.h:59
@ LINE_STYLE_DASHED
dashed
Definition: iline_set.h:53
@ LINE_STYLE_DASHDOT
dashed with dots
Definition: iline_set.h:63
virtual mi::Size get_nb_vertices() const =0
Get number of line vertices.
virtual mi::Size get_nb_colors() const =0
Get number of color values.
virtual void set_lines(mi::math::Vector_struct< mi::Float32, 3 > *line_vertices, mi::Size nb_line_vertices)=0
Set the line vertices (points).
Base class declaring the functionality of higher-level shapes.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349