00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _XSICAMERA_H 00013 #define _XSICAMERA_H 00014 00015 #include "Primitive.h" 00016 00017 class CSLXSICameraFocalLength; 00018 00022 class XSIEXPORT CSLXSICamera 00023 : public CSLPrimitive 00024 { 00025 public: 00026 00033 CSLXSICamera(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00034 00037 virtual ~CSLXSICamera(); 00038 00042 SI_Int GetStandard(); 00043 00048 SI_Void SetStandard(SI_Int in_lValue); 00049 00053 SI_Float GetPictureRatio(); 00054 00059 SI_Void SetPictureRatio(SI_Float in_lValue); 00060 00064 SI_Float GetFieldOfView(); 00065 00070 SI_Void SetFieldOfView(SI_Float in_lValue); 00071 00075 SI_Int GetFieldOfViewType(); 00076 00081 SI_Void SetFieldOfViewType(SI_Int in_lValue); 00082 00086 SI_Int GetProjectionType(); 00087 00092 SI_Void SetProjectionType(SI_Int in_lValue); 00093 00097 SI_Float GetOrthoHeight(); 00098 00103 SI_Void SetOrthoHeight(SI_Float in_lValue); 00104 00108 SI_Float GetInterestDistance(); 00109 00114 SI_Void SetInterestDistance(SI_Float in_lValue); 00115 00119 SI_Float GetNearPlane(); 00120 00125 SI_Void SetNearPlane(SI_Float in_lValue); 00126 00130 SI_Float GetFarPlane(); 00131 00136 SI_Void SetFarPlane(SI_Float in_lValue); 00137 00141 SI_Bool GetProjectionPlaneEnable(); 00142 00147 SI_Void SetProjectionPlaneEnable(SI_Bool in_lValue); 00148 00152 SI_Float GetProjPlaneWidth(); 00153 00158 SI_Void SetProjPlaneWidth(SI_Float in_lValue); 00159 00163 SI_Float GetProjPlaneHeight(); 00164 00169 SI_Void SetProjPlaneHeight(SI_Float in_lValue); 00170 00174 SI_Float GetProjPlaneOffsetX(); 00175 00180 SI_Void SetProjPlaneOffsetX(SI_Float in_lValue); 00181 00185 SI_Float GetProjPlaneOffsetY(); 00186 00191 SI_Void SetProjPlaneOffsetY(SI_Float in_lValue); 00192 00196 virtual ETemplateType Type() { return XSI_CAMERA; } 00197 00202 virtual SI_Error Synchronize(); 00203 00208 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00209 00214 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szName); 00215 00220 virtual const SI_Char* GetParameterName(CSLAnimatableType* in_pParameter); 00221 00222 CSLIntProxy* GetStandardProxy() { return &m_Standard;}; 00223 CSLFloatProxy* GetPictureRatioProxy() { return &m_PictureAspect;}; 00224 CSLFloatProxy* GetFieldOfViewProxy() { return &m_Fov;}; 00225 CSLIntProxy* GetFieldOfViewTypeProxy() { return &m_FovType;}; 00226 CSLIntProxy* GetProjectionTypeProxy() { return &m_ProjType;}; 00227 CSLFloatProxy* GetOrthoHeightProxy() { return &m_OrthoHeight;}; 00228 CSLFloatProxy* GetInterestDistanceProxy() { return &m_InterestDistance;}; 00229 CSLFloatProxy* GetNearPlaneProxy() { return &m_NearPlane;}; 00230 CSLFloatProxy* GetFarPlaneProxy() { return &m_FarPlane;}; 00231 CSLBoolProxy* GetProjectionPlaneEnableProxy() { return &m_useProjPlane;}; 00232 CSLFloatProxy* GetProjPlaneWidthProxy() { return &m_ProjPlaneWidth;}; 00233 CSLFloatProxy* GetProjPlaneHeightProxy() { return &m_ProjPlaneHeight;}; 00234 CSLFloatProxy* GetProjPlaneOffsetXProxy() { return &m_ProjPlaneOffsetX;}; 00235 CSLFloatProxy* GetProjPlaneOffsetYProxy() { return &m_ProjPlaneOffsetY;}; 00236 00237 CSLXSICameraFocalLength* CreateXSICameraFocalLength(); 00238 CSLXSICameraFocalLength* GetXSICameraFocalLength(); 00239 CSLXSICameraFocalLength* ConnectXSICameraFocalLength(CSLXSICameraFocalLength* in_pToConnect); 00240 00241 private: 00242 00243 CSLIntProxy m_Standard; 00244 CSLFloatProxy m_PictureAspect; 00245 CSLFloatProxy m_Fov; 00246 CSLIntProxy m_FovType; 00247 CSLIntProxy m_ProjType; 00248 CSLFloatProxy m_OrthoHeight; 00249 CSLFloatProxy m_InterestDistance; 00250 CSLFloatProxy m_NearPlane; 00251 CSLFloatProxy m_FarPlane; 00252 CSLBoolProxy m_useProjPlane; 00253 CSLFloatProxy m_ProjPlaneWidth; 00254 CSLFloatProxy m_ProjPlaneHeight; 00255 CSLFloatProxy m_ProjPlaneOffsetX; 00256 CSLFloatProxy m_ProjPlaneOffsetY; 00257 CSLXSICameraFocalLength* m_pXSICameraFocalLength; 00258 00259 void *m_pReserved; // reserved for future extension 00260 }; 00261 00262 #endif