XSICamera.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _XSICAMERA_H
00015 #define _XSICAMERA_H
00016 
00017 #include "Primitive.h"
00018 
00019 class CSLXSICameraFocalLength;
00020 
00026 class XSIEXPORT CSLXSICamera
00027     : public CSLPrimitive
00028 {
00029 public:
00030 
00037     CSLXSICamera(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00038 
00041     virtual ~CSLXSICamera();
00042 
00046     SI_Int GetStandard();
00047 
00051     SI_Void SetStandard(SI_Int in_lValue);
00052 
00056     SI_Float GetPictureRatio();
00057 
00061     SI_Void SetPictureRatio(SI_Float in_lValue);
00062 
00066     SI_Float GetFieldOfView();
00067 
00071     SI_Void SetFieldOfView(SI_Float in_lValue);
00072 
00076     SI_Int GetFieldOfViewType();
00077 
00081     SI_Void SetFieldOfViewType(SI_Int in_lValue);
00082 
00086     SI_Int GetProjectionType();
00087 
00091     SI_Void SetProjectionType(SI_Int in_lValue);
00092 
00096     SI_Float GetOrthoHeight();
00097 
00101     SI_Void SetOrthoHeight(SI_Float in_lValue);
00102 
00106     SI_Float GetInterestDistance();
00107 
00111     SI_Void SetInterestDistance(SI_Float in_lValue);
00112 
00116     SI_Float GetNearPlane();
00117 
00121     SI_Void SetNearPlane(SI_Float in_lValue);
00122 
00126     SI_Float GetFarPlane();
00127 
00131     SI_Void SetFarPlane(SI_Float in_lValue);
00132 
00136     SI_Bool GetProjectionPlaneEnable();
00137 
00141     SI_Void SetProjectionPlaneEnable(SI_Bool in_lValue);
00142 
00146     SI_Float GetProjPlaneWidth();
00147 
00151     SI_Void SetProjPlaneWidth(SI_Float in_lValue);
00152 
00156     SI_Float GetProjPlaneHeight();
00157 
00161     SI_Void SetProjPlaneHeight(SI_Float in_lValue);
00162 
00166     SI_Float GetProjPlaneOffsetX();
00167 
00171     SI_Void SetProjPlaneOffsetX(SI_Float in_lValue);
00172 
00176     SI_Float GetProjPlaneOffsetY();
00177 
00181     SI_Void SetProjPlaneOffsetY(SI_Float in_lValue);
00182 
00186     virtual ETemplateType           Type() { return XSI_CAMERA; }
00187 
00191     virtual SI_Error Synchronize();
00192 
00197     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00198 
00204     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szName);
00205 
00210     virtual const SI_Char* GetParameterName(CSLAnimatableType* in_pParameter);
00211 
00212     CSLIntProxy*    GetStandardProxy() { return &m_Standard;};
00213     CSLFloatProxy*  GetPictureRatioProxy() { return &m_PictureAspect;};
00214     CSLFloatProxy*  GetFieldOfViewProxy() { return &m_Fov;};
00215     CSLIntProxy*    GetFieldOfViewTypeProxy() { return &m_FovType;};
00216     CSLIntProxy*    GetProjectionTypeProxy() { return &m_ProjType;};
00217     CSLFloatProxy*  GetOrthoHeightProxy() { return &m_OrthoHeight;};
00218     CSLFloatProxy*  GetInterestDistanceProxy() { return &m_InterestDistance;};
00219     CSLFloatProxy*  GetNearPlaneProxy() { return &m_NearPlane;};
00220     CSLFloatProxy*  GetFarPlaneProxy() { return &m_FarPlane;};
00221     CSLBoolProxy*   GetProjectionPlaneEnableProxy() { return &m_useProjPlane;};
00222     CSLFloatProxy*  GetProjPlaneWidthProxy() { return &m_ProjPlaneWidth;};
00223     CSLFloatProxy*  GetProjPlaneHeightProxy() { return &m_ProjPlaneHeight;};
00224     CSLFloatProxy*  GetProjPlaneOffsetXProxy() { return &m_ProjPlaneOffsetX;};
00225     CSLFloatProxy*  GetProjPlaneOffsetYProxy() { return &m_ProjPlaneOffsetY;};
00226 
00227     CSLXSICameraFocalLength*    CreateXSICameraFocalLength();
00228     CSLXSICameraFocalLength*    GetXSICameraFocalLength();
00229     CSLXSICameraFocalLength*    ConnectXSICameraFocalLength(CSLXSICameraFocalLength* in_pToConnect);
00230 
00231 private:
00232 
00233     CSLIntProxy     m_Standard;
00234     CSLFloatProxy   m_PictureAspect;
00235     CSLFloatProxy   m_Fov;
00236     CSLIntProxy     m_FovType;
00237     CSLIntProxy     m_ProjType;
00238     CSLFloatProxy   m_OrthoHeight;
00239     CSLFloatProxy   m_InterestDistance;
00240     CSLFloatProxy   m_NearPlane;
00241     CSLFloatProxy   m_FarPlane;
00242     CSLBoolProxy    m_useProjPlane;
00243     CSLFloatProxy   m_ProjPlaneWidth;
00244     CSLFloatProxy   m_ProjPlaneHeight;
00245     CSLFloatProxy   m_ProjPlaneOffsetX;
00246     CSLFloatProxy   m_ProjPlaneOffsetY;
00247     CSLXSICameraFocalLength*    m_pXSICameraFocalLength;
00248 
00249     void *m_pReserved;  // reserved for future extension
00250 };
00251 
00252 #endif