Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

Camera.h

Go to the documentation of this file.
00001 /****************************************************************************************/
00002 /*  Camera.h                                                                            */
00003 /*                                                                                      */
00004 /*  Author: John Pollard/Charles Bloom                                                  */
00005 /*  Description: Creation/Transformation/projection code for a camera                   */
00006 /*                                                                                      */
00007 /*  The contents of this file are subject to the Genesis3D Public License               */
00008 /*  Version 1.01 (the "License"); you may not use this file except in                   */
00009 /*  compliance with the License. You may obtain a copy of the License at                */
00010 /*  http://www.genesis3d.com                                                            */
00011 /*                                                                                      */
00012 /*  Software distributed under the License is distributed on an "AS IS"                 */
00013 /*  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See                */
00014 /*  the License for the specific language governing rights and limitations              */
00015 /*  under the License.                                                                  */
00016 /*                                                                                      */
00017 /*  The Original Code is Genesis3D, released March 25, 1999.                            */
00018 /*  Genesis3D Version 1.1 released November 15, 1999                                 */
00019 /*  Copyright (C) 1999 WildTangent, Inc. All Rights Reserved           */
00020 /*                                                                                      */
00021 /****************************************************************************************/
00022 #ifndef GE_CAMERA_H
00023 #define GE_CAMERA_H
00024 
00025 #include "BaseType.h"
00026 #include "Vec3d.h"
00027 #include "XForm3d.h"
00028 #include "GETypes.h"
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00034 //================================================================================
00035 //      Structure defines
00036 //================================================================================
00037 typedef struct geCamera geCamera;
00038 
00039 
00040 //================================================================================
00041 //      Function ProtoTypes
00042 //================================================================================
00043 GENESISAPI geCamera *GENESISCC geCamera_Create(geFloat Fov, const geRect *Rect);
00044 GENESISAPI void GENESISCC geCamera_Destroy(geCamera **pCamera);
00045 GENESISAPI void GENESISCC geCamera_SetZScale(geCamera *Camera, geFloat ZScale);
00046 GENESISAPI geFloat GENESISCC geCamera_GetZScale(const geCamera *Camera);
00047 GENESISAPI void GENESISCC geCamera_SetFarClipPlane(geCamera *Camera, geBoolean Enable, geFloat ZFar);
00048 GENESISAPI void GENESISCC geCamera_GetFarClipPlane(const geCamera *Camera, geBoolean *Enable, geFloat *ZFar);
00049 GENESISAPI void GENESISCC geCamera_GetClippingRect(const geCamera *Camera, geRect *Rect);
00050 void GENESISCC geCamera_GetWidthHeight(const geCamera *Camera,geFloat *Width,geFloat *Height);
00051 geFloat GENESISCC geCamera_GetScale(const geCamera *Camera);
00052 GENESISAPI void GENESISCC geCamera_SetAttributes(geCamera *Camera, geFloat Fov, const geRect *Rect);
00053 void geCamera_FillDriverInfo(geCamera *Camera);
00054 GENESISAPI void GENESISCC geCamera_ScreenPointToWorld ( const geCamera  *Camera,
00055                                                                                                                 int32                    ScreenX,
00056                                                                                                                 int32                    ScreenY,
00057                                                                                                                 geVec3d                 *Vector);
00058 GENESISAPI void GENESISCC geCamera_Project(const geCamera *Camera, 
00059                                                                 const geVec3d *PointInCameraSpace, 
00060                                                                 geVec3d *ProjectedPoint);
00061 GENESISAPI void GENESISCC geCamera_ProjectZ(const geCamera *Camera, 
00062                                                                 const geVec3d *PointInCameraSpace, 
00063                                                                 geVec3d *ProjectedPoint);
00064 void GENESISCC geCamera_ProjectAndClamp(const geCamera *Camera, 
00065                                                                                 const geVec3d *PointInCameraSpace, 
00066                                                                                 geVec3d *ProjectedPoint);
00067 void GENESISCC geCamera_GetViewAngleXSinCos( const geCamera *Camera, geFloat *SinAngle, geFloat *CosAngle );
00068 void GENESISCC geCamera_GetViewAngleYSinCos( const geCamera *Camera, geFloat *SinAngle, geFloat *CosAngle );
00069 GENESISAPI void GENESISCC geCamera_Transform(const geCamera *Camera, 
00070                                                 const geVec3d *WorldSpacePoint, 
00071                                                       geVec3d *CameraSpacePoint);
00072 GENESISAPI void GENESISCC geCamera_TransformArray(const geCamera *Camera, 
00073                                                 const geVec3d *WorldSpacePointPtr, 
00074                                                       geVec3d *CameraSpacePointPtr, int count);
00075 GENESISAPI void GENESISCC geCamera_TransformAndProjectArray(const geCamera *Camera, 
00076                                                 const geVec3d *WorldSpacePointPtr, 
00077                                                       geVec3d *ProjectedSpacePointPtr, int count);
00078 GENESISAPI void GENESISCC geCamera_TransformAndProjectLArray(const geCamera *Camera, 
00079                                                 const GE_LVertex *WorldSpacePointPtr, 
00080                                                       GE_TLVertex *ProjectedSpacePointPtr, int count);
00081 GENESISAPI void GENESISCC geCamera_TransformAndProject(const geCamera *Camera,
00082                                                                 const geVec3d *Point, 
00083                                                                 geVec3d *ProjectedPoint);
00084 GENESISAPI void GENESISCC geCamera_TransformAndProjectL(const geCamera *Camera,
00085                                                                 const GE_LVertex *Point, 
00086                                                                 GE_TLVertex *ProjectedPoint);
00087 
00088 GENESISAPI geBoolean GENESISCC geCamera_SetWorldSpaceXForm(geCamera *Camera, const geXForm3d *XForm);
00089 GENESISAPI geBoolean GENESISCC geCamera_SetWorldSpaceVisXForm(geCamera *Camera, const geXForm3d *XForm);
00090 GENESISAPI const geXForm3d * GENESISCC geCamera_GetWorldSpaceXForm( const geCamera *Camera);
00091 GENESISAPI const geXForm3d * GENESISCC geCamera_GetCameraSpaceXForm( const geCamera *Camera);
00092 GENESISAPI const geXForm3d * GENESISCC geCamera_GetCameraSpaceVisXForm( const geCamera *Camera);
00093 GENESISAPI const geXForm3d * GENESISCC geCamera_GetWorldSpaceVisXForm( const geCamera *Camera);
00094 GENESISAPI const geVec3d *GENESISCC geCamera_GetPov(const geCamera *Camera);
00095 const geVec3d *GENESISCC geCamera_GetVisPov(const geCamera *Camera);
00096 GENESISAPI geBoolean GENESISCC geCamera_ConvertWorldSpaceToCameraSpace(const geXForm3d *WXForm, geXForm3d *CXForm);
00097 
00098 #ifdef __cplusplus
00099 }
00100 #endif
00101 
00102 #endif

Generated on Tue Sep 30 12:35:24 2003 for GTestAndEngine by doxygen 1.3.2