#include <ObjectTransformer.hpp>
Public Member Functions | |
| ReferenceCounting< Object > | operator() (const Object &objectToCopy) const |
| ObjectTransformer (const Shape::TransformationsList &t) | |
| ~ObjectTransformer () | |
Private Member Functions | |
| ObjectTransformer (const ObjectTransformer &s) | |
Private Attributes | |
| Shape::TransformationsList | __addedTransformations |
Definition at line 40 of file ObjectTransformer.hpp.
| ObjectTransformer::ObjectTransformer | ( | const ObjectTransformer & | s | ) | [private] |
| ObjectTransformer::ObjectTransformer | ( | const Shape::TransformationsList & | t | ) | [inline] |
Definition at line 50 of file ObjectTransformer.hpp.
00051 : __addedTransformations(t) 00052 { 00053 ; 00054 }
| ObjectTransformer::~ObjectTransformer | ( | ) | [inline] |
| ReferenceCounting< Object > ObjectTransformer::operator() | ( | const Object & | objectToCopy | ) | const |
Definition at line 39 of file ObjectTransformer.cpp.
References __addedTransformations, ASSERT, Object::hasReference(), Object::reference(), Object::setReference(), Object::shape(), and Shape::transformationsList().
00040 { 00041 const Shape& s = *o.shape(); 00042 ReferenceCounting<Shape> newShape = o.shape()->getCopy(); 00043 00044 Shape::TransformationsList transformations(__addedTransformations.size() 00045 + s.transformationsList().size()); 00046 00047 for (size_t i=0; i<s.transformationsList().size(); ++i) { 00048 transformations[i+__addedTransformations.size()] 00049 = s.transformationsList()[i]; 00050 } 00051 for (size_t i=0; i<__addedTransformations.size(); ++i) { 00052 transformations[i] = __addedTransformations[i]; 00053 } 00054 ASSERT(newShape != 0); 00055 00056 newShape->setTransformationsList(transformations); 00057 Object* newObject = new Object(newShape); 00058 00059 // Copies references if needed 00060 if (o.hasReference()) { 00061 newObject->setReference(o.reference()); 00062 } 00063 00064 return newObject; 00065 }

1.5.6