# 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