class SG_EXPORT osg::Object: public Referenced

Base class/standard interface for objects which require IO support, cloning and reference counting.

Inheritance:


Public Methods

[more] Object()
Construct an object.
[more]virtual Object* clone() const
return a shallow copy of a node, with Object* return type.
[more]virtual bool isSameKindAs(Object*)
[more]virtual const char* className() const
return the name of the object's class type.
[more]virtual Object* readClone(Input& fr)
Template Method/Prototype Pattern : create a clone and read Object data from Input.
[more]virtual bool write(Output& fw)
Template Method Pattern : write out Object data to Output.

Protected Methods

[more]virtual ~Object()
Object destructor.
[more]virtual bool readLocalData(Input&)
Template Method Pattern : read local data from osg file.
[more]virtual bool writeLocalData(Output&)
Template Method Pattern : write local data to osg file.


Inherited from Referenced:

Public Methods

oReferenced& operator = (Referenced&)
ovoid ref()
ovoid unref()
oint referenceCount()

Protected Fields

oint _refCount


Documentation

Base class/standard interface for objects which require IO support, cloning and reference counting. Based on GOF Composite, Prototype and Template Method patterns.
o Object()
Construct an object. Note Object is a pure virtual base class and therefore cannot be constructed on its own, only derived classes which overide the clone and className methods are concrete classes and can be constructed.

ovirtual Object* clone() const
return a shallow copy of a node, with Object* return type. Must be defined by derived classes.

ovirtual bool isSameKindAs(Object*)

ovirtual const char* className() const
return the name of the object's class type. Must be defined by derived classes.

ovirtual Object* readClone(Input& fr)
Template Method/Prototype Pattern : create a clone and read Object data from Input. Reads Input and if it matches this objects className() then create a clone and match '{' brackets and repeating calling Object::readLocalData() until the matching ']' is read.

ovirtual bool write(Output& fw)
Template Method Pattern : write out Object data to Output. Sequence of output is className() followed by Open '{' and then call Object::writeLocalData() and complete with '}'.

ovirtual ~Object()
Object destructor. Note, is protected so that Objects cannot be deleted other than by being derefernced and the reference count being zero (see osg::Referenced), preventing the deletion of nodes which are still in use. This also means that Node's cannot be created on stack i.e Node node will not compile, forcing all nodes to be created on the heap i.e Node* node = new Node().

ovirtual bool readLocalData(Input&)
Template Method Pattern : read local data from osg file. Note should be implemented in derivied classes, which call their parent class's readLocalData. Returns true if the input iterator has been advanced, otherwise false.

ovirtual bool writeLocalData(Output&)
Template Method Pattern : write local data to osg file. Note should be implemented in derivied classes, which call their parent class's writeLocalData. Returns true if data has been written out, otherwise false.


Direct child classes:
Transparency
Texture
TexGen
TexEnv
PolygonOffset
Point
Node
Matrix
Material
Light
Image
GeoState
GeoSet
Fog
CullFace
AlphaFunc

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.