VR-Forces 4.0.4 Class Documentation
include/bhaveUtil/coordinateConverter.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00006 #pragma once
00007 #include "geometry/point.h"
00008 #include "matrix/coordTransform.h"
00009 #include <bhaveUtil/bhaveUtilDefines.h>
00010 #include "vlutil/vlString.h"
00011 #include "kypathdata/math/vec3f.h"
00012 
00013 namespace BHAVE
00014 {
00016    class DT_DLL_bhaveUtil DtCoordinateConverter;
00017 
00018    typedef DT_DLL_bhaveUtil DtCoordinateConverter* (*DtCoordConvCreatorFunc)();
00019 
00020    class DT_DLL_bhaveUtil DtCoordinateConverter
00021    {
00022    protected:
00023       DtCoordinateConverter();
00024       DtCoordinateConverter(const DtCoordinateConverter& orig);
00025       void operator=(const DtCoordinateConverter& orig);
00026 
00027    public:
00028       virtual ~DtCoordinateConverter();
00029 
00034       static DtCoordinateConverter* instance();
00035 
00043       static bool isGeocentric(bool ignoreRefPoint = false);
00044            
00048       virtual const DtPoint& geocentricRefPoint() const;
00049 
00055       virtual void setGeocentricRefPoint(const DtPoint& point);
00056 
00058       virtual bool loadGeocentricRefPointFromFile(const DtString& filePath);
00059 
00061       virtual void saveGeocentricRefPointToFile(const DtString& filePath) const;  
00062 
00064       virtual bool convertGeoToBhave(const Kaim::Vec3f& point, Kaim::Vec3f& result) const;
00065       virtual bool convertGeoToBhave(const DtVector& point, Kaim::Vec3f& result) const;
00066       virtual bool convertGeoToBhave(const DtPoint& point, Kaim::Vec3f& result) const;
00067       virtual bool convertGeoToBhave(const DtPoint& point, DtPoint& result) const;
00068       virtual bool convertGeoToBhave(const DtVector& point, DtVector& result) const;
00069 
00071       virtual bool convertBhaveToGeo(const Kaim::Vec3f& point, Kaim::Vec3f& result) const;
00072       virtual bool convertBhaveToGeo(const DtVector& point, DtVector& result) const;
00073       virtual bool convertBhaveToGeo(const Kaim::Vec3f& point, DtPoint& result) const;
00074       virtual bool convertBhaveToGeo(const Kaim::Vec3f& point, DtVector& result) const;
00075       virtual bool convertBhaveToGeo(const DtPoint& point, DtPoint& result) const;
00076 
00078       virtual bool convertOrientationToBhave(const DtVector& orientation, DtVector& result) const;
00079 
00081       virtual bool convertBhaveOrientationToGeo(const DtVector& orientation, DtVector& result) const;
00082 
00083    protected:
00084       static DtCoordinateConverter* creator();
00085       static void setCreator(DtCoordConvCreatorFunc creatorFunc);
00086 
00089       virtual void generateTransformMatrices();
00090    
00091       static DtCoordinateConverter* theInstance;
00092       static DtCoordConvCreatorFunc theCreator;
00093       DtPoint myGeoRefPoint;
00094       DtCoordTransform* myMatrix;
00095       DtDcm myGeoCorrectionMatrix;
00096       DtDcm myInvGeoCorrectionMatrix;
00097       DtCoordTransform myInvMatrix;
00098    };
00099 }
00100 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)