35 #ifndef AIMS_SURFACE_SURFACEGEN_H
36 #define AIMS_SURFACE_SURFACEGEN_H
90 bool smoothnormal =
false );
96 float radius2,
unsigned nfacets,
97 bool closed,
bool smooth =
false,
98 bool smoooth_tube =
true );
102 const Point3df & base,
float radius,
103 unsigned nfacets,
bool closed,
104 bool smooth =
false );
109 const Point3df & base,
float radius,
110 float arrowradius,
unsigned nfacets,
111 float arrowlengthfract );
133 bool uniquevertices =
false );
139 bool uniquevertices =
false );
143 float radius,
unsigned nfacets );
154 bool smooth =
false );
167 const Point3df & center,
float radius,
unsigned nseg=20,
170 float stopangle = M_PI*2 );
Factory class for various common shapes of meshes.
static AimsSurfaceTriangle * cylinder(const Point3df &p1, const Point3df &p2, float radius, float radius2, unsigned nfacets, bool closed, bool smooth=false, bool smoooth_tube=true)
static AimsSurfaceTriangle * parallelepiped(const Point3df &boundingbox_min, const Point3df &boundingbox_max, bool smooth=false)
static AimsTimeSurface< 2, Void > * parallelepiped_wireframe(const Point3df &boundingbox_min, const Point3df &boundingbox_max)
static void printDescription_wireframe(std::ostream &s=std::cout)
static carto::Object description()
description of known shapes and parameters (vector of dicts)
static AimsSurfaceTriangle * parallelepiped(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * arrow(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * arrow(const Point3df &arrow, const Point3df &base, float radius, float arrowradius, unsigned nfacets, float arrowlengthfract)
static AimsSurfaceTriangle * generate(carto::Object params)
generic factory function (calls lower-level functions)
static AimsSurfaceTriangle * icosahedron(const Point3df ¢er, float radius)
static AimsSurfaceTriangle * cube(const Point3df ¢er, float radius, bool smoothnormal=false)
static AimsSurfaceTriangle * cylinder(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * icosphere(const carto::GenericObject ¶ms)
static AimsTimeSurface< 2, Void > * generate_wireframe(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * ellipse(const Point3df &p1, float radius1, float radius2, unsigned nfacets, bool uniquevertices=false)
static AimsTimeSurface< 2, Void > * circle_wireframe(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * cone(const carto::GenericObject ¶ms)
static void printDescription(std::ostream &s=std::cout)
outputs the description() dictionary in a more huma-readable way
static AimsTimeSurface< 2, Void > * grid(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * icosphere(const Point3df ¢er, float radius, unsigned nfacets)
static AimsSurfaceTriangle * cone(const Point3df &arrow, const Point3df &base, float radius, unsigned nfacets, bool closed, bool smooth=false)
static AimsSurfaceTriangle * ellipse(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * generate(const carto::GenericObject ¶ms)
generic factory function (calls lower-level functions)
static AimsSurfaceTriangle * cube(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * sphere(const carto::GenericObject ¶ms)
static AimsSurfaceTriangle * icosahedron(const carto::GenericObject ¶ms)
Sphere generation functions by Manik Bhattacharjee (CNRS UPR640 - LENA)
static AimsSurfaceTriangle * sphere(const Point3df &p1, float radius, unsigned nfacets, bool uniquevertices=false)
static AimsTimeSurface< 2, Void > * generate_wireframe(carto::Object params)
generic factory function (calls lower-level functions)
static AimsTimeSurface< 2, Void > * parallelepiped_wireframe(const carto::GenericObject ¶ms)
static carto::Object description_wireframe()
static AimsTimeSurface< 2, Void > * circle_wireframe(const Point3df ¢er, float radius, unsigned nseg=20, const Point3df &normal=Point3df(0, 0, 1), const Point3df &startdir=Point3df(1, 0, 0), float startangle=0, float stopangle=M_PI *2)
Circle, or part of circle.
static AimsTimeSurface< 2, Void > * grid(const Point3df &boundingbox_min, const Point3df &boundingbox_max, const Point3df &grid_sampling)
Grid wireframe.
The class for EcatSino data write operation.
virtual AimsTimeSurface< 2, Void > * generator(const carto::GenericObject &) const =0
virtual carto::Object parameters() const =0
virtual ~Generator_wireframe()
virtual carto::Object parameters() const =0
virtual AimsSurfaceTriangle * generator(const carto::GenericObject &) const =0
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle