OpenSceneGraph
|
This effect implements a technique called 'Cel-Shading' to produce a cartoon-style (non photorealistic) rendering. More...
Public Member Functions | |
Cartoon (const Cartoon ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Effect (osgFX, Cartoon, "Cartoon", "This effect implements a technique called 'Cel-Shading' to produce a " "cartoon-style (non photorealistic) rendering. Two passes are required: " "the first one draws solid surfaces, the second one draws the outlines. " "A vertex program is used to setup texture coordinates for a sharp lighting " "texture on unit 0 which is generated on-the-fly.\ "This effect requires the ARB_vertex_program extension " "or OpenGL Shading Language.", "Marco Jez;OGLSL port by Mike Weiblen") | |
const osg::Vec4 & | getOutlineColor () const |
get the outline color | |
void | setOutlineColor (const osg::Vec4 &color) |
set the outline color | |
float | getOutlineLineWidth () const |
get the outline line width | |
void | setOutlineLineWidth (float w) |
set the outline line width | |
int | getLightNumber () const |
get the OpenGL light number | |
void | setLightNumber (int n) |
set the OpenGL light number that will be used in lighting computations | |
![]() | |
Effect (const Effect ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
virtual bool | isSameKindAs (const osg::Object *obj) const |
return true if this and obj are of the same kind of object. More... | |
virtual const char * | libraryName () const |
return the name of the node's library. More... | |
virtual const char * | className () const |
return the name of the node's class type. More... | |
virtual const char * | effectName () const =0 |
get the name of this Effect | |
virtual const char * | effectDescription () const =0 |
get a brief description of this Effect | |
virtual const char * | effectAuthor () const =0 |
get the effect author's name | |
bool | getEnabled () const |
get whether the effect is enabled or not | |
void | setEnabled (bool v) |
set whether the effect is enabled or not | |
virtual void | setUpDemo () |
optional: set effect parameters to produce a visually significant result to be used in demo applications like osgfxbrowser. More... | |
int | getNumTechniques () const |
get the number of techniques defined for this Effect | |
Technique * | getTechnique (int i) |
get the i-th Technique | |
const Technique * | getTechnique (int i) const |
get the i-th const Technique | |
int | getSelectedTechnique () const |
get the index of the currently selected Technique | |
void | selectTechnique (int i=AUTO_DETECT) |
select a technique or enable automatic detection | |
virtual void | traverse (osg::NodeVisitor &nv) |
custom traversal | |
void | inherited_traverse (osg::NodeVisitor &nv) |
default traversal | |
![]() | |
Group (const Group &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor using CopyOp to manage deep vs shallow copy. More... | |
META_Node (osg, Group) | |
virtual Group * | asGroup () |
convert 'this' into a Group pointer if Node is a Group, otherwise return 0. More... | |
virtual const Group * | asGroup () const |
convert 'const this' into a const Group pointer if Node is a Group, otherwise return 0. More... | |
virtual bool | addChild (Node *child) |
Add Node to Group. More... | |
template<class T > | |
bool | addChild (const ref_ptr< T > &child) |
virtual bool | insertChild (unsigned int index, Node *child) |
Insert Node to Group at specific location. More... | |
template<class T > | |
bool | insertChild (unsigned int index, const ref_ptr< T > &child) |
virtual bool | removeChild (Node *child) |
Remove Node from Group. More... | |
template<class T > | |
bool | removeChild (const ref_ptr< T > &child) |
bool | removeChild (unsigned int pos, unsigned int numChildrenToRemove=1) |
Remove Node from Group. More... | |
virtual bool | removeChildren (unsigned int pos, unsigned int numChildrenToRemove) |
Remove children from Group. More... | |
virtual bool | replaceChild (Node *origChild, Node *newChild) |
Replace specified child Node with another Node. More... | |
template<class T , class R > | |
bool | replaceChild (const ref_ptr< T > &origChild, const ref_ptr< R > &newChild) |
virtual unsigned int | getNumChildren () const |
Return the number of children nodes. More... | |
virtual bool | setChild (unsigned int i, Node *node) |
Set child node at position i. More... | |
Node * | getChild (unsigned int i) |
Return child node at position i. More... | |
const Node * | getChild (unsigned int i) const |
Return child node at position i. More... | |
bool | containsNode (const Node *node) const |
Return true if node is contained within Group. More... | |
template<class T > | |
bool | containsNode (const ref_ptr< T > &node) const |
unsigned int | getChildIndex (const Node *node) const |
Get the index number of child, return a value between 0 and _children.size()-1 if found, if not found then return _children.size(). | |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. More... | |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
Resize any per context GLObject buffers to specified size. More... | |
virtual void | releaseGLObjects (osg::State *=0) const |
If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. More... | |
virtual BoundingSphere | computeBound () const |
Compute the bounding sphere around Node's geometry or children. More... | |
![]() | |
Node () | |
Construct a node. More... | |
Node (const Node &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor using CopyOp to manage deep vs shallow copy. More... | |
virtual Object * | cloneType () const |
clone an object of the same type as the node. More... | |
virtual Object * | clone (const CopyOp ©op) const |
return a clone of a node, with Object* return type. More... | |
virtual Node * | asNode () |
Convert 'this' into a Node pointer if Object is a Node, otherwise return 0. More... | |
virtual const Node * | asNode () const |
convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0. More... | |
virtual Drawable * | asDrawable () |
convert 'this' into a Drawable pointer if Node is a Drawable, otherwise return 0. More... | |
virtual const Drawable * | asDrawable () const |
convert 'const this' into a const Drawable pointer if Node is a Drawable, otherwise return 0. More... | |
virtual Geometry * | asGeometry () |
convert 'this' into a Geometry pointer if Node is a Geometry, otherwise return 0. More... | |
virtual const Geometry * | asGeometry () const |
convert 'const this' into a const Geometry pointer if Node is a Geometry, otherwise return 0. More... | |
virtual Transform * | asTransform () |
Convert 'this' into a Transform pointer if Node is a Transform, otherwise return 0. More... | |
virtual const Transform * | asTransform () const |
convert 'const this' into a const Transform pointer if Node is a Transform, otherwise return 0. More... | |
virtual Camera * | asCamera () |
Convert 'this' into a Camera pointer if Node is a Camera, otherwise return 0. More... | |
virtual const Camera * | asCamera () const |
convert 'const this' into a const Camera pointer if Node is a Camera, otherwise return 0. More... | |
virtual Switch * | asSwitch () |
Convert 'this' into a Switch pointer if Node is a Switch, otherwise return 0. More... | |
virtual const Switch * | asSwitch () const |
convert 'const this' into a const Switch pointer if Node is a Switch, otherwise return 0. More... | |
virtual Geode * | asGeode () |
Convert 'this' into a Geode pointer if Node is a Geode, otherwise return 0. More... | |
virtual const Geode * | asGeode () const |
convert 'const this' into a const Geode pointer if Node is a Geode, otherwise return 0. More... | |
virtual osgTerrain::Terrain * | asTerrain () |
Convert 'this' into a Transform pointer if Node is a Terrain, otherwise return 0. More... | |
virtual const osgTerrain::Terrain * | asTerrain () const |
convert 'const this' into a const Terrain pointer if Node is a Terrain, otherwise return 0. More... | |
virtual void | accept (NodeVisitor &nv) |
Visitor Pattern : calls the apply method of a NodeVisitor with this node's type. More... | |
virtual void | ascend (NodeVisitor &nv) |
Traverse upwards : calls parents' accept method with NodeVisitor. More... | |
const ParentList & | getParents () const |
Get the parent list of node. More... | |
ParentList | getParents () |
Get the a copy of parent list of node. More... | |
Group * | getParent (unsigned int i) |
const Group * | getParent (unsigned int i) const |
Get a single const parent of node. More... | |
unsigned int | getNumParents () const |
Get the number of parents of node. More... | |
NodePathList | getParentalNodePaths (osg::Node *haltTraversalAtNode=0) const |
Get the list of node paths parent paths. More... | |
MatrixList | getWorldMatrices (const osg::Node *haltTraversalAtNode=0) const |
Get the list of matrices that transform this node from local coordinates to world coordinates. More... | |
void | setUpdateCallback (Callback *nc) |
Set update node callback, called during update traversal. More... | |
template<class T > | |
void | setUpdateCallback (const ref_ptr< T > &nc) |
Callback * | getUpdateCallback () |
Get update node callback, called during update traversal. More... | |
const Callback * | getUpdateCallback () const |
Get const update node callback, called during update traversal. More... | |
void | addUpdateCallback (Callback *nc) |
Convenience method that sets the update callback of the node if it doesn't exist, or nest it into the existing one. More... | |
template<class T > | |
void | addUpdateCallback (const ref_ptr< T > &nc) |
void | removeUpdateCallback (Callback *nc) |
Convenience method that removes a given callback from a node, even if that callback is nested. More... | |
template<class T > | |
void | removeUpdateCallback (const ref_ptr< T > &nc) |
unsigned int | getNumChildrenRequiringUpdateTraversal () const |
Get the number of Children of this node which require Update traversal, since they have an Update Callback attached to them or their children. More... | |
void | setEventCallback (Callback *nc) |
Set event node callback, called during event traversal. More... | |
template<class T > | |
void | setEventCallback (const ref_ptr< T > &nc) |
Callback * | getEventCallback () |
Get event node callback, called during event traversal. More... | |
const Callback * | getEventCallback () const |
Get const event node callback, called during event traversal. More... | |
void | addEventCallback (Callback *nc) |
Convenience method that sets the event callback of the node if it doesn't exist, or nest it into the existing one. More... | |
template<class T > | |
void | addEventCallback (const ref_ptr< T > &nc) |
void | removeEventCallback (Callback *nc) |
Convenience method that removes a given callback from a node, even if that callback is nested. More... | |
template<class T > | |
void | removeEventCallback (const ref_ptr< T > &nc) |
unsigned int | getNumChildrenRequiringEventTraversal () const |
Get the number of Children of this node which require Event traversal, since they have an Event Callback attached to them or their children. More... | |
void | setCullCallback (Callback *nc) |
Set cull node callback, called during cull traversal. More... | |
template<class T > | |
void | setCullCallback (const ref_ptr< T > &nc) |
Callback * | getCullCallback () |
Get cull node callback, called during cull traversal. More... | |
const Callback * | getCullCallback () const |
Get const cull node callback, called during cull traversal. More... | |
void | addCullCallback (Callback *nc) |
Convenience method that sets the cull callback of the node if it doesn't exist, or nest it into the existing one. More... | |
template<class T > | |
void | addCullCallback (const ref_ptr< T > &nc) |
void | removeCullCallback (Callback *nc) |
Convenience method that removes a given callback from a node, even if that callback is nested. More... | |
template<class T > | |
void | removeCullCallback (const ref_ptr< T > &nc) |
void | setCullingActive (bool active) |
Set the view frustum/small feature culling of this node to be active or inactive. More... | |
bool | getCullingActive () const |
Get the view frustum/small feature _cullingActive flag for this node. More... | |
unsigned int | getNumChildrenWithCullingDisabled () const |
Get the number of Children of this node which have culling disabled. More... | |
bool | isCullingActive () const |
Return true if this node can be culled by view frustum, occlusion or small feature culling during the cull traversal. More... | |
unsigned int | getNumChildrenWithOccluderNodes () const |
Get the number of Children of this node which are or have OccluderNode's. More... | |
bool | containsOccluderNodes () const |
return true if this node is an OccluderNode or the subgraph below this node are OccluderNodes. More... | |
void | setNodeMask (NodeMask nm) |
Set the node mask. More... | |
NodeMask | getNodeMask () const |
Get the node Mask. More... | |
void | setStateSet (osg::StateSet *stateset) |
Set the node's StateSet. More... | |
template<class T > | |
void | setStateSet (const osg::ref_ptr< T > &stateset) |
osg::StateSet * | getOrCreateStateSet () |
return the node's StateSet, if one does not already exist create it set the node and return the newly created StateSet. More... | |
osg::StateSet * | getStateSet () |
Return the node's StateSet. More... | |
const osg::StateSet * | getStateSet () const |
Return the node's const StateSet. More... | |
void | setDescriptions (const DescriptionList &descriptions) |
Set the list of string descriptions. More... | |
DescriptionList & | getDescriptions () |
Get the description list of the node. More... | |
const DescriptionList & | getDescriptions () const |
Get the const description list of the const node. More... | |
const std::string & | getDescription (unsigned int i) const |
Get a single const description of the const node. More... | |
std::string & | getDescription (unsigned int i) |
Get a single description of the node. More... | |
unsigned int | getNumDescriptions () const |
Get the number of descriptions of the node. More... | |
void | addDescription (const std::string &desc) |
Add a description string to the node. More... | |
void | setInitialBound (const osg::BoundingSphere &bsphere) |
Set the initial bounding volume to use when computing the overall bounding volume. More... | |
const BoundingSphere & | getInitialBound () const |
Set the initial bounding volume to use when computing the overall bounding volume. More... | |
void | dirtyBound () |
Mark this node's bounding sphere dirty. More... | |
const BoundingSphere & | getBound () const |
void | setComputeBoundingSphereCallback (ComputeBoundingSphereCallback *callback) |
Set the compute bound callback to override the default computeBound. More... | |
template<class T > | |
void | setComputeBoundingSphereCallback (const ref_ptr< T > &callback) |
ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () |
Get the compute bound callback. More... | |
const ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () const |
Get the const compute bound callback. More... | |
![]() | |
Object () | |
Construct an object. More... | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data. More... | |
std::string | getCompoundClassName () const |
return the compound class name that combines the library name and class name. More... | |
virtual NodeVisitor * | asNodeVisitor () |
Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More... | |
virtual const NodeVisitor * | asNodeVisitor () const |
convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More... | |
virtual StateAttribute * | asStateAttribute () |
Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More... | |
virtual const StateAttribute * | asStateAttribute () const |
convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More... | |
virtual Uniform * | asUniform () |
Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0. More... | |
virtual const Uniform * | asUniform () const |
convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0. More... | |
virtual void | setName (const std::string &name) |
Set the name of object using C++ style string. More... | |
void | setName (const char *name) |
Set the name of object using a C style string. More... | |
const std::string & | getName () const |
Get the name of object. More... | |
void | setDataVariance (DataVariance dv) |
Set the data variance of this object. More... | |
DataVariance | getDataVariance () const |
Get the data variance of this object. More... | |
virtual void | computeDataVariance () |
Compute the DataVariance based on an assessment of callback etc. More... | |
void | setUserDataContainer (osg::UserDataContainer *udc) |
set the UserDataContainer object. More... | |
template<class T > | |
void | setUserDataContainer (const ref_ptr< T > &udc) |
osg::UserDataContainer * | getUserDataContainer () |
get the UserDataContainer attached to this object. More... | |
const osg::UserDataContainer * | getUserDataContainer () const |
get the const UserDataContainer attached to this object. More... | |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
Convenience method that returns the UserDataContainer, and if one doesn't already exist creates and assigns a DefaultUserDataContainer to the Object and then return this new UserDataContainer. More... | |
virtual void | setUserData (Referenced *obj) |
Set user data, data must be subclassed from Referenced to allow automatic memory handling. More... | |
template<class T > | |
void | setUserData (const ref_ptr< T > &ud) |
virtual Referenced * | getUserData () |
Get user data. More... | |
virtual const Referenced * | getUserData () const |
Get const user data. More... | |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
Convenience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value. More... | |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
Convenience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject. More... | |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
provide implementation of osg::Object::getUserValue(..) template | |
![]() | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. More... | |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). More... | |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. More... | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. More... | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. More... | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. More... | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. More... | |
Protected Member Functions | |
Cartoon & | operator= (const Cartoon &) |
bool | define_techniques () |
abstract method to be implemented in derived classes; its purpose if to create the techniques that can be used for obtaining the desired effect. More... | |
![]() | |
Effect & | operator= (const Effect &) |
void | dirtyTechniques () |
force rebuilding of techniques on next traversal | |
void | addTechnique (Technique *tech) |
add a technique to the Effect | |
![]() | |
virtual void | childRemoved (unsigned int, unsigned int) |
virtual void | childInserted (unsigned int) |
![]() | |
virtual | ~Node () |
Node destructor. More... | |
void | addParent (osg::Group *parent) |
void | removeParent (osg::Group *parent) |
void | setNumChildrenRequiringUpdateTraversal (unsigned int num) |
void | setNumChildrenRequiringEventTraversal (unsigned int num) |
void | setNumChildrenWithCullingDisabled (unsigned int num) |
void | setNumChildrenWithOccluderNodes (unsigned int num) |
![]() | |
virtual | ~Object () |
Object destructor. More... | |
![]() | |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
![]() | |
enum | TechniqueSelection { AUTO_DETECT = -1 } |
![]() | |
typedef std::vector< Group * > | ParentList |
A vector of osg::Group pointers which is used to store the parent(s) of node. More... | |
typedef unsigned int | NodeMask |
This is a set of bits (flags) that represent the Node. More... | |
typedef std::vector< std::string > | DescriptionList |
A vector of std::string's which are used to describe the object. More... | |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
Get the optional global Referenced mutex, this can be shared between all osg::Referenced. More... | |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
Set whether reference counting should use a mutex for thread safe reference counting. More... | |
static bool | getThreadSafeReferenceCounting () |
Get whether reference counting is active. More... | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. More... | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. More... | |
![]() | |
NodeList | _children |
![]() | |
BoundingSphere | _initialBound |
ref_ptr< ComputeBoundingSphereCallback > | _computeBoundCallback |
BoundingSphere | _boundingSphere |
bool | _boundingSphereComputed |
ParentList | _parents |
ref_ptr< Callback > | _updateCallback |
unsigned int | _numChildrenRequiringUpdateTraversal |
ref_ptr< Callback > | _eventCallback |
unsigned int | _numChildrenRequiringEventTraversal |
ref_ptr< Callback > | _cullCallback |
bool | _cullingActive |
unsigned int | _numChildrenWithCullingDisabled |
unsigned int | _numChildrenWithOccluderNodes |
NodeMask | _nodeMask |
ref_ptr< StateSet > | _stateset |
![]() | |
std::string | _name |
DataVariance | _dataVariance |
osg::UserDataContainer * | _userDataContainer |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
OpenThreads::Mutex * | _refMutex |
int | _refCount |
void * | _observerSet |
This effect implements a technique called 'Cel-Shading' to produce a cartoon-style (non photorealistic) rendering.
Two passes are required: the first one draws solid surfaces, the second one draws the outlines. A vertex program is used to setup texture coordinates for a sharp lighting texture on unit 0 which is generated on-the-fly. This effect requires the ARB_vertex_program extension.
|
protectedvirtual |
abstract method to be implemented in derived classes; its purpose if to create the techniques that can be used for obtaining the desired effect.
You will usually call addTechnique() inside this method.
Implements osgFX::Effect.