- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# Shape File Reference

`#include <osg/Object>`
`#include <osg/Vec3>`
`#include <osg/Quat>`
`#include <osg/Plane>`
`#include <osg/Array>`

Include dependency graph for Shape:

This graph shows which files directly or indirectly include this file:

## Namespaces
namespace | osg
## Classes
class | osg::Shape
| Base class for all shape types. More...
class | osg::ShapeVisitor
class | osg::ConstShapeVisitor
class | osg::Sphere
class | osg::Box
class | osg::Cone
class | osg::Cylinder
class | osg::Capsule
class | osg::InfinitePlane
class | osg::TriangleMesh
class | osg::ConvexHull
class | osg::HeightField
class | osg::CompositeShape
## Defines
#define | OSG_SHAPE 1
#define | META_Shape(library, name)
| META_StateAttribute macro define the standard clone, isSameKindAs, className and getType methods.
## Typedefs
typedef HeightField | osg::Grid

## Define Documentation

#define META_Shape | ( | library,
|  | name |  | ) |

| Value:
    virtual osg::Object* cloneType() const { return new name(); } \
            virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new name (*this,copyop); } \
            virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const name *>(obj)!=NULL; } \
            virtual const char* libraryName() const { return #library; } \
            virtual const char* className() const { return #name; } \
            virtual void accept(osg::ShapeVisitor& sv) { sv.apply(*this); } \
            virtual void accept(osg::ConstShapeVisitor& csv) const { csv.apply(*this); }
META_StateAttribute macro define the standard clone, isSameKindAs, className and getType methods. Use when subclassing from Object to make it more convenient to define the standard pure virtual methods which are required for all Object subclasses.

#define OSG_SHAPE 1