Cinder  0.9.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cinder::geom::Cylinder Class Reference

#include <GeomIo.h>

Inherits cinder::geom::Source.

Inherited by cinder::geom::Cone.

Public Member Functions

 Cylinder ()
 
Cylindercolors (bool enable=true)
 
Cylinderorigin (const vec3 &origin)
 
CylindersubdivisionsAxis (int subdiv)
 
CylindersubdivisionsHeight (int slices)
 
CylindersubdivisionsCap (int rings)
 
Cylinderheight (float height)
 
Cylinderradius (float radius)
 
Cylinderdirection (const vec3 &direction)
 
Cylinderset (const vec3 &from, const vec3 &to)
 
size_t getNumVertices () const override
 
size_t getNumIndices () const override
 
Primitive getPrimitive () const override
 
uint8_t getAttribDims (Attrib attr) const override
 
AttribSet getAvailableAttribs () const override
 
void loadInto (Target *target, const AttribSet &requestedAttribs) const override
 
Cylinderclone () const override
 

Protected Member Functions

void updateCounts ()
 
void calculate (std::vector< vec3 > *positions, std::vector< vec3 > *normals, std::vector< vec2 > *texCoords, std::vector< vec3 > *colors, std::vector< uint32_t > *indices) const
 
void calculateCap (bool flip, float height, float radius, std::vector< vec3 > *positions, std::vector< vec3 > *normals, std::vector< vec2 > *texCoords, std::vector< vec3 > *colors, std::vector< uint32_t > *indices) const
 
void copyIndicesNonIndexed (uint16_t *dest) const
 
void copyIndicesNonIndexed (uint32_t *dest) const
 
template<typename T >
void forceCopyIndicesTrianglesImpl (T *dest) const
 

Protected Attributes

vec3 mOrigin
 
float mHeight
 
vec3 mDirection
 
float mRadiusBase
 
float mRadiusApex
 
int mSubdivisionsAxis
 
int mSubdivisionsHeight
 
int mSubdivisionsCap
 
bool mHasColors
 
int mNumSegments
 
int mNumSlices
 

Constructor & Destructor Documentation

cinder::geom::Cylinder::Cylinder ( )

Member Function Documentation

Cylinder& cinder::geom::Cylinder::colors ( bool  enable = true)

Enables colors. Disabled by default.

Cylinder& cinder::geom::Cylinder::origin ( const vec3 &  origin)

Specifices the base of the Cylinder.

Cylinder& cinder::geom::Cylinder::subdivisionsAxis ( int  subdiv)

Specifies the number of radial subdivisions, which determines the roundness of the Cylinder. Defaults to 18.

Cylinder& cinder::geom::Cylinder::subdivisionsHeight ( int  slices)

Specifies the number of slices along the Cylinder's height. Defaults to 1.

Cylinder& cinder::geom::Cylinder::subdivisionsCap ( int  rings)

Specifies the number of rings for the Cylinder's cap. Defaults to 3.

Cylinder& cinder::geom::Cylinder::height ( float  height)

Specifies the height of the cylinder.

Cylinder& cinder::geom::Cylinder::radius ( float  radius)

Specifies the base and apex radius.

Cylinder& cinder::geom::Cylinder::direction ( const vec3 &  direction)

Specifies the axis of the cylinder.

Cylinder & cinder::geom::Cylinder::set ( const vec3 &  from,
const vec3 &  to 
)

Conveniently sets origin, height and direction so that the center of the base is from and the center of the apex is to.

size_t cinder::geom::Cylinder::getNumVertices ( ) const
overridevirtual

Implements cinder::geom::Source.

size_t cinder::geom::Cylinder::getNumIndices ( ) const
overridevirtual

Implements cinder::geom::Source.

Primitive cinder::geom::Cylinder::getPrimitive ( ) const
overridevirtual

Implements cinder::geom::Source.

uint8_t cinder::geom::Cylinder::getAttribDims ( Attrib  attr) const
overridevirtual

Implements cinder::geom::Source.

AttribSet cinder::geom::Cylinder::getAvailableAttribs ( ) const
overridevirtual

Implements cinder::geom::Source.

void cinder::geom::Cylinder::loadInto ( Target target,
const AttribSet requestedAttribs 
) const
overridevirtual

Implements cinder::geom::Source.

Cylinder* cinder::geom::Cylinder::clone ( ) const
overridevirtual

Implements cinder::geom::Source.

void cinder::geom::Cylinder::updateCounts ( )
protected
void cinder::geom::Cylinder::calculate ( std::vector< vec3 > *  positions,
std::vector< vec3 > *  normals,
std::vector< vec2 > *  texCoords,
std::vector< vec3 > *  colors,
std::vector< uint32_t > *  indices 
) const
protected
void cinder::geom::Cylinder::calculateCap ( bool  flip,
float  height,
float  radius,
std::vector< vec3 > *  positions,
std::vector< vec3 > *  normals,
std::vector< vec2 > *  texCoords,
std::vector< vec3 > *  colors,
std::vector< uint32_t > *  indices 
) const
protected
void cinder::geom::Source::copyIndicesNonIndexed ( uint16_t *  dest) const
protectedinherited

Builds a sequential list of vertices to simulate an indexed geometry when Source is non-indexed. Assumes dest contains storage for getNumVertices() entries.

void cinder::geom::Source::copyIndicesNonIndexed ( uint32_t *  dest) const
protectedinherited

Builds a sequential list of vertices to simulate an indexed geometry when Source is non-indexed. Assumes dest contains storage for getNumVertices() entries.

template<typename T >
void cinder::geom::Source::forceCopyIndicesTrianglesImpl ( T *  dest) const
protectedinherited

Member Data Documentation

vec3 cinder::geom::Cylinder::mOrigin
protected
float cinder::geom::Cylinder::mHeight
protected
vec3 cinder::geom::Cylinder::mDirection
protected
float cinder::geom::Cylinder::mRadiusBase
protected
float cinder::geom::Cylinder::mRadiusApex
protected
int cinder::geom::Cylinder::mSubdivisionsAxis
protected
int cinder::geom::Cylinder::mSubdivisionsHeight
protected
int cinder::geom::Cylinder::mSubdivisionsCap
protected
bool cinder::geom::Cylinder::mHasColors
protected
int cinder::geom::Cylinder::mNumSegments
protected
int cinder::geom::Cylinder::mNumSlices
protected

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