propclass/cameras/tracking.h
00001 /* 00002 Crystal Space Entity Layer 00003 Copyright (C) 2001 by Jorrit Tyberghein 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public 00016 License along with this library; if not, write to the Free 00017 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef __CEL_PF_TRACKINGCAMERA__ 00021 #define __CEL_PF_TRACKINGCAMERA__ 00022 00023 #include "propclass/delegcam.h" 00024 00025 struct iPcTrackingCamera : public virtual iPcCameraMode 00026 { 00027 SCF_INTERFACE (iPcTrackingCamera, 0, 0, 1); 00028 00029 virtual bool DecideState () = 0; 00030 // position, target, up 00031 virtual const csVector3 &GetPosition () = 0; 00032 virtual const csVector3 &GetTarget () = 0; 00033 virtual const csVector3 &GetUp () = 0; 00034 00039 virtual bool ResetCamera () = 0; 00040 00041 enum TargetState 00042 { 00043 TARGET_BASE = 0, 00044 TARGET_OBJ, 00045 TARGET_NONE 00046 }; 00047 00052 virtual bool SetTargetEntity (const char* name) = 0; 00053 00060 virtual void SetTargetState (TargetState targetstate) = 0; 00061 00065 virtual TargetState GetTargetState () = 0; 00066 00071 virtual void SetTargetYOffset (float targetyoffset) = 0; 00072 00077 virtual void SetOffsetAngle (float angle) = 0; 00078 00083 virtual float GetOffsetAngle () const = 0; 00084 00089 virtual void SetOffsetDistance (float dist) = 0; 00090 00095 virtual float GetOffsetDistance () const = 0; 00096 00100 virtual void SetFollowSpringLength (float slen) = 0; 00101 00105 virtual float GetFollowSpringLength () const = 0; 00106 00111 virtual void SetFollowMinimumSpringFactor (float smin) = 0; 00112 00116 virtual float SetFollowMinimumSpringFactor () const = 0; 00117 00118 enum PanDirection 00119 { 00120 PAN_LEFT = 0, 00121 PAN_NONE, 00122 PAN_RIGHT 00123 }; 00124 00128 virtual void Pan (PanDirection pandir) = 0; 00129 00133 virtual PanDirection GetPanDirection () const = 0; 00134 00138 virtual void SetPanSpeed (float panspeed) = 0; 00139 00143 virtual float GetPanSpeed () const = 0; 00144 00148 virtual void SetPanAcceleration (float paccel) = 0; 00149 00153 virtual float GetPanAcceleration () const = 0; 00154 00155 enum TiltDirection 00156 { 00157 TILT_UP = 0, 00158 TILT_NONE, 00159 TILT_DOWN 00160 }; 00161 00165 virtual void Tilt (TiltDirection tiltdir) = 0; 00166 00170 virtual TiltDirection GetTiltDirection () const = 0; 00171 00175 virtual void SetTiltSpeed (float tiltspeed) = 0; 00176 00180 virtual float GetTiltSpeed () const = 0; 00181 00185 virtual void SetTiltAcceleration (float paccel) = 0; 00186 00190 virtual float GetTiltAcceleration () const = 0; 00191 00195 virtual void SetZoomOutCorrectionSpeed (float zoomspeed) = 0; 00196 00200 virtual float GetZoomOutCorrectionSpeed () const = 0; 00201 }; 00202 00203 #endif // __CEL_PF_TRACKINGCAMERA__
Generated for CEL: Crystal Entity Layer 1.4.1 by doxygen 1.7.1