10 class FL_EXPORT CFLPoint3;
12 template <
typename Ty>
13 class FL_EXPORT CFLGeometry3DDirection;
15 template <
typename Ty>
16 class FL_EXPORT CMatrixFor3DTransform;
18 template <
typename Ty>
19 class FL_EXPORT CFLGeometry3DLine;
21 template <
typename Ty>
22 class FL_EXPORT CFLGeometry3DPlane;
29 template <
typename Ty>
30 class FL_EXPORT CFLGeometry3DBoundingBox :
public Base::CFLBase
37 CFLGeometry3DBoundingBox();
46 CFLGeometry3DBoundingBox(
const CFLPoint3<Ty>& flp3Min,
const CFLPoint3<Ty>& flp3Max);
66 void Set(
const CFLPoint3<Ty>& flp3Point);
76 void Set(
const CFLPoint3<Ty>& flp3Point,
const CFLGeometry3DDirection<Ty>& dir);
88 void Update(
const Ty f64MinX,
const Ty f64MinY,
const Ty f64MinZ,
const Ty f64MaxX,
const Ty f64MaxY,
const Ty f64MaxZ);
97 void Update(
const Ty f64X,
const Ty f64Y,
const Ty f64Z);
111 void SetGap(
const Ty f64Tolerance);
118 void Enlarge(
const Ty f64Tolerance);
132 const CResult Get(Ty& f64MinX, Ty& f64MinY, Ty& f64MinZ, Ty& f64MaxX, Ty& f64MaxY, Ty& f64MaxZ)
const;
142 const CResult GetCornerMin(CFLPoint3<Ty>& flp3CornerMin)
const;
152 const CResult GetCornerMax(CFLPoint3<Ty>& flp3CornerMax)
const;
202 bool IsOpenXmin()
const;
209 bool IsOpenXmax()
const;
216 bool IsOpenYmin()
const;
223 bool IsOpenYmax()
const;
230 bool IsOpenZmin()
const;
237 bool IsOpenZmax()
const;
244 bool IsWhole()
const;
259 bool IsXThin(
const Ty f64Tolerance)
const;
267 bool IsYThin(
const Ty f64Tolerance)
const;
275 bool IsZThin(
const Ty f64Tolerance)
const;
283 bool IsThin(
const Ty f64Tolerance)
const;
293 const CResult
Transform(
const CMatrixFor3DTransform<Ty>& trsf);
302 CFLGeometry3DBoundingBox<Ty> GetTransformed(
const CMatrixFor3DTransform<Ty>& trsf)
const;
309 void Add(
const CFLGeometry3DBoundingBox<Ty>& rhs);
317 void Add(
const CFLPoint3<Ty>& flp3Point);
327 void Add(
const CFLPoint3<Ty>& flp3Point,
const CFLGeometry3DDirection<Ty>& dir);
335 void Add(
const CFLGeometry3DDirection<Ty>& dir);
344 bool IsOut(
const CFLPoint3<Ty>& flp3Point)
const;
354 bool IsOut(
const CFLGeometry3DLine<Ty>& line3D)
const;
364 bool IsOut(
const CFLGeometry3DPlane<Ty>& plane3D)
const;
373 bool IsOut(
const CFLGeometry3DBoundingBox<Ty>& boundingBox)
const;
384 bool IsOut(
const CFLGeometry3DBoundingBox<Ty>& boundingBox,
const CMatrixFor3DTransform<Ty>& trsf)
const;
395 bool IsOut(
const CMatrixFor3DTransform<Ty>& trsfForThis,
const CFLGeometry3DBoundingBox<Ty>& boundingBox,
const CMatrixFor3DTransform<Ty>& trsfForOther)
const;
407 bool IsOut(
const CFLPoint3<Ty>& flp3Point1,
const CFLPoint3<Ty>& flp3Point2,
const CFLGeometry3DDirection<Ty>& dir)
const;
416 Ty GetDistance(
const CFLGeometry3DBoundingBox<Ty>& rhs)
const;
424 Ty GetSquareExtent()
const;
431 CFLGeometry3DBoundingBox<Ty> GetFinitePart()
const;
438 bool HasFinitePart()
const;
440 SupportToDuplicateObject(CFLGeometry3DBoundingBox<Ty>, *
this);
441 DeclareGetClassType();