A couple of fixes to DeepCopy Cloner.
This commit is contained in:
@@ -38,15 +38,15 @@ struct DeepCopy : public Cloner
|
||||
|
||||
// note can't clone a refernced object since it doens't have clone
|
||||
// method so we have to assume shallow copy and pass back the pointer.
|
||||
virtual Referenced* operator() (const Referenced* ref) const { return ref; }
|
||||
virtual Referenced* operator() (const Referenced* ref) const { return const_cast<Referenced*>(ref); }
|
||||
|
||||
virtual Object* operator() (const Object* obj) const { if (obj && _flags&DEEP_COPY_OBJECTS) return obj->clone(*this); else return NULL; }
|
||||
virtual Node* operator() (const Node* node) const { if (obj && _flags&DEEP_COPY_NODES) return node->clone(*this); }
|
||||
virtual Drawable* operator() (const Drawable* drawable) const { if (drawable && _flags&DEEP_COPY_DRAWABLES) return drawable->clone(*this); }
|
||||
virtual StateSet* operator() (const StateSet* stateset) const { if (stateset && _flags&DEEP_COPY_STATESETS) return stateset->clone(*this); }
|
||||
virtual StateAttribute* operator() (const StateAttribute* attr) const { if (attr && _flags&DEEP_COPY_STATEATTRIBUTES) return attr->clone(*this); }
|
||||
virtual Texture* operator() (const Texture* text) const { if (text && _flags&DEEP_COPY_TEXTURES) return text->clone(*this); }
|
||||
virtual Image* operator() (const Image* image) const { if (image && _flags&DEEP_COPY_IMAGES) return image->clone(*this); }
|
||||
virtual Object* operator() (const Object* obj) const { if (obj && _flags&DEEP_COPY_OBJECTS) return obj->clone(*this); else return const_cast<Object*>(obj); }
|
||||
virtual Node* operator() (const Node* node) const { if (node && _flags&DEEP_COPY_NODES) return dynamic_cast<Node*>(node->clone(*this)); else return const_cast<Node*>(node); }
|
||||
virtual Drawable* operator() (const Drawable* drawable) const { if (drawable && _flags&DEEP_COPY_DRAWABLES) return dynamic_cast<Drawable*>(drawable->clone(*this)); else return const_cast<Drawable*>(drawable); }
|
||||
virtual StateSet* operator() (const StateSet* stateset) const { if (stateset && _flags&DEEP_COPY_STATESETS) return dynamic_cast<StateSet*>(stateset->clone(*this)); else return const_cast<StateSet*>(stateset); }
|
||||
virtual StateAttribute* operator() (const StateAttribute* attr) const { if (attr && _flags&DEEP_COPY_STATEATTRIBUTES) return dynamic_cast<StateAttribute*>(attr->clone(*this)); else return const_cast<StateAttribute*>(attr); }
|
||||
virtual Texture* operator() (const Texture* text) const { if (text && _flags&DEEP_COPY_TEXTURES) return dynamic_cast<Texture*>(text->clone(*this)); else return const_cast<Texture*>(text); }
|
||||
virtual Image* operator() (const Image* image) const { if (image && _flags&DEEP_COPY_IMAGES) return dynamic_cast<Image*>(image->clone(*this)); else return const_cast<Image*>(image); }
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user