reference

This documentation is automatically generated from the openFrameworks source code using doxygen and refers to the most recent release, version 0.12.0.

A class representing a 3d primitive. More...

#include <of3dPrimitives.h>

Inheritance diagram for of3dPrimitive:
ofNode ofBoxPrimitive ofConePrimitive ofCylinderPrimitive ofIcoSpherePrimitive ofPlanePrimitive ofSpherePrimitive

Public Member Functions

 of3dPrimitive ()
 
virtual ~of3dPrimitive ()
 
 of3dPrimitive (const ofMesh &mesh)
 
 of3dPrimitive (const of3dPrimitive &mom)
 
of3dPrimitiveoperator= (const of3dPrimitive &mom)
 
void mapTexCoords (float u1, float v1, float u2, float v2)
 
void mapTexCoordsFromTexture (const ofTexture &inTexture)
 
ofMeshgetMeshPtr ()
 
ofMeshgetMesh ()
 
const ofMeshgetMeshPtr () const
 
const ofMeshgetMesh () const
 
glm::vec4 * getTexCoordsPtr ()
 
glm::vec4 & getTexCoords ()
 
const glm::vec4 * getTexCoordsPtr () const
 
const glm::vec4 & getTexCoords () const
 
bool hasScaling () const
 
bool hasNormalsEnabled () const
 
void enableNormals ()
 
void enableTextures ()
 
void enableColors ()
 
void disableNormals ()
 
void disableTextures ()
 
void disableColors ()
 
void drawVertices () const
 
void drawWireframe () const
 
void drawFaces () const
 
void draw (ofPolyRenderMode renderType) const
 
void draw () const
 Draw the node as a white cube with xyz axes.
 
void drawNormals (float length, bool bFaceNormals=false) const
 
void drawAxes (float a_size) const
 
void setUseVbo (bool useVbo)
 
bool isUsingVbo () const
 
virtual void draw () const
 Draw the node as a white cube with xyz axes.
 
- Public Member Functions inherited from ofNode
void setParent (ofNode &parent, bool bMaintainGlobalTransform=false)
 Set parent for the node. The node will inherit transformations from parent.
 
void clearParent (bool bMaintainGlobalTransform=false)
 Remove parent node linking.
 
ofNodegetParent () const
 Get the parent node of this node.
 
glm::vec3 getPosition () const
 Get node's local position as a 3D vector.
 
float getX () const
 Get node's local x position.
 
float getY () const
 Get node's local y position.
 
float getZ () const
 Get node's local z position.
 
glm::vec3 getXAxis () const
 Get the node's local x axis as 3d vector.
 
glm::vec3 getYAxis () const
 Get the node's local y axis as 3d vector.
 
glm::vec3 getZAxis () const
 Get the node's local z axis as 3d vector.
 
glm::vec3 getSideDir () const
 Get direction of node's side aka local x axis, as 3d vector.
 
glm::vec3 getLookAtDir () const
 Get direction the node looks at aka local -z axis, as 3d vector.
 
glm::vec3 getUpDir () const
 Get direction of node's top aka local y axis, as 3d vector.
 
 OF_DEPRECATED_MSG ("Use Deg/Rad versions.", float getPitch() const)
 
 OF_DEPRECATED_MSG ("Use Deg/Rad versions.", float getHeading() const)
 
 OF_DEPRECATED_MSG ("Use Deg/Rad versions.", float getRoll() const)
 
float getPitchDeg () const
 Get pitch of node, aka the rotation along local x axis.
 
float getHeadingDeg () const
 Get heading of node, aka the rotation along local y axis.
 
float getRollDeg () const
 Get roll of node, aka the rotation along local z axis.
 
float getPitchRad () const
 Get pitch of node, aka the rotation along local x axis.
 
float getHeadingRad () const
 Get heading of node, aka the rotation along local y axis.
 
float getRollRad () const
 Get roll of node, aka the rotation along local z axis.
 
glm::quat getOrientationQuat () const
 Get the local orientation of the node as a quaternion.
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", glm::vec3 getOrientationEuler() const)
 
glm::vec3 getOrientationEulerDeg () const
 Get local orientation of node in degrees around x, y, and z axes.
 
glm::vec3 getOrientationEulerRad () const
 Get local orientation of node in degrees around x, y, and z axes.
 
glm::vec3 getScale () const
 Get local scale of node in xyz axes where 1 is default.
 
const glm::mat4 & getLocalTransformMatrix () const
 Get node's local transformations (position, orientation, scale).
 
glm::mat4 getGlobalTransformMatrix () const
 Get node's global transformations (position, orientation, scale).
 
glm::vec3 getGlobalPosition () const
 Get node's global position as a 3D vector.
 
glm::quat getGlobalOrientation () const
 Get the global orientation of the node as a quaternion.
 
glm::vec3 getGlobalScale () const
 Get global scale of node in xyz axes where 1 is default.
 
void setPosition (float px, float py, float pz)
 Set the local position of the node using xyz coordinates.
 
void setPosition (const glm::vec3 &p)
 Set the local position of the node using a 3D vector of coordinates.
 
