FLImaging 7.8.25.3
TTriangularSolid3.h
1#pragma once
2
10
11#include <stdint.h>
12#include <type_traits>
13#include <typeinfo>
14
15#include "FLLibTags.h"
16#include "TTriangle3.h"
17
19namespace FLImaging
20{
22 namespace Base
23 {
35 #pragma pack(push, 1)
36 template <typename T>
37 class FL_EXPORT TTriangularSolid3
38 {
39 public:
45
54 {
55 }
56
67 {
68 }
69
89 TTriangularSolid3(const TPoint3<T>& tpPoint00, const TPoint3<T>& tpPoint01, const TPoint3<T>& tpPoint02, const TPoint3<T>& tpPoint10, const TPoint3<T>& tpPoint11, const TPoint3<T>& tpPoint12)
90 {
91 ttPlanes[0].Set(tpPoint00, tpPoint01, tpPoint02);
92 ttPlanes[1].Set(tpPoint10, tpPoint11, tpPoint12);
93 }
94
106 TTriangularSolid3(const TTriangle3<T>& ttPlane0, const TTriangle3<T>& ttPlane1) : TTriangularSolid3(ttPlane0.tpPoints[0], ttPlane0.tpPoints[1], ttPlane0.tpPoints[2], ttPlane1.tpPoints[0], ttPlane1.tpPoints[1], ttPlane1.tpPoints[2])
107 {
108 }
109
119 void Set(const TTriangularSolid3<T>& tts)
120 {
121 ttPlanes[0] = tts.ttPlanes[0];
122 ttPlanes[1] = tts.ttPlanes[1];
123 }
124
144 void Set(const TPoint3<T>& tpPoint00, const TPoint3<T>& tpPoint01, const TPoint3<T>& tpPoint02, const TPoint3<T>& tpPoint10, const TPoint3<T>& tpPoint11, const TPoint3<T>& tpPoint12)
145 {
146 ttPlanes[0].Set(tpPoint00, tpPoint01, tpPoint02);
147 ttPlanes[1].Set(tpPoint10, tpPoint11, tpPoint12);
148 }
149
161 void Set(const TTriangle3<T>& ttPlane0, const TTriangle3<T>& ttPlane1)
162 {
163 Set(ttPlane0.tpPoints[0], ttPlane0.tpPoints[1], ttPlane0.tpPoints[2], ttPlane1.tpPoints[0], ttPlane1.tpPoints[1], ttPlane1.tpPoints[2]);
164 }
165 };
166 #pragma pack(pop)
167
168 typedef TTriangularSolid3<int16_t> TTriangularSolid3S;
169 typedef TTriangularSolid3<uint16_t> TTriangularSolid3US;
170 typedef TTriangularSolid3<int32_t> TTriangularSolid3L;
171 typedef TTriangularSolid3<uint32_t> TTriangularSolid3UL;
172 typedef TTriangularSolid3<int64_t> TTriangularSolid3LL;
173 typedef TTriangularSolid3<uint64_t> TTriangularSolid3ULL;
174 typedef TTriangularSolid3<float> TTriangularSolid3F;
175 typedef TTriangularSolid3<double> TTriangularSolid3D;
176 }
177}
Simplified class representing a 3-D point.
Definition TPoint3.h:37
Simplified class representing a triangle.
Definition TTriangle3.h:38
TPoint3< T > tpPoints[3]
Definition TTriangle3.h:44
TTriangle3< int16_t > ttPlanes[2]
Definition TTriangularSolid3.h:44
TTriangularSolid3()
Default constructor.
Definition TTriangularSolid3.h:53
TTriangularSolid3(const TTriangle3< T > &ttPlane0, const TTriangle3< T > &ttPlane1)
Constructs a triangular solid from two triangular planes.
Definition TTriangularSolid3.h:106
TTriangularSolid3(const TTriangularSolid3< T > &tts)
Copy constructor.
Definition TTriangularSolid3.h:66
TTriangularSolid3(const TPoint3< T > &tpPoint00, const TPoint3< T > &tpPoint01, const TPoint3< T > &tpPoint02, const TPoint3< T > &tpPoint10, const TPoint3< T > &tpPoint11, const TPoint3< T > &tpPoint12)
Constructs a triangular solid from six points.
Definition TTriangularSolid3.h:89
void Set(const TPoint3< T > &tpPoint00, const TPoint3< T > &tpPoint01, const TPoint3< T > &tpPoint02, const TPoint3< T > &tpPoint10, const TPoint3< T > &tpPoint11, const TPoint3< T > &tpPoint12)
Sets the triangular solid using six points.
Definition TTriangularSolid3.h:144
void Set(const TTriangularSolid3< T > &tts)
Sets the triangular solid.
Definition TTriangularSolid3.h:119
void Set(const TTriangle3< T > &ttPlane0, const TTriangle3< T > &ttPlane1)
Sets the triangular solid using two triangular planes.
Definition TTriangularSolid3.h:161
Definition AESCryptography.h:18