|
| ofConePrimitive () |
|
| ofConePrimitive (float radius, float height, int radiusSegments, int heightSegments, int capSegments=2, ofPrimitiveMode mode=OF_PRIMITIVE_TRIANGLE_STRIP) |
|
| ~ofConePrimitive () |
|
void | set (float radius, float height, int radiusSegments, int heightSegments, int capSegments=2, ofPrimitiveMode mode=OF_PRIMITIVE_TRIANGLE_STRIP) |
|
void | set (float radius, float height) |
|
void | setResolutionRadius (int radiusRes) |
|
void | setResolutionHeight (int heightRes) |
|
void | setResolutionCap (int capRes) |
|
void | setResolution (int radiusRes, int heightRes, int capRes) |
|
void | setMode (ofPrimitiveMode mode) |
|
void | setRadius (float radius) |
|
void | setHeight (float height) |
|
void | setTopColor (ofColor color) |
|
void | setCapColor (ofColor color) |
|
std::vector< ofIndexType > | getConeIndices () const |
|
ofMesh | getConeMesh () const |
|
std::vector< ofIndexType > | getCapIndices () const |
|
ofMesh | getCapMesh () const |
|
int | getResolutionRadius () const |
|
int | getResolutionHeight () const |
|
int | getResolutionCap () const |
|
glm::vec3 | getResolution () const |
|
float | getRadius () const |
|
float | getHeight () const |
|
| of3dPrimitive () |
|
virtual | ~of3dPrimitive () |
|
| of3dPrimitive (const ofMesh &mesh) |
|
| of3dPrimitive (const of3dPrimitive &mom) |
|
of3dPrimitive & | operator= (const of3dPrimitive &mom) |
|
void | mapTexCoords (float u1, float v1, float u2, float v2) |
|
void | mapTexCoordsFromTexture (const ofTexture &inTexture) |
|
ofMesh * | getMeshPtr () |
|
ofMesh & | getMesh () |
|
const ofMesh * | getMeshPtr () const |
|
const ofMesh & | getMesh () 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.
|
|
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.
|
|
ofNode * | getParent () 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 ¢erPoint=glm::vec3(0, 0, 0))) |
|
| OF_DEPRECATED_MSG ("Use the Deg/Rad version.", void orbit(float longitude, float latitude, float radius, ofNode ¢erNode)) |
|
void | orbitDeg (float longitude, float latitude, float radius, const glm::vec3 ¢erPoint=glm::vec3(0, 0, 0)) |
| Orbit node around a global position at a specific radius.
|
|
void | orbitDeg (float longitude, float latitude, float radius, ofNode ¢erNode) |
| Orbit node around another node at a specific radius.
|
|
void | orbitRad (float longitude, float latitude, float radius, const glm::vec3 ¢erPoint=glm::vec3(0, 0, 0)) |
| Orbit node around a global position at a specific radius.
|
|
void | orbitRad (float longitude, float latitude, float radius, ofNode ¢erNode) |
| 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.
|
|
The ofConePrimitive allows you to create a 3D cone. Like all primitives it allows you to set the size, draw it, set positions, etc, as a simple example:
void setup()
{
cone.set( coneRadius, coneHeight, coneRadiusSegments, coneHeightSegments );
}
{
cone.rotate(spinX, 1.0, 0.0, 0.0);
cone.rotate(spinY, 0, 1.0, 0.0);
vector<ofMeshFace> triangles = cone.getMesh().getUniqueFaces();
cone.draw();
}
void draw() const
Draw the node as a white cube with xyz axes.
Definition of3dPrimitives.cpp:211
int ofGetWidth()
Definition ofAppRunner.cpp:405
int ofGetHeight()
Definition ofAppRunner.cpp:409
To draw a texture over any primitive, simply bind the ofTexture instance and then draw your primitive:
texture.getTextureReference().bind();
cone.draw();
Beware of the cone texture coordinates, they're a little strange.