# 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

## 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 | 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

## Typedef Documentation

typedef HeightField osg::Grid