Value:virtual Object*
cloneType()
const {
return new name(); } \
virtual Object*
clone(
const CopyOp& copyop)
const {
return new name (*
this,copyop); } \
virtual
bool isSameKindAs(
const 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(ShapeVisitor& sv) { sv.apply(*this); } \
virtual void accept(ConstShapeVisitor& csv) const { csv.apply(*this); }
#define NULL
Definition: Export:55
T * clone(const T *t, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
Definition: Object:323
T * cloneType(const T *t)
Definition: Object:365
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.
Referenced by osg::Box::Box(), osg::Capsule::Capsule(), osg::CompositeShape::CompositeShape(), osg::Cone::Cone(), osg::ConvexHull::ConvexHull(), osg::Cylinder::Cylinder(), osg::InfinitePlane::InfinitePlane(), osg::Sphere::Sphere(), and osg::TriangleMesh::TriangleMesh().