FLImaging 6.6.27.1
TQuadrilateralSolid3.h
1#pragma once
2
10
11#include <stdint.h>
12#include <type_traits>
13#include <typeinfo>
14
15#include "FLLibTags.h"
16#include "TQuad3.h"
17
19namespace FLImaging
20{
22 namespace Base
23 {
35 #pragma pack(push, 1)
36 template <typename T>
37 class FL_EXPORT TQuadrilateralSolid3
38 {
39 public:
40 TQuad3<T> tqPlanes[2];
41
42
43 TQuadrilateralSolid3()
44 {
45 }
46
47 TQuadrilateralSolid3(const TQuadrilateralSolid3<T>& tqs) : TQuadrilateralSolid3(tqs.tqPlanes[0], tqs.tqPlanes[1])
48 {
49 }
50
51 TQuadrilateralSolid3(const TPoint3<T>& tpPoint00, const TPoint3<T>& tpPoint01, const TPoint3<T>& tpPoint02, const TPoint3<T>& tpPoint03, const TPoint3<T>& tpPoint10, const TPoint3<T>& tpPoint11, const TPoint3<T>& tpPoint12, const TPoint3<T>& tpPoint13)
52 {
53 tqPlanes[0].Set(tpPoint00, tpPoint01, tpPoint02, tpPoint03);
54 tqPlanes[1].Set(tpPoint10, tpPoint11, tpPoint12, tpPoint13);
55 }
56
57 TQuadrilateralSolid3(const TQuad3<T>& tqPlane0, const TQuad3<T>& tqPlane1) : TQuadrilateralSolid3(tqPlane0.tpPoints[0], tqPlane0.tpPoints[1], tqPlane0.tpPoints[2], tqPlane0.tpPoints[3], tqPlane1.tpPoints[0], tqPlane1.tpPoints[1], tqPlane1.tpPoints[2], tqPlane1.tpPoints[3])
58 {
59 }
60
61 void Set(const TQuadrilateralSolid3<T>& tqs)
62 {
63 tqPlanes[0] = tqs.tqPlanes[0];
64 tqPlanes[1] = tqs.tqPlanes[1];
65 }
66
67 void Set(const TPoint3<T>& tpPoint00, const TPoint3<T>& tpPoint01, const TPoint3<T>& tpPoint02, const TPoint3<T>& tpPoint03, const TPoint3<T>& tpPoint10, const TPoint3<T>& tpPoint11, const TPoint3<T>& tpPoint12, const TPoint3<T>& tpPoint13)
68 {
69 tqPlanes[0].Set(tpPoint00, tpPoint01, tpPoint02, tpPoint03);
70 tqPlanes[1].Set(tpPoint10, tpPoint11, tpPoint12, tpPoint13);
71 }
72
73 void Set(const TQuad3<T>& tqPlane0, const TQuad3<T>& tqPlane1)
74 {
75 Set(tqPlane0.tpPoints[0], tqPlane0.tpPoints[1], tqPlane0.tpPoints[2], tqPlane0.tpPoints[3], tqPlane1.tpPoints[0], tqPlane1.tpPoints[1], tqPlane1.tpPoints[2], tqPlane1.tpPoints[3]);
76 }
77 };
78 #pragma pack(pop)
79
80 typedef TQuadrilateralSolid3<int16_t> TQuadrilateralSolid3S;
81 typedef TQuadrilateralSolid3<uint16_t> TQuadrilateralSolid3US;
82 typedef TQuadrilateralSolid3<int32_t> TQuadrilateralSolid3L;
83 typedef TQuadrilateralSolid3<uint32_t> TQuadrilateralSolid3UL;
84 typedef TQuadrilateralSolid3<int64_t> TQuadrilateralSolid3LL;
85 typedef TQuadrilateralSolid3<uint64_t> TQuadrilateralSolid3ULL;
86 typedef TQuadrilateralSolid3<float> TQuadrilateralSolid3F;
87 typedef TQuadrilateralSolid3<double> TQuadrilateralSolid3D;
88 }
89}
3차원 점을 표현하는 간략화된 클래스
Definition TPoint3.h:37
사각형을 표현하는 간략화된 클래스
Definition TQuad3.h:38
사각형 두 개의 각 대응 꼭지점을 연결한 비정형 육면체를 표현하는 간략화된 클래스
Definition TQuadrilateralSolid3.h:38
Definition AESCryptography.h:18