00001
00002
00003 #ifndef _SHOOT_POINT_HPP
00004 #define _SHOOT_POINT_HPP
00005
00006 #include "premodeler/shootPoint.hpp"
00007 #include "kernel/jafarException.hpp"
00008 #include "jmath/jblas.hpp"
00009
00010 namespace jafar {
00011
00012 namespace premodeler {
00013 class Spheroid;
00014
00015 class ShootPoint {
00016 public:
00017 enum Faces{TOP, LEFT, RIGHT, BACK, FRONT, UNKNOWN};
00018
00019 private:
00020 jblas::vec3 position;
00021 jblas::vec3 direction;
00022 Faces face;
00023 int id;
00024 bool reachable;
00025
00026 public:
00027 ShootPoint(const jblas::vec3& _position,
00028 const jblas::vec3& _direction,
00029 const Faces& _face);
00030
00031 ShootPoint(const jblas::vec3& _position,
00032 const jblas::vec3& _direction);
00033
00034 ShootPoint();
00035
00036 void setId(const int& _id);
00037
00038 int getId();
00039
00040 void setNotReachable();
00041
00042 ShootPoint& operator=(const ShootPoint& p);
00043
00044 friend std::ostream& jafar::premodeler::operator<<(std::ostream&,
00045 const ShootPoint&);
00046
00047 friend class Spheroid;
00048 };
00049
00050 std::ostream& operator<<(std::ostream& s, const ShootPoint& p);
00051
00052 }
00053
00054 }
00055
00056 #endif