00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <Scale.hpp>
00021 #include <sstream>
00022
00023 TinyVector<3,real_t> Scale::
00024 operator()(const TinyVector<3,real_t>& v) const
00025 {
00026 TinyVector<3,real_t> temp = v;
00027
00028 temp[0] *= __scale[0];
00029 temp[1] *= __scale[1];
00030 temp[2] *= __scale[2];
00031
00032 return temp;
00033 }
00034
00035 TinyVector<3> Scale::
00036 inverse(const TinyVector<3,real_t>& v) const
00037 {
00038 TinyVector<3,real_t> temp = v;
00039
00040 temp[0] /= __scale[0];
00041 temp[1] /= __scale[1];
00042 temp[2] /= __scale[2];
00043
00044 return temp;
00045 }
00046
00047 std::string Scale::
00048 povWrite() const
00049 {
00050 std::stringstream povs;
00051 povs << "scale <"
00052 << __scale[0]
00053 << ", "
00054 << __scale[1]
00055 << ", "
00056 << __scale[2]
00057 << ">";
00058 povs << std::ends;
00059
00060 return povs.str();
00061 }
00062
00063 Scale::
00064 Scale(const TinyVector<3,real_t>& v)
00065 : Transform(scale),
00066 __scale(v)
00067 {
00068 ;
00069 }
00070
00071 Scale::
00072 Scale(const Scale& scale)
00073 : Transform(scale),
00074 __scale(scale.__scale)
00075 {
00076 ;
00077 }
00078
00079 ReferenceCounting<Transform> Scale::
00080 getCopy() const
00081 {
00082 return new Scale(*this);
00083 }