XSICamera.h

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