ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
TriangleGroup.tpp
Go to the documentation of this file.
1#pragma once
2
3template<int vertexCount, int triangleCount>
4TriangleGroup<vertexCount, triangleCount>::TriangleGroup(IStaticTriangleGroup* staticTriangleGroup) {
5 indexGroup = staticTriangleGroup->GetIndexGroup();
6
7 if (staticTriangleGroup->HasUV()) {
8 this->hasUV = staticTriangleGroup->HasUV();
9
10 uvVertices = staticTriangleGroup->GetUVVertices();
11 uvIndexGroup = staticTriangleGroup->GetUVIndexGroup();
12 }
13
14 for (int i = 0; i < vertexCount; i++) {
15 vertices[i] = staticTriangleGroup->GetVertices()[i];
16 }
17
18 for (int i = 0; i < triangleCount; i++) {
19 triangles[i].p1 = &vertices[indexGroup[i].A];
20 triangles[i].p2 = &vertices[indexGroup[i].B];
21 triangles[i].p3 = &vertices[indexGroup[i].C];
22
23 if (staticTriangleGroup->HasUV()) {
24 triangles[i].p1UV = &uvVertices[uvIndexGroup[i].A];
25 triangles[i].p2UV = &uvVertices[uvIndexGroup[i].B];
26 triangles[i].p3UV = &uvVertices[uvIndexGroup[i].C];
27
28 triangles[i].hasUV = true;
29 }
30 }
31}
32
33template<int vertexCount, int triangleCount>
34const IndexGroup* TriangleGroup<vertexCount, triangleCount>::GetIndexGroup() {
35 return indexGroup;
36}
37
38template<int vertexCount, int triangleCount>
39int TriangleGroup<vertexCount, triangleCount>::GetTriangleCount() {
40 return triangleCount;
41}
42
43template<int vertexCount, int triangleCount>
44Vector3D* TriangleGroup<vertexCount, triangleCount>::GetVertices() {
45 return vertices;
46}
47
48template<int vertexCount, int triangleCount>
49int TriangleGroup<vertexCount, triangleCount>::GetVertexCount() {
50 return vertexCount;
51}
52
53template<int vertexCount, int triangleCount>
54Triangle3D* TriangleGroup<vertexCount, triangleCount>::GetTriangles() {
55 return triangles;
56}
57
58template<int vertexCount, int triangleCount>
59const Vector2D* TriangleGroup<vertexCount, triangleCount>::GetUVVertices() {
60 return uvVertices;
61}
62
63template<int vertexCount, int triangleCount>
64const IndexGroup* TriangleGroup<vertexCount, triangleCount>::GetUVIndexGroup() {
65 return uvIndexGroup;
66}