129 void SetSize(
double d)
override;
212 void Print()
override;
230 void UpdateLinkedPatches();
240 void UpdataMatDuDv();
290 void SortNormalPatchVertices(
VecXT<Vec3d> *
const normals);
353 int GetSupportPatchID(
Vec3d const &dir);
A class representing a polybezier with variable orders and patches.
Definition shape_polybezier.hpp:21
int order
Definition shape_polybezier.hpp:24
STLModel GetSTLModel(int num_nodes=200) override
Generate an STL model for the Polybezier object.
Definition shape_polybezier.cpp:251
Polybezier()
Default constructor.
Definition shape_polybezier.cpp:16
Shape * Clone() const override
Clone the Polybezier object.
Definition shape_polybezier.cpp:249
VecXT< VecXT< Vec3d > > face_patch_normals_list
Definition shape_polybezier.hpp:30
void UpdateShapeProperties() override
Update the shape properties of the Polybezier object.
Definition shape_polybezier.cpp:182
void SaveNormalPatchesSpherical(std::string const &file)
Save normal patches as a spherical mesh.
Definition shape_polybezier.cpp:304
Vec3d SupportPoint(Vec3d const &dir) override
Compute the support point of the Polybezier object in a given direction.
Definition shape_polybezier.cpp:378
void Init()
Initialize the Polybezier object.
Definition shape_polybezier.cpp:175
VecXT< VecXT< int > > linked_patches_list
Definition shape_polybezier.hpp:39
int num_patches
Definition shape_polybezier.hpp:24
void SaveNormalPatchesCubic(std::string const &file)
Save normal patches as a cubic mesh.
Definition shape_polybezier.cpp:332
STLModel GetSTLModel_v2(int num_nodes=200)
Generate an alternate version of the STL model for the Polybezier object.
Definition shape_polybezier.cpp:266
void InitFromJson(nlohmann::json const &js) override
Initialize the Polybezier object from a JSON structure.
Definition shape_polybezier.cpp:31
void Print() override
Print information about the Polybezier object.
Definition shape_polybezier.cpp:532
VecXT< Vec3i > linked_edges_list
Definition shape_polybezier.hpp:36
VecXT< VecXT< Vec3d > > edge_patch_knots_list
Definition shape_polybezier.hpp:33
VecXT< Vec3d > SupportPoints(Vec3d const &dir) override
Compute the support points of the Polybezier object in a given direction.
Definition shape_polybezier.cpp:418
VecXT< VecXT< Vec3d > > face_patch_knots_list
Definition shape_polybezier.hpp:27
void InitFromKernelSTL(std::string const &file)
Initialize the Polybezier object from a kernel STL model read from file.
nlohmann::json PackJson() override
Pack the Polybezier object into a JSON structure.
Definition shape_polybezier.cpp:21
int num_cells
Definition shape_polybezier.hpp:40
void SetSize(double d) override
Set the size of the Polybezier object.
Definition shape_polybezier.cpp:225
void InitByRandom()
Initialize the Polybezier object randomly.
Definition shape_polybezier.cpp:46
Class for working with STL models.
Definition stl_model.hpp:17
This class represents different types of shapes and performs various calculations on them.
Definition shape.hpp:15
Definition bond_entry.hpp:7
std::vector< T > VecXT
Definition utils_macros.hpp:31
std::array< double, 3 > Vec3d
Definition utils_macros.hpp:18