opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
torus_knot_geometry.h
Go to the documentation of this file.
1#pragma once
2
5
6#include <cstddef>
7
8namespace osc
9{
11 friend bool operator==(const TorusKnotGeometryParams&, const TorusKnotGeometryParams&) = default;
12
13 float torus_radius = 1.0f;
14 float tube_radius = 0.4f;
17 size_t p = 2;
18 size_t q = 3;
19 };
20
21 // generates a torus knot, the particular shape of which is defined by a pair
22 // of coprime integers `p` and `q`. If `p` and `q` are not coprime, the result
23 // will be a torus link
25 public:
27
28 static constexpr CStringView name() { return "Torus Knot"; }
29
30 explicit TorusKnotGeometry(const Params& = {});
31
32 const Mesh& mesh() const { return mesh_; }
33 operator const Mesh& () const { return mesh_; }
34 private:
35 Mesh mesh_;
36 };
37}
Definition c_string_view.h:12
Definition mesh.h:33
Definition torus_knot_geometry.h:24
static constexpr CStringView name()
Definition torus_knot_geometry.h:28
TorusKnotGeometry(const Params &={})
const Mesh & mesh() const
Definition torus_knot_geometry.h:32
Definition custom_decoration_generator.h:5
constexpr U to(T &&value)
Definition conversion.h:56
Definition torus_knot_geometry.h:10
size_t q
Definition torus_knot_geometry.h:18
size_t p
Definition torus_knot_geometry.h:17
size_t num_tubular_segments
Definition torus_knot_geometry.h:15
friend bool operator==(const TorusKnotGeometryParams &, const TorusKnotGeometryParams &)=default
float torus_radius
Definition torus_knot_geometry.h:13
float tube_radius
Definition torus_knot_geometry.h:14
size_t num_radial_segments
Definition torus_knot_geometry.h:16