11#include <mi/math/vector.h>
12#include <mi/math/matrix.h>
13#include <mi/math/bbox.h>
14#include <mi/neuraylib/iserializer.h>
21class IXac_compute_scene_setup;
24typedef mi::math::Bbox<mi::Sint32, 2>
Bbox2i;
25typedef mi::math::Bbox<mi::Uint32, 2>
Bbox2u;
26typedef mi::math::Bbox<mi::Float32, 2>
Bbox2f;
27typedef mi::math::Bbox<mi::Sint32, 3>
Bbox3i;
28typedef mi::math::Bbox<mi::Uint32, 3>
Bbox3u;
29typedef mi::math::Bbox<mi::Float32, 3>
Bbox3f;
31typedef mi::math::Vector<mi::Uint32, 2>
Vec2u;
32typedef mi::math::Vector<mi::Sint32, 2>
Vec2i;
33typedef mi::math::Vector<mi::Float32, 2>
Vec2f;
34typedef mi::math::Vector<mi::Float64, 2>
Vec2d;
36typedef mi::math::Vector<mi::Uint32, 3>
Vec3u;
37typedef mi::math::Vector<mi::Sint32, 3>
Vec3i;
38typedef mi::math::Vector<mi::Float32, 3>
Vec3f;
39typedef mi::math::Vector<mi::Float64, 3>
Vec3d;
41typedef mi::math::Vector<mi::Uint32, 4>
Vec4u;
42typedef mi::math::Vector<mi::Sint32, 4>
Vec4i;
43typedef mi::math::Vector<mi::Float32, 4>
Vec4f;
44typedef mi::math::Vector<mi::Float64, 4>
Vec4d;
46typedef mi::math::Matrix<mi::Float32, 2, 2>
Mat2f;
47typedef mi::math::Matrix<mi::Float32, 3, 3>
Mat3f;
48typedef mi::math::Matrix<mi::Float32, 4, 4>
Mat4f;
50typedef mi::math::Matrix<mi::Float64, 2, 2>
Mat2d;
51typedef mi::math::Matrix<mi::Float64, 3, 3>
Mat3d;
52typedef mi::math::Matrix<mi::Float64, 4, 4>
Mat4d;
60 typedef std::map<std::string, std::string>
Map_type;
71 Map_type::const_iterator it = m_map.find(key);
72 return (it != m_map.end()) ? it->second : std::string();
79 bool has_key(
const std::string& key)
const {
return m_map.find(key) != m_map.end(); }
92 : m_opt_map(opt_map), m_indent(
" ") {}
94 void opt(
const std::string&
opt,
const char* arg_info,
const char* subline =
"")
96 m_stream << m_indent <<
"[-" <<
opt;
98 m_stream <<
" " << arg_info;
101 const std::string def = m_opt_map[
opt];
102 if (def.length() > 0) {
103 m_stream <<
" (default: " << def <<
" )";
106 if (subline && subline[0]) {
111 void line(
const char* info =
"")
113 m_stream << m_indent <<
" " << info <<
"\n";
116 std::string
text()
const {
return m_stream.str(); }
118 std::ostringstream&
stream() {
return m_stream; }
121 std::ostringstream m_stream;
123 std::string m_indent;
bool has_key(const std::string &key) const
std::string & operator[](const std::string &key)
const Map_type & get_map() const
std::string operator[](const std::string &key) const
std::map< std::string, std::string > Map_type
std::ostringstream & stream()
Usage_helper(const Option_map &opt_map)
void line(const char *info="")
void opt(const std::string &opt, const char *arg_info, const char *subline="")
XAC compute example scenes.
mi::math::Vector< mi::Uint32, 4 > Vec4u
mi::math::Bbox< mi::Uint32, 2 > Bbox2u
mi::math::Vector< mi::Float64, 3 > Vec3d
mi::math::Vector< mi::Sint32, 2 > Vec2i
mi::math::Matrix< mi::Float64, 2, 2 > Mat2d
mi::math::Bbox< mi::Float32, 3 > Bbox3f
mi::math::Bbox< mi::Float32, 2 > Bbox2f
mi::math::Bbox< mi::Sint32, 2 > Bbox2i
bool has_key(const Option_map &opt_map, const std::string &key)
mi::math::Vector< mi::Sint32, 4 > Vec4i
mi::math::Vector< mi::Float64, 2 > Vec2d
mi::math::Matrix< mi::Float64, 3, 3 > Mat3d
mi::math::Vector< mi::Float32, 2 > Vec2f
mi::math::Vector< mi::Uint32, 3 > Vec3u
mi::math::Vector< mi::Float32, 4 > Vec4f
mi::math::Matrix< mi::Float32, 3, 3 > Mat3f
mi::math::Matrix< mi::Float32, 4, 4 > Mat4f
mi::math::Vector< mi::Float32, 3 > Vec3f
mi::math::Vector< mi::Uint32, 2 > Vec2u
mi::math::Vector< mi::Sint32, 3 > Vec3i
mi::math::Matrix< mi::Float64, 4, 4 > Mat4d
mi::math::Matrix< mi::Float32, 2, 2 > Mat2f
mi::math::Vector< mi::Float64, 4 > Vec4d
mi::math::Bbox< mi::Uint32, 3 > Bbox3u
mi::math::Bbox< mi::Sint32, 3 > Bbox3i
mi::neuraylib::Tag plane_tag
mi::neuraylib::Tag scene_element_tag
mi::neuraylib::Tag plane_compute_program_tag
mi::neuraylib::Tag compute_program_tag
std::string rtc_program_source
std::string plane_rtc_program_source
Compute_launch_info compute_launch_info