32 #ifndef GeometricalPrimitives_INCLUDE_ONCE 33 #define GeometricalPrimitives_INCLUDE_ONCE 80 VLGRAPHICS_EXPORT ref<Geometry> makeGrid(
const vec3& origin, real xside, real zside,
int x,
int z,
bool gen_texcoords =
false,
fvec2 uv0=
fvec2(0,0),
fvec2 uv1=
fvec2(1,1),
bool center=
true);
VLGRAPHICS_EXPORT ref< Geometry > makeCylinder(const vec3 &origin, real diameter=1, real height=1, int phi=20, int theta=2, bool top=true, bool bottom=true)
Creates a cylinder.
VLGRAPHICS_EXPORT ref< Geometry > makeCone(const vec3 &origin, real diameter=1, real height=1, int phi=20, bool bottom=true)
Creates a cone.
VLGRAPHICS_EXPORT ref< Geometry > makeTeapot(const vec3 &origin, real diameter=1, int detail=8)
Creates a classic Newell's teapot.
The Vector4 class is a template class that implements a generic 4 components vector, see also vl::fvec4, vl::dvec4, vl::uvec4, vl::ivec4, vl::svec4, vl::usvec4, vl::bvec4, vl::ubvec4.
Visualization Library main namespace.
Vector2< float > fvec2
A 2 components vector with float precision.
VLGRAPHICS_EXPORT ref< Geometry > makeBox(const vec3 &origin, real xside=1, real yside=1, real zside=1, bool tex_coords=true)
Creates a box.
The AABB class implements an axis-aligned bounding box using vl::real precision.
VLGRAPHICS_EXPORT ref< Geometry > makeIcosahedron(const vec3 &origin, real diameter)
Creates an icosahedron.
float max(float a, float b)
float min(float a, float b)
VLGRAPHICS_EXPORT ref< Geometry > makeTorus(const vec3 &origin, real diameter=1, real thickness=0.2, int phi=10, int theta=10, float tex_coords=0.0f)
Creates torus. This function generates also appropriate normals.
VLGRAPHICS_EXPORT ref< Geometry > makeCapsule(float radius, float height, int segments, ECapsuleCap top_cap, ECapsuleCap bottom_cap, const fvec4 &top_col, const fvec4 &bottom_col)
Creates a 3d capsule with rounded, flat or no caps.
VLGRAPHICS_EXPORT ref< Geometry > makePyramid(const vec3 &origin, real side=1, real height=1)
Creates a pyramid.
#define VLGRAPHICS_EXPORT
The Vector2 class is a template class that implements a generic 2 components vector, see also vl::fvec2, vl::dvec2, vl::uvec2, vl::ivec2, vl::svec2, vl::usvec2, vl::bvec2, vl::ubvec2.
VLGRAPHICS_EXPORT ref< Geometry > makeIcosphere(const vec3 &pos, real diameter=1, int detail=2, bool remove_doubles=true)
Creates a sphere by iteratively subdividing an icosahedron.
VLGRAPHICS_EXPORT ref< Geometry > makePoints(const std::vector< vec3 > &pos, const fvec4 &color=white)
Creates a set of points.
The ref<> class is used to reference-count an Object.
VLGRAPHICS_EXPORT ref< Geometry > makeGrid(const vec3 &origin, real xside, real zside, int x, int z, bool gen_texcoords=false, fvec2 uv0=fvec2(0, 0), fvec2 uv1=fvec2(1, 1), bool center=true)
Creates a 2D grid.
VLGRAPHICS_EXPORT ref< Geometry > makeUVSphere(const vec3 &origin, real diameter=1, int phi=20, int theta=20)
Creates a uv sphere.
VLGRAPHICS_EXPORT ref< Geometry > makeCircle(vec3 origin, real radius, int slices=60)
Creates a 2D circle.