FLImaging 6.6.27.1
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:
40 TTriangle3<T> ttPlanes[2];
41
42 TTriangularSolid3()
43 {
44 }
45
46 TTriangularSolid3(const TTriangularSolid3<T>& tts) : TTriangularSolid3(tts.ttPlanes[0], tts.ttPlanes[1])
47 {
48 }
49
50 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)
51 {
52 ttPlanes[0].Set(tpPoint00, tpPoint01, tpPoint02);
53 ttPlanes[1].Set(tpPoint10, tpPoint11, tpPoint12);
54 }
55
56 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])
57 {
58 }
59
60 void Set(const TTriangularSolid3<T>& tts)
61 {
62 ttPlanes[0] = tts.ttPlanes[0];
63 ttPlanes[1] = tts.ttPlanes[1];
64 }
65
66 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)
67 {
68 ttPlanes[0].Set(tpPoint00, tpPoint01, tpPoint02);
69 ttPlanes[1].Set(tpPoint10, tpPoint11, tpPoint12);
70 }
71
72 void Set(const TTriangle3<T>& ttPlane0, const TTriangle3<T>& ttPlane1)
73 {
74 Set(ttPlane0.tpPoints[0], ttPlane0.tpPoints[1], ttPlane0.tpPoints[2], ttPlane1.tpPoints[0], ttPlane1.tpPoints[1], ttPlane1.tpPoints[2]);
75 }
76 };
77 #pragma pack(pop)
78
79 typedef TTriangularSolid3<int16_t> TTriangularSolid3S;
80 typedef TTriangularSolid3<uint16_t> TTriangularSolid3US;
81 typedef TTriangularSolid3<int32_t> TTriangularSolid3L;
82 typedef TTriangularSolid3<uint32_t> TTriangularSolid3UL;
83 typedef TTriangularSolid3<int64_t> TTriangularSolid3LL;
84 typedef TTriangularSolid3<uint64_t> TTriangularSolid3ULL;
85 typedef TTriangularSolid3<float> TTriangularSolid3F;
86 typedef TTriangularSolid3<double> TTriangularSolid3D;
87 }
88}
3차원 점을 표현하는 간략화된 클래스
Definition TPoint3.h:37
삼각형을 표현하는 간략화된 클래스
Definition TTriangle3.h:38
삼각형 두 개의 각 대응 꼭지점을 연결한 비정형 오면체를 표현하는 간략화된 클래스
Definition TTriangularSolid3.h:38
Definition AESCryptography.h:18