VTK
9.2.6
Rendering
RayTracing
RTWrapper
VisRTX
GeometricModel.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
../Types.h
"
4
#include "
Geometry.h
"
5
6
#include <VisRTX.h>
7
8
#include <set>
9
10
namespace
RTW
11
{
12
class
GeometricModel
:
public
Object
13
{
14
friend
class
World
;
15
16
public
:
17
GeometricModel
(
Geometry
*_geometry)
18
:
Object
(
RTW_GEOMETRIC_MODEL
), geometry(_geometry)
19
{
20
if
(geometry)
21
geometry->AddRef();
22
}
23
24
~GeometricModel
()
25
{
26
if
(geometry)
27
geometry->Release();
28
}
29
30
void
Commit
()
override
31
{
32
//Forward "material" data to geometry if extant.
33
bool
found =
false
;
34
Material
*material =
reinterpret_cast<
Material
*
>
(
GetObject<Material>
({
"material"
},
nullptr
, &found));
35
if
(found)
36
{
37
if
(material->
GetDataType
() ==
RTW_DATA
)
38
{
39
geometry->SetObject(
"material"
,
reinterpret_cast<
Data
*
>
(material));
40
geometry->Commit();
41
}
42
else
43
{
44
assert(material->
GetDataType
() ==
RTW_MATERIAL
);
45
geometry->SetMaterial(material);
46
geometry->Commit();
47
}
48
}
49
50
//Forward "color" data to geometry if extant.
51
Data
*color =
reinterpret_cast<
Data
*
>
(
GetObject<Data>
({
"color"
},
nullptr
, &found));
52
if
(found)
53
{
54
assert(color->GetDataType() ==
RTW_DATA
);
55
geometry->SetObject(
"color"
, color);
56
geometry->Commit();
57
}
58
}
59
60
private
:
61
Geometry
*geometry;
62
};
63
}
Geometry.h
Types.h
RTW_MATERIAL
@ RTW_MATERIAL
Definition
Types.h:144
RTW_GEOMETRIC_MODEL
@ RTW_GEOMETRIC_MODEL
Definition
Types.h:138
RTW_DATA
@ RTW_DATA
Definition
Types.h:134
RTW::Data
Definition
Data.h:10
RTW::GeometricModel::Commit
void Commit() override
Definition
GeometricModel.h:30
RTW::GeometricModel::World
friend class World
Definition
GeometricModel.h:14
RTW::GeometricModel::GeometricModel
GeometricModel(Geometry *_geometry)
Definition
GeometricModel.h:17
RTW::GeometricModel::~GeometricModel
~GeometricModel()
Definition
GeometricModel.h:24
RTW::Geometry
Definition
Geometry.h:12
RTW::Material
Definition
Material.h:18
RTW::Object::GetDataType
RTWDataType GetDataType() const
Definition
Object.h:306
RTW::Object::GetObject
T * GetObject(const std::vector< std::string > &ids, T *defaultValue=nullptr, bool *found=nullptr) const
Definition
Object.h:98
RTW::Object::Object
Object(RTWDataType type=RTW_OBJECT)
Definition
Object.h:21
RTW
Definition
Backend.h:6
Generated on Tue Jan 28 2025 00:00:00 for VTK by
1.13.2