VTK
9.1.0
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
}
RTW_DATA
@ RTW_DATA
Definition:
Types.h:134
Geometry.h
RTW
Definition:
Backend.h:6
RTW::Object::GetDataType
RTWDataType GetDataType() const
Definition:
Object.h:306
RTW_GEOMETRIC_MODEL
@ RTW_GEOMETRIC_MODEL
Definition:
Types.h:138
RTW::Geometry
Definition:
Geometry.h:12
RTW::Object
Definition:
Object.h:19
vtkX3D::color
@ color
Definition:
vtkX3D.h:227
RTW::GeometricModel::~GeometricModel
~GeometricModel()
Definition:
GeometricModel.h:24
RTW_MATERIAL
@ RTW_MATERIAL
Definition:
Types.h:144
RTW::Data
Definition:
Data.h:10
RTW::Geometry::SetMaterial
void SetMaterial(Material *material)
Definition:
Geometry.h:366
RTW::Object::AddRef
void AddRef()
Definition:
Object.h:38
RTW::GeometricModel::GeometricModel
GeometricModel(Geometry *_geometry)
Definition:
GeometricModel.h:17
RTW::GeometricModel::Commit
void Commit() override
Definition:
GeometricModel.h:30
RTW::World
Definition:
World.h:13
RTW::GeometricModel
Definition:
GeometricModel.h:13
RTW::Object::SetObject
virtual void SetObject(const std::string &id, Object *object)
Definition:
Object.h:78
RTW::Material
Definition:
Material.h:18
RTW::Object::Release
void Release()
Definition:
Object.h:43
RTW::Geometry::Commit
void Commit() override
Definition:
Geometry.h:43
Generated on Fri Nov 5 2021 00:11:18 for VTK by
1.8.20