9 #include <utl/CoordinateSystem.h>
10 #include <utl/TransformationMatrix.h>
19 fTransformation(theReferenceCS->GetTransformationForNewCS(theTransformation)),
20 fReferenceSystem(theReferenceCS->GetReferenceForNewCS())
37 return shared_from_this();
85 return theTransformation;
111 std::vector<CoordinateSystemPtr> myBases;
113 myBases.push_back(cs);
115 for (
auto cs = other->GetReferenceSystem(); cs != root; cs = cs->GetReferenceSystem()) {
116 const auto end = myBases.cend();
117 if (std::find(myBases.cbegin(), end, cs) != end)
132 result *= cs->GetTransformation();
150 target->CollectTransformationFrom(commonBase) *
Policy for base coordinate systems.
virtual CoordinateSystemPtr GetReferenceForNewCS() const
Get reference system for the creation of new coordinate systems.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
static type FromTransformation(const TransformationMatrix &theTrafo, const CoordinateSystemPtr &theCS)
Generic factory for post-processing.
virtual TransformationMatrix GetTransformationForNewCS(const TransformationMatrix &theTransformation) const
Calculate the correct transformation for the new CS.
virtual CoordinateSystemPtr GetReferenceForNewCS() const
Get reference system for the creation of new coordinate systems.
void CoordinateSystemValid(const CoordinateSystemPtr &theCoordinateSystem)
virtual TransformationMatrix GetTransformationForNewCS(const TransformationMatrix &theTransformation) const
Calculate the correct transformation for the new CS.
static type FromTransformation(const TransformationMatrix &theTrafo, const CoordinateSystemPtr &theCS)
Generic factory for post-processing.