曲率结构体:
- struct PrincipalCurvatures
- {
- union
- {
- float principal_curvature[3];
- struct
- {
- float principal_curvature_x;
- float principal_curvature_y;
- float principal_curvature_z;
- };
- };
- float pc1 = 0.f;
- float pc2 = 0.f;
-
- inline constexpr PrincipalCurvatures (): PrincipalCurvatures (0.f, 0.f) {}
-
- inline constexpr PrincipalCurvatures (float _pc1, float _pc2): PrincipalCurvatures (0.f, 0.f, 0.f, _pc1, _pc2) {}
-
- inline constexpr PrincipalCurvatures (float _x, float _y, float _z): PrincipalCurvatures (_x, _y, _z, 0.f, 0.f) {}
-
- inline constexpr PrincipalCurvatures (float _x, float _y, float _z, float _pc1, float _pc2):
- principal_curvature_x (_x), principal_curvature_y (_y), principal_curvature_z (_z), pc1 (_pc1), pc2 (_pc2) {}
-
- friend std::ostream& operator << (std::ostream& os, const PrincipalCurvatures& p);
- };
在这个结构体中,principal_curvature
数组和principal_curvature_x
、principal_curvature_y
、principal_curvature_z
三个成员变量是等价的,它们都用来存储主曲率的值。
而pc1
和pc2
则是额外的成员变量,用来存储主曲率的最大值和最小值。在这个结构体中,pc1
表示主曲率的最大值,pc2
表示主曲率的最小值。