VR-Forces 4.0.4 Class Documentation
include/vrvUtil/DtChannelConfiguration.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2007 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005 /****************************************************************************** 
00006 ** $RCSfile: DtChannelConfiguration.h,v $ $Revision: 1.32 $ $State: Exp $ 
00007 ******************************************************************************/ 
00008  
00012  
00013 #pragma once
00014 #include <vrvUtil/vrvUtil.h> 
00015 #include <vrvUtil/DtConfiguration.h>
00016 #include <vrvUtil/DtKeywordMixin.h>
00017 #include <boost/serialization/set.hpp>
00018  
00019 namespace makVrv 
00020 { 
00027    class DT_DLL_VRVUTIL DtChannelConfiguration 
00028       : public DtConfiguration
00029       , public DtKeywordMixin
00030    { 
00031       
00032    public:
00033 
00034       static const char* DefaultChannelString;
00035 
00036       enum ProjectionUnits
00037       {
00038          NoUnits,
00039          FieldOfViewAngles,
00040          DatabaseUnits
00041       };
00042 
00043       enum ProjectionResizePolicy
00044       {
00045          FIXED = 0, 
00046          HORIZONTAL, 
00047          VERTICAL, 
00048          NONE
00049       };
00050 
00053       DtChannelConfiguration(const std::string& name = DefaultChannelString);
00054 
00056       DtChannelConfiguration(const DtChannelConfiguration&);
00057 
00059       DtChannelConfiguration& operator=(const DtChannelConfiguration&);
00060 
00062       virtual ~DtChannelConfiguration();
00063 
00065       virtual void setParentChannel(const std::string& displayName, 
00066          const std::string& windowName, const std::string& channelName);
00067 
00069       virtual void getParentChannel(std::string& displayEngineNameOut, 
00070          std::string& windowNameOut, std::string& channelNameOut) const;
00071     
00073       virtual void setProjection(ProjectionUnits units, double left, double right, double bottom, double top, 
00074          double zNear, double zFar);
00075 
00077       virtual void getProjection(ProjectionUnits& units, double &left, double &right, double &bottom, double &top, 
00078          double &zNear, double &zFar) const;
00079 
00081       bool dynamicNearFar() const;
00082 
00084       void setDynamicNearFar(bool enabled);
00085 
00087       double nearFarRatio() const;
00088 
00090       void setNearFarRatio(double ratio);
00091 
00093       virtual ProjectionUnits projectionUnits() const;
00094 
00096       virtual void setProjectionUnits(ProjectionUnits units);
00097                   
00100       virtual void getClearColor(float& r,float& g,float& b,float& a) const;
00101 
00104       virtual void setClearColor(float r,float g,float b,float a);
00105 
00107       virtual void setCameraPositionOffset(double x, double y, double z);
00108 
00110       virtual void getCameraPositionOffset(double& x, double& y, double& z) const;
00111 
00113       virtual void setCameraOrientationOffset(double psi, double theta, double phi);
00114 
00116       virtual void getCameraOrientationOffset(double& psi, double& theta, double& phi) const;
00117 
00119       virtual void getViewport(double& left,double& right,double& bottom,double& top) const;
00120 
00122       virtual void setViewport(double left,double right,double bottom, double top);
00123 
00125       virtual const std::string& observerName() const;
00126 
00128       virtual void setObserverName(const std::string& observerName);
00129 
00131       virtual ProjectionResizePolicy projectionResizePolicy() const;
00132 
00134       virtual void setProjectionResizePolicy(ProjectionResizePolicy policy);
00135 
00137       virtual double cameraMagnification() const;
00138 
00140       virtual void setCameraMagnification(double mag);
00141    
00147       DT_DECLARE_ALL_serialize_FUNCTIONS
00148    protected:
00149 
00150       template<class Archive>
00151       void _serialize(Archive & ar, const unsigned int version)
00152       {
00154          ar & DT_SERIALIZE_BASE(DtConfiguration);
00155 
00156          ar & DT_SERIALIZE_MEMBER(myClearColorR);
00157          ar & DT_SERIALIZE_MEMBER(myClearColorG);
00158          ar & DT_SERIALIZE_MEMBER(myClearColorB);
00159          ar & DT_SERIALIZE_MEMBER(myClearColorA);
00160          ar & DT_SERIALIZE_MEMBER(myViewportLeft);
00161          ar & DT_SERIALIZE_MEMBER(myViewportRight);
00162          ar & DT_SERIALIZE_MEMBER(myViewportBottom);
00163          ar & DT_SERIALIZE_MEMBER(myViewportTop);
00164          ar & DT_SERIALIZE_MEMBER(myParentDisplayEngineName);
00165          ar & DT_SERIALIZE_MEMBER(myParentWindowName);
00166          ar & DT_SERIALIZE_MEMBER(myParentChannelName);
00167          ar & DT_SERIALIZE_MEMBER(myCameraPositionOffsetX);
00168          ar & DT_SERIALIZE_MEMBER(myCameraPositionOffsetY);
00169          ar & DT_SERIALIZE_MEMBER(myCameraPositionOffsetZ);
00170          ar & DT_SERIALIZE_MEMBER(myCameraOrientationOffsetPsi);         
00171          ar & DT_SERIALIZE_MEMBER(myCameraOrientationOffsetTheta);
00172          ar & DT_SERIALIZE_MEMBER(myCameraOrientationOffsetPhi);
00173          ar & DT_SERIALIZE_MEMBER(myFrustumLeft);
00174          ar & DT_SERIALIZE_MEMBER(myFrustumRight);
00175          ar & DT_SERIALIZE_MEMBER(myFrustumTop);
00176          ar & DT_SERIALIZE_MEMBER(myFrustumBottom);
00177          ar & DT_SERIALIZE_MEMBER(myNearZ);
00178          ar & DT_SERIALIZE_MEMBER(myFarZ);
00179          ar & DT_SERIALIZE_MEMBER(myProjectionUnits);
00180          ar & DT_SERIALIZE_MEMBER(myObserverName);
00181          ar & DT_SERIALIZE_MEMBER(myProjectionResizePolicy);   
00182 
00183          if(version > 1)
00184          {
00185             ar & DT_SERIALIZE_MEMBER(myKeywords);
00186          }
00187          
00188          if (version > 2)
00189          {
00190             ar & DT_SERIALIZE_MEMBER(myDynamicNearFar);
00191             ar & DT_SERIALIZE_MEMBER(myNearFarRatio);
00192          }
00193 
00194          if (version > 3)
00195          {
00196             ar & DT_SERIALIZE_MEMBER(myCameraMagnification);
00197          }
00198       }
00199 
00200       std::string myParentDisplayEngineName;
00201       std::string myParentWindowName;
00202       std::string myParentChannelName;
00203 
00204       //Default Clear color is 0,0,0,0
00205       float myClearColorR;
00206       float myClearColorG;
00207       float myClearColorB;
00208       float myClearColorA;;
00209 
00210       double myViewportLeft;
00211       double myViewportRight;
00212       double myViewportBottom;
00213       double myViewportTop;
00214 
00215       double myCameraPositionOffsetX;
00216       double myCameraPositionOffsetY;
00217       double myCameraPositionOffsetZ;
00218       double myCameraOrientationOffsetPsi;
00219       double myCameraOrientationOffsetTheta;
00220       double myCameraOrientationOffsetPhi;
00221       
00223       double myFrustumLeft;
00224       double myFrustumRight;
00225       double myFrustumTop;
00226       double myFrustumBottom;
00227       double myNearZ;
00228       double myFarZ;
00229 
00230       bool myDynamicNearFar; //Version 3
00231       double myNearFarRatio; //Version 3
00232 
00233       double myCameraMagnification; // Version 4
00234 
00235       ProjectionUnits myProjectionUnits;
00236       std::string myObserverName;
00237       ProjectionResizePolicy myProjectionResizePolicy;
00238 
00239    }; 
00240 } 
00241 
00242 BOOST_CLASS_VERSION(makVrv::DtChannelConfiguration,4)

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)