#include #include #include #include "geometry_system/components/absGeometryDistortion.hpp" #include "spacegeom/SpacePoint.h" using namespace dgs; using namespace std; class testDistortion : public absGeometryDistortion { public: testDistortion(){}; SpacePoint * distort(const SpacePoint& point_on_surface) const { double r=point_on_surface.rxy(); double phi=point_on_surface.phi(); double z=point_on_surface.z(); return new CylindricalPoint(r+1.,phi+0.1,z); }; /// remove destortion SpacePoint * undo(const SpacePoint& distorted_point) const { double r=distorted_point.rxy(); double phi=distorted_point.phi(); double z=distorted_point.z(); return new CylindricalPoint(r-1.,phi-0.1,z); }; /// make a copy (user is responsible for deleteing this object) absGeometryDistortion * clone() const { return new testDistortion(); }; /// print out void printme(std::ostream& os) const { os<<"Test distortion r->r+1., phi -> phi+0.1"<distort(original); std::cout<<*Dolly<undo(*distored); std::cout<<"Back to original "<<*backToOriginal<rxy()-original.rxy())phi()-original.phi())rxy()-original.rxy()-1.)