void setGlobalPosition (float px, float py, float pz)
 Set the global position of the node using xyz coordinates.
 
void setGlobalPosition (const glm::vec3 &p)
 Set the global position of the node using a 3D vector of coordinates.
 
void setOrientation (const glm::quat &q)
 Set local orientation with a quaternion.
 
void setOrientation (const glm::vec3 &eulerAngles)
 Set local orientation with xyz euler angles.
 
void setGlobalOrientation (const glm::quat &q)
 Set global orientation with a quaternion.
 
void setScale (float s)
 Set local uniform scale (x, y, and z are equally scaled).
 
void setScale (float sx, float sy, float sz)
 Set local scale for xyz axes individually.
 
void setScale (const glm::vec3 &s)
 Set local scale for xyz axes individually with a 3D vector.
 
void move (float x, float y, float z)
 Move node by relative amount with xyz coordinates.
 
void move (const glm::vec3 &offset)
 Move node by relative amount with xyz as ref to 3D vector.
 
void truck (float amount)
 Move node left+right relative to current position (in local x axis).
 
void boom (float amount)
 Move node up+down relative to current position (in local y axis).
 
void dolly (float amount)
 Move node backward+forward relative to current position (in local z axis).
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void tilt(float degrees))
 
void tiltDeg (float degrees)
 Tilt up+down relative to current orientation (around local x axis).
 
void tiltRad (float radians)
 Tilt up+down relative to current orientation (around local x axis).
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void pan(float degrees))
 
void panDeg (float degrees)
 Rotate left+right relative to current orientation (around local y axis).
 
void panRad (float radians)
 Rotate left+right relative to current orientation (around local y axis).
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void roll(float degrees))
 
void rollDeg (float degrees)
 Roll left+right relative to current orientation (around local z axis).
 
void rollRad (float radians)
 Roll left+right relative to current orientation (around local z axis).
 
void rotate (const glm::quat &q)
 Rotate relative to current orientation by quaternion.
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void rotate(float degrees, const glm::vec3 &v))
 
void rotateDeg (float degrees, const glm::vec3 &v)
 Rotate relative to current orientation around arbitrary axis.
 
void rotateRad (float radians, const glm::vec3 &v)
 Rotate relative to current orientation around arbitrary axis.
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void rotate(float degrees, float vx, float vy, float vz))
 
void rotateDeg (float degrees, float vx, float vy, float vz)
 Rotate relative to current orientation around arbitrary axis.
 
void rotateRad (float radians, float vx, float vy, float vz)
 Rotate relative to current orientation around arbitrary axis.
 
void rotateAround (const glm::quat &q, const glm::vec3 &point)
 Rotate relative to current orientation by quaternion around point.
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void rotateAround(float degrees, const glm::vec3 &axis, const glm::vec3 &point))
 
void rotateAroundDeg (float degrees, const glm::vec3 &axis, const glm::vec3 &point)
 Rotate relative to current orientation around arbitrary axis around point.
 
void rotateAroundRad (float radians, const glm::vec3 &axis, const glm::vec3 &point)
 Rotate relative to current orientation around arbitrary axis around point.
 
void lookAt (const glm::vec3 &lookAtPosition)
 Orient node to look at point (-z axis pointing to global position).
 
void lookAt (const glm::vec3 &lookAtPosition, glm::vec3 upVector)
 Orient node to look at point (-z axis pointing to global position).
 
void lookAt (const ofNode &lookAtNode)
 Orient node to look at another node (-z axis pointing at other node).
 
void lookAt (const ofNode &lookAtNode, const glm::vec3 &upVector)
 Orient node to look at another node (-z axis pointing at other node).
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void orbit(float longitude, float latitude, float radius, const glm::vec3 &centerPoint=glm::vec3(0, 0, 0)))
 
 OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void orbit(float longitude, float latitude, float radius, ofNode &centerNode))
 
void orbitDeg (float longitude, float latitude, float radius, const glm::vec3 &centerPoint=glm::vec3(0, 0, 0))
 Orbit node around a global position at a specific radius.
 
void orbitDeg (float longitude, float latitude, float radius, ofNode &centerNode)
 Orbit node around another node at a specific radius.
 
void orbitRad (float longitude, float latitude, float radius, const glm::vec3 &centerPoint=glm::vec3(0, 0, 0))
 Orbit node around a global position at a specific radius.
 
void orbitRad (float longitude, float latitude, float radius, ofNode &centerNode)
 Orbit node around another node at a specific radius.
 
void transformGL (ofBaseRenderer *renderer=nullptr) const
 Set opengl renderer's modelview matrix to this nodes transform.
 
void restoreTransformGL (ofBaseRenderer *renderer=nullptr) const
 Restore opengl renderer's previous modelview transform matrix.
 
void resetTransform ()
 Reset this node's transformations, position, rotation and scale.
 
virtual void customDraw (const ofBaseRenderer *renderer) const
 If you extend ofNode and wish to change the way it draws, extend this.
 
virtual void customDraw ()
 If you extend ofNode and wish to change the way it draws, extend this.
 

Protected Member Functions

void normalizeAndApplySavedTexCoords ()
 
std::vector< ofIndexTypegetIndices (int startIndex, int endIndex) const
 
- Protected Member Functions inherited from ofNode
void createMatrix ()
 
void updateAxis ()
 
virtual void onPositionChanged ()
 Classes extending ofNode can override this method to get notified when the position changed.
 
virtual void onOrientationChanged ()
 Classes extending ofNode can override this methods to get notified when the orientation changed.
 
virtual void onScaleChanged ()
 Classes extending ofNode can override this methods to get notified when the scale changed.
 

Protected Attributes

glm::vec4 texCoords
 
bool usingVbo
 
std::shared_ptr< ofMeshmesh
 
ofMesh normalsMesh
 
- Protected Attributes inherited from ofNode
ofNodeparent = nullptr
 

Detailed Description

A class representing a 3d primitive.

Constructor & Destructor Documentation

◆ of3dPrimitive() [1/3]

of3dPrimitive::of3dPrimitive ( )

◆ ~of3dPrimitive()

of3dPrimitive::~of3dPrimitive ( )
virtual

◆ of3dPrimitive() [2/3]

of3dPrimitive::of3dPrimitive ( const ofMesh mesh)

◆ of3dPrimitive() [3/3]

of3dPrimitive::of3dPrimitive ( const of3dPrimitive mom)

Member Function Documentation

◆ disableColors()

void of3dPrimitive::disableColors ( )

◆ disableNormals()

void of3dPrimitive::disableNormals ( )

◆ disableTextures()

void of3dPrimitive::disableTextures ( )

◆ draw() [1/3]

void ofNode::draw ( ) const
virtual

Draw the node as a white cube with xyz axes.

Note
do NOT override this. It transforms the node to its position+orientation+scale and calls the virtual 'customDraw' method above which you CAN override.

Reimplemented from ofNode.

◆ draw() [2/3]

void of3dPrimitive::draw ( ) const
virtual

Draw the node as a white cube with xyz axes.

Note
do NOT override this. It transforms the node to its position+orientation+scale and calls the virtual 'customDraw' method above which you CAN override.

Reimplemented from ofNode.

◆ draw() [3/3]

void of3dPrimitive::draw ( ofPolyRenderMode  renderType) const

◆ drawAxes()

void of3dPrimitive::drawAxes ( float  a_size) const

◆ drawFaces()

void of3dPrimitive::drawFaces ( ) const

◆ drawNormals()

void of3dPrimitive::drawNormals ( float  length,
bool  bFaceNormals = false 
) const

◆ drawVertices()

void of3dPrimitive::drawVertices ( ) const

◆ drawWireframe()

void of3dPrimitive::drawWireframe ( ) const

◆ enableColors()

void of3dPrimitive::enableColors ( )

◆ enableNormals()

void of3dPrimitive::enableNormals ( )

◆ enableTextures()

void of3dPrimitive::enableTextures ( )

◆ getIndices()

vector< ofIndexType > of3dPrimitive::getIndices ( int  startIndex,
int  endIndex 
) const
protected

◆ getMesh() [1/2]

ofMesh & of3dPrimitive::getMesh ( )

◆ getMesh() [2/2]

const ofMesh & of3dPrimitive::getMesh ( ) const

◆ getMeshPtr() [1/2]

ofMesh * of3dPrimitive::getMeshPtr ( )

◆ getMeshPtr() [2/2]

const ofMesh * of3dPrimitive::getMeshPtr ( ) const

◆ getTexCoords() [1/2]

glm::vec4 & of3dPrimitive::getTexCoords ( )

◆ getTexCoords() [2/2]

const glm::vec4 & of3dPrimitive::getTexCoords ( ) const

◆ getTexCoordsPtr() [1/2]

glm::vec4 * of3dPrimitive::getTexCoordsPtr ( )

◆ getTexCoordsPtr() [2/2]

const glm::vec4 * of3dPrimitive::getTexCoordsPtr ( ) const

◆ hasNormalsEnabled()

bool of3dPrimitive::hasNormalsEnabled ( ) const

◆ hasScaling()

bool of3dPrimitive::hasScaling ( ) const

◆ isUsingVbo()

bool of3dPrimitive::isUsingVbo ( ) const

◆ mapTexCoords()

void of3dPrimitive::mapTexCoords ( float  u1,
float  v1,
float  u2,
float  v2 
)

◆ mapTexCoordsFromTexture()

void of3dPrimitive::mapTexCoordsFromTexture ( const ofTexture inTexture)

◆ normalizeAndApplySavedTexCoords()

void of3dPrimitive::normalizeAndApplySavedTexCoords ( )
protected

◆ operator=()

of3dPrimitive & of3dPrimitive::operator= ( const of3dPrimitive mom)

◆ setUseVbo()

void of3dPrimitive::setUseVbo ( bool  useVbo)

Member Data Documentation

◆ mesh

std::shared_ptr<ofMesh> of3dPrimitive::mesh
protected

◆ normalsMesh

ofMesh of3dPrimitive::normalsMesh
mutableprotected

◆ texCoords

glm::vec4 of3dPrimitive::texCoords
protected

◆ usingVbo

bool of3dPrimitive::usingVbo
protected

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