3DCoat Core API
The 3DCoat API documentation.
Loading...
Searching...
No Matches
coat::ellipse Class Reference

The ellipse. More...

#include <CorePrimAPI.h>

Inheritance diagram for coat::ellipse:
coat::sphere coat::prim

Public Member Functions

 ellipse ()
 constructs a new ellipse object.
 
 ellipse (const vec3 &pos, float rx, float ry, float rz)
 constructs a new ellipse object.
 
 ellipse (const vec3 &pos, const vec3 &size)
 constructs a new ellipse object.
 
 ellipse (const vec3 &size)
 constructs a new ellipse object.
 
ellipse & axis (const vec3 &directionX, const vec3 &directionY=vec3::AxisY, const vec3 &directionZ=vec3::AxisZ)
 set the axis x, y and z direction
 
ellipse & reset_axis ()
 reset the x, y and z directions
 
ellipse & size (const vec3 &_size)
 set the size of the ellipse.
 
vec3 size () const
 get the size of the ellipse.
 
- Public Member Functions inherited from coat::sphere
 sphere ()
 constructs a new sphere object.
 
 sphere (float radius)
 constructs a new sphere object with radius.
 
 sphere (const vec3 &pos, float radius)
 constructs a new sphere object with position and radius.
 
sphere & radius (const float &r)
 set the radius of the sphere.
 
float radius () const
 get the radius of the sphere.
 
sphere & diameter (const float &d)
 set the diameter of the sphere.
 
float diameter () const
 get the diameter of the sphere.
 
sphere & sub_division (const int subdiv)
 set the degree for subdivision in the mesh.
 
int sub_division () const
 get the degree of subdivision triangular or cubic division of the sphere.
 
sphere & sub_div_mode (const sphere::DivisionMode &divmode)
 set the division mode for the mesh.
 
sphere::DivisionMode sub_div_mode () const
 get the division mode for the mesh.
 
sphere & rings (const int &_rings)
 set the number of rings in the mesh.
 
int rings () const
 get the number of rings in the mesh.
 
sphere & slices (const int &_slices)
 set the number of slices in the mesh.
 
int slices () const
 get the number of slices in the mesh.
 
sphere & sector_on (const bool &_switch)
 set the flag to create a portion of sphere.
 
bool sector_on () const
 get the flag of creating a portion of sphere. Default = false.
 
sphere & slice_from (const float &angle)
 When sector is on, specifies the angle where the sphere slice begins.
 
float slice_from () const
 get the angle where the sphere slice begins.
 
sphere & slice_to (const float &angle)
 When sector is on, specifies the angle where the sphere slice ends.
 
float slice_to () const
 get the angle where the sphere slice ends.
 
sphere & ring_from (const float &angle)
 When sector is on, specifies the angle where the sphere ring begins.
 
float ring_from () const
 get the angle where the sphere ring begins.
 
sphere & ring_to (const float &angle)
 When sector is on, specifies the angle where the sphere ring ends.
 
float ring_to () const
 get the angle where the sphere ring ends.
 
- Public Member Functions inherited from coat::prim
 prim ()
 constructs a new prim object.
 
str class_name ()
 get the primitive class name.
 
prim & name (const char *s)
 set the primitive object name.
 
str name () const
 get the primitive object name.
 
void add (Volume &v)
 add the prim into scene
 
void subtract (Volume &v)
 subtract the prim from scene
 
void intersect (Volume &v)
 intersect the prim into scene
 
void merge (Volume &v, const BoolOpType op)
 merge the prim into scene
 
Mesh mesh ()
 get the mesh prim
 
prim & color (DWORD CL)
 assign the color to the primitive (in voxels)
 
prim & color (float r, float g, float b, float a)
 assign the color to the primitive (in voxels)
 
prim & color (float r, float g, float b)
 assign the color to the primitive (in voxels)
 
prim & color (const char *colorid)
 assign the color to the primitive (in voxels)
 
prim & gloss (float value)
 assign the gloss for the voxel primitive, it will work only if the color already assigned
 
prim & roughness (float value)
 assign the roughness for the voxel primitive, it will work only if the color already assigned
 
prim & metal (float value)
 the metalliclty value for the voxel primitive, it will work only if the color already assigned
 
prim & opacity (float value)
 assign the opacity of the color over the voxel primitive. The color should be assigned before you assign the opacity, for example p.color("red").opacity(0.5)
 
prim & details (const float det_level)
 set the detail level
 
float details ()
 get the detail level
 
prim & transform (const mat4 &t)
 set the transform matrix
 
mat4 transform () const
 get the transform matrix
 
prim & scale (float scale)
 set the scale
 
prim & scale (const vec3 &v)
 set the scale
 
vec3 scale () const
 get the scale
 
prim & translate (const vec3 &_pos)
 Set the primitive translation.
 
vec3 translate () const
 get the primitive translation
 
prim & translate (float x, float y, float z)
 Set the primitive translation.
 
prim & x (float x)
 shift the primitive along the x - axis
 
prim & y (float y)
 shift the primitive along the y - axis
 
prim & z (float z)
 shift the primitive along the z - axis
 
prim & auto_divide (float average_div)
 set the auto devide
 
prim & step_divide (float step)
 set the step devide
 
prim & fillet (float radius)
 set the fillet
 
template<typename T >
T & Obj ()
 Get the primitive object reference.
 
template<typename T >
bool isAs ()
 Check the prim's type.
 
virtual float fillet_relative ()
 calculates a fillet relative value (0..1).
 

Protected Member Functions

void init ()
 initializing of the ellipse.
 
virtual cMeshContainer * create_mesh ()
 creates a mesh container for the ellipse.
 
virtual void density_subdiv (int &slices, int &rings)
 calculates the density-based subdivisions.
 
- Protected Member Functions inherited from coat::prim
template<class T >
T & to_cast_this ()
 cast this prim to the obj type T
 
void merge_debug (Volume &vol, Mesh &mesh)
 merge the mesh debug into scene
 

Additional Inherited Members

- Public Types inherited from coat::sphere
enum  DivisionMode { DIV_TRIANGLE = 0 , DIV_MERIDIAN = 1 , DIV_CUBE = 2 }
 division modes More...
 
- Static Public Member Functions inherited from coat::prim
static void debug_on (bool isOn=true)
 indicates whether to turn on or off the debug mode.
 
static void debug_clear ()
 clear the debug info for primitive operations
 
static void push_transform (const mat4 &t)
 set the global transform matrix to all primitives
 
static void push_translate (const vec3 &d)
 Set the translation to all primitives.
 
static void push_scale (float scale)
 Set the scale to all primitives.
 
static void push_scale (const vec3 &s)
 Set the scale to all primitives.
 
static void push_details (float details_modulator)
 set the detail level to all primitives
 
static void reset_transform ()
 reset the global transform matrix
 
- Protected Attributes inherited from coat::prim
prim * _this
 

Detailed Description

The ellipse.

Examples
ellipses.cpp.

Constructor & Destructor Documentation

◆ ellipse() [1/3]

coat::ellipse::ellipse ( const vec3 & pos,
float rx,
float ry,
float rz )

constructs a new ellipse object.

Parameters
posellipse position
rxradius in the x-direction
ryradius in the y-direction
rzradius in the z-direction

◆ ellipse() [2/3]

coat::ellipse::ellipse ( const vec3 & pos,
const vec3 & size )

constructs a new ellipse object.

Parameters
posellipse position
sizeellipse size

◆ ellipse() [3/3]

coat::ellipse::ellipse ( const vec3 & size)

constructs a new ellipse object.

Parameters
sizeellipse size

Member Function Documentation

◆ axis()

ellipse & coat::ellipse::axis ( const vec3 & directionX,
const vec3 & directionY = vec3::AxisY,
const vec3 & directionZ = vec3::AxisZ )

set the axis x, y and z direction

Parameters
directionXthe x-direction
directionYthe y-direction
directionZthe z-direction
Returns
ellipse reference

◆ create_mesh()

virtual cMeshContainer * coat::ellipse::create_mesh ( )
protectedvirtual

creates a mesh container for the ellipse.

Returns
mesh pointer

Reimplemented from coat::sphere.

◆ density_subdiv()

virtual void coat::ellipse::density_subdiv ( int & slices,
int & rings )
protectedvirtual

calculates the density-based subdivisions.

Parameters
slicesthe number of subdivisions around the Z axis
ringsthe number of subdivisions along the Z axis

Reimplemented from coat::sphere.

◆ reset_axis()

ellipse & coat::ellipse::reset_axis ( )

reset the x, y and z directions

Returns
ellipse reference

◆ size() [1/2]

vec3 coat::ellipse::size ( ) const

get the size of the ellipse.

Returns
ellipse size

◆ size() [2/2]

ellipse & coat::ellipse::size ( const vec3 & _size)

set the size of the ellipse.

Parameters
_sizesize
Returns
ellipse reference
Examples
ellipses.cpp.

The documentation for this class was generated from the following file: