00001
00024 #ifndef LISTENER_H_INCLUDED_C419EF1E
00025 #define LISTENER_H_INCLUDED_C419EF1E
00026
00027
00028 #include "openalpp/export.h"
00029 #include "openalpp/positionedobject.h"
00030
00031 namespace openalpp {
00032
00036 class OPENALPP_API Listener : public PositionedObject {
00037 float position_[3];
00038 float orientation_[6];
00039 float velocity_[3];
00040 static Listener *selectedlistener_;
00041 void init(float x,float y,float z,
00042 float vx,float vy,float vz,
00043 float directionx, float directiony, float directionz,
00044 float upx, float upy, float upz);
00045
00046 protected:
00050 virtual ~Listener();
00051
00052 public:
00057 Listener();
00058
00059
00063 Listener(const Listener &listener);
00064
00078 Listener(float x,float y,float z,
00079 float directionx,float directiony,float directionz,
00080 float upx,float upy,float upz);
00081
00089 Listener(float x, float y, float z);
00090
00094 void select();
00095
00100 bool isSelected();
00101
00111 void setOrientation(float directionx,float directiony,float directionz,
00112 float upx, float upy, float upz);
00113
00123 void getOrientation(float &directionx,float &directiony,float &directionz,
00124 float &upx, float &upy, float &upz) const;
00125
00130 Listener &operator=(const Listener &listener);
00131
00135 void setPosition(float x, float y, float z);
00136
00140 void getPosition(float &x, float &y, float &z) const;
00141
00145 void setVelocity(float vx, float vy, float vz);
00146
00150 void getVelocity(float &vx, float &vy, float &vz) const;
00151 };
00152
00153 }
00154
00155 #endif