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

#include <GeomIo.h>

Inherits cinder::geom::Source.

Public Member Functions

 ExtrudeSpline (const Shape2d &shape, const ci::BSpline< 3, float > &spline, int splineSubdivisions=10, float approximationScale=1.0f)
 
ExtrudeSplinecaps (bool caps)
 
ExtrudeSplinefrontCap (bool cap)
 
ExtrudeSplinebackCap (bool cap)
 
ExtrudeSplinesubdivisions (int sub)
 
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
 
ExtrudeSplineclone () const override
 

Protected Member Functions

void updatePathSubdivision ()
 
void calculate (std::vector< vec3 > *positions, std::vector< vec3 > *normals, std::vector< vec3 > *texCoords, 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

std::vector< Path2dmPaths
 
std::vector< mat4 > mSplineFrames
 
std::vector< float > mSplineTimes
 
float mApproximationScale
 
bool mFrontCap
 
bool mBackCap
 
int mSubdivisions
 
std::shared_ptr< TriMeshmCap
 
Rectf mCapBounds
 
std::vector< std::vector< vec2 > > mPathSubdivisionPositions
 
std::vector< std::vector< vec2 > > mPathSubdivisionTangents
 

Constructor & Destructor Documentation

cinder::geom::ExtrudeSpline::ExtrudeSpline ( const Shape2d shape,
const ci::BSpline< 3, float > &  spline,
int  splineSubdivisions = 10,
float  approximationScale = 1.0f 
)

Member Function Documentation

ExtrudeSpline& cinder::geom::ExtrudeSpline::caps ( bool  caps)

Enables or disables front and back caps. Enabled by default.

ExtrudeSpline& cinder::geom::ExtrudeSpline::frontCap ( bool  cap)

Enables or disables front cap. Enabled by default.

ExtrudeSpline& cinder::geom::ExtrudeSpline::backCap ( bool  cap)

Enables or disables back cap. Enabled by default.

ExtrudeSpline& cinder::geom::ExtrudeSpline::subdivisions ( int  sub)

Sets the number of subdivisions along the axis of extrusion.

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

Implements cinder::geom::Source.

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

Implements cinder::geom::Source.

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

Implements cinder::geom::Source.

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

Implements cinder::geom::Source.

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

Implements cinder::geom::Source.

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

Implements cinder::geom::Source.

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

Implements cinder::geom::Source.

void cinder::geom::ExtrudeSpline::updatePathSubdivision ( )
protected
void cinder::geom::ExtrudeSpline::calculate ( std::vector< vec3 > *  positions,
std::vector< vec3 > *  normals,
std::vector< vec3 > *  texCoords,
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

std::vector<Path2d> cinder::geom::ExtrudeSpline::mPaths
protected
std::vector<mat4> cinder::geom::ExtrudeSpline::mSplineFrames
protected
std::vector<float> cinder::geom::ExtrudeSpline::mSplineTimes
protected
float cinder::geom::ExtrudeSpline::mApproximationScale
protected
bool cinder::geom::ExtrudeSpline::mFrontCap
protected
bool cinder::geom::ExtrudeSpline::mBackCap
protected
int cinder::geom::ExtrudeSpline::mSubdivisions
protected
std::shared_ptr<TriMesh> cinder::geom::ExtrudeSpline::mCap
protected
Rectf cinder::geom::ExtrudeSpline::mCapBounds
protected
std::vector<std::vector<vec2> > cinder::geom::ExtrudeSpline::mPathSubdivisionPositions
protected
std::vector<std::vector<vec2> > cinder::geom::ExtrudeSpline::mPathSubdivisionTangents
protected

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