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