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