Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
primitivegroup.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
13
#include "
coregraphics/primitivetopology.h
"
14
#include "
math/bbox.h
"
15
16
//------------------------------------------------------------------------------
17
namespace
CoreGraphics
18
{
19
class
PrimitiveGroup
20
{
21
public
:
23
PrimitiveGroup
();
24
26
void
SetBaseVertex
(
IndexT
i);
28
IndexT
GetBaseVertex
()
const
;
30
void
SetNumVertices
(
SizeT
n);
32
SizeT
GetNumVertices
()
const
;
34
void
SetBaseIndex
(
IndexT
i);
36
IndexT
GetBaseIndex
()
const
;
38
void
SetNumIndices
(
SizeT
n);
40
SizeT
GetNumIndices
()
const
;
42
SizeT
GetNumPrimitives
(
const
CoreGraphics::PrimitiveTopology::Code
& topo)
const
;
43
44
private
:
45
IndexT
baseVertex
;
46
SizeT
numVertices
;
47
IndexT
baseIndex
;
48
SizeT
numIndices
;
49
};
50
51
//------------------------------------------------------------------------------
54
inline
55
PrimitiveGroup::PrimitiveGroup
() :
56
baseVertex
(0),
57
numVertices
(0),
58
baseIndex
(0),
59
numIndices
(0)
60
{
61
// empty
62
}
63
64
//------------------------------------------------------------------------------
67
inline
void
68
PrimitiveGroup::SetBaseVertex
(
IndexT
i)
69
{
70
this->
baseVertex
= i;
71
}
72
73
//------------------------------------------------------------------------------
76
inline
IndexT
77
PrimitiveGroup::GetBaseVertex
()
const
78
{
79
return
this->
baseVertex
;
80
}
81
82
//------------------------------------------------------------------------------
85
inline
void
86
PrimitiveGroup::SetNumVertices
(
SizeT
n)
87
{
88
this->
numVertices
= n;
89
}
90
91
//------------------------------------------------------------------------------
94
inline
SizeT
95
PrimitiveGroup::GetNumVertices
()
const
96
{
97
return
this->
numVertices
;
98
}
99
100
//------------------------------------------------------------------------------
103
inline
void
104
PrimitiveGroup::SetBaseIndex
(
IndexT
i)
105
{
106
this->
baseIndex
= i;
107
}
108
109
//------------------------------------------------------------------------------
112
inline
IndexT
113
PrimitiveGroup::GetBaseIndex
()
const
114
{
115
return
this->
baseIndex
;
116
}
117
118
//------------------------------------------------------------------------------
121
inline
void
122
PrimitiveGroup::SetNumIndices
(
SizeT
n)
123
{
124
this->
numIndices
= n;
125
}
126
127
//------------------------------------------------------------------------------
130
inline
SizeT
131
PrimitiveGroup::GetNumIndices
()
const
132
{
133
return
this->
numIndices
;
134
}
135
136
//------------------------------------------------------------------------------
139
inline
SizeT
140
PrimitiveGroup::GetNumPrimitives
(
const
CoreGraphics::PrimitiveTopology::Code
& topo)
const
141
{
142
if
(this->
numIndices
> 0)
143
{
144
return
PrimitiveTopology::NumberOfPrimitives
(topo, this->
numIndices
);
145
}
146
else
147
{
148
return
PrimitiveTopology::NumberOfPrimitives
(topo, this->
numVertices
);
149
}
150
}
151
152
}
// namespace PrimitiveGroup
153
//------------------------------------------------------------------------------
154
bbox.h
CoreGraphics::PrimitiveGroup::GetNumPrimitives
SizeT GetNumPrimitives(const CoreGraphics::PrimitiveTopology::Code &topo) const
get computed number of primitives
Definition
primitivegroup.h:140
CoreGraphics::PrimitiveGroup::GetNumIndices
SizeT GetNumIndices() const
get number of indices
Definition
primitivegroup.h:131
CoreGraphics::PrimitiveGroup::GetBaseIndex
IndexT GetBaseIndex() const
get base index index
Definition
primitivegroup.h:113
CoreGraphics::PrimitiveGroup::baseIndex
IndexT baseIndex
Definition
primitivegroup.h:47
CoreGraphics::PrimitiveGroup::numVertices
SizeT numVertices
Definition
primitivegroup.h:46
CoreGraphics::PrimitiveGroup::baseVertex
IndexT baseVertex
Definition
primitivegroup.h:45
CoreGraphics::PrimitiveGroup::PrimitiveGroup
PrimitiveGroup()
constructor
Definition
primitivegroup.h:55
CoreGraphics::PrimitiveGroup::numIndices
SizeT numIndices
Definition
primitivegroup.h:48
CoreGraphics::PrimitiveGroup::GetNumVertices
SizeT GetNumVertices() const
get number of vertices
Definition
primitivegroup.h:95
CoreGraphics::PrimitiveGroup::SetNumVertices
void SetNumVertices(SizeT n)
set number of vertices
Definition
primitivegroup.h:86
CoreGraphics::PrimitiveGroup::SetBaseVertex
void SetBaseVertex(IndexT i)
set base vertex index
Definition
primitivegroup.h:68
CoreGraphics::PrimitiveGroup::SetBaseIndex
void SetBaseIndex(IndexT i)
set base index index
Definition
primitivegroup.h:104
CoreGraphics::PrimitiveGroup::SetNumIndices
void SetNumIndices(SizeT n)
set number of indices
Definition
primitivegroup.h:122
CoreGraphics::PrimitiveGroup::GetBaseVertex
IndexT GetBaseVertex() const
get index of base vertex
Definition
primitivegroup.h:77
CoreGraphics::PrimitiveTopology::Code
Code
enumeration
Definition
primitivetopology.h:23
CoreGraphics::PrimitiveTopology::NumberOfPrimitives
static SizeT NumberOfPrimitives(Code topology, SizeT numVertices)
compute number of primitives given a primitive type and number of vertices/indices
Definition
primitivetopology.cc:86
CoreGraphics
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
Definition
accelerationstructure.h:24
primitivetopology.h
SizeT
int SizeT
Definition
types.h:42
IndexT
int IndexT
Definition
types.h:41
code
render
coregraphics
primitivegroup.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.