/*----------------------------------------------------------------------------*/ /* Camera.h */ /*----------------------------------------------------------------------------*/ // Copyright (c) 2007 Scenomics. All Rights Reserved. You may not alter or remove this copyright notice. #if !defined(CAMERA_H) #define CAMERA_H #include "Node.h" #include "Matrix.h" #include "ProjEnum.h" #include "CameraModule.h" SCENOMEPLATFORMAPI_BEGINS; /*----------------------------------------------------------------------------*/ /* Camera Declaration */ /*----------------------------------------------------------------------------*/ //@ The Camera node encapsulates a stored camera position and orientation, also //@ called an eyepoint or viewport. The node does not store other view settings //@ such as magnification or projection type. class SPA_CAMERA_CLASS Camera: public Node { protected: //@c Camera Data //@ This member stores the transformation of the camera into world //@ coordinates. Matrix toWorld; Projection c_eProjection; public: //@c Constructors, Destructors, and Type Methods Camera(); Camera(const Camera &camera); TYPEOF(Camera) //@c Operators int operator =(const Camera &camera); virtual int Swap(Camera & p_roCamera, int p_nSwapFlags); //@c Hierarchy Methods virtual Node *Clone(); //@c Extent Methods virtual int GetExtent(Vec *pMinMax); //@c Persistence, Storage, and Transmission Methods virtual int Read(TypeIO &IO); virtual int Write(TypeIO &IO); //@c Projection Methods Projection GetProjection() const; void SetProjection( Projection p_eProjection ); //@c Transformation Methods void SetTransformation(const Matrix &transform); const Matrix &GetTransformation() const; //@c Rendering Methods virtual void Render(Render3D *pRender); public: }; SCENOMEPLATFORMAPI_ENDS; // !CAMERA_H #endif