#pragma once #include "akLinker.h" #include "akSTL.h" #include "akDE.h" #include namespace akSTL { struct _Waypoint { double x; double y; double z; double speed; }; class akSTL_DLLSPEC CakTrajcetoryModel { public: CakTrajcetoryModel(void); ~CakTrajcetoryModel(void); public: virtual int calculate(float dTime); //´õÀÌ»ó °è»êÇÒ °æ·ÎÁ¡ÀÌ ¾øÀ» °æ¿ì 2¸¦ ¹Ýȯ void setCurrentByWaypoint(int nWaypointIndex); //ÇöÀç°ªÀ» °æ·ÎÁ¡ ±âÁØÀ¸·Î ¼ÂÆÃ public: //ÇöÀç °ª khVector3d m_position; //À§Ä¡ khVector3d m_rotate; //ÀÚ¼¼ double m_velocity; //¼Óµµ double m_acc; //°¡¼Óµµ khVector3d m_rotateAcc; //°¢¼Óµµ //ºÎ¿© ¹ÞÀº ¸í·É ¼³Á¤ khVector3d m_TaskPosition; double m_TaskVelocity; double m_TaskAcc; //°´Ã¼ Á¤º¸ °ü¸® double mass; //¹«°Ô double maxSpeed; //ÃÖ´ë ¼Óµµ double minSpeed; //ÃÖÀú ¼Óµµ double maxAcceleration; //°¡¼Óµµ double maxDeceleration; //°¨¼Óµµ khVector3d m_rotateVelRate; //°æ·ÎÁ¡ °ü¸® public: int m_nWaypointType; //0 ¸¶Áö¸· °æ·ÎÁ¡ÀÌ¸é ³¡³½´Ù, 1°æ·ÎÁ¡ ¼øÈ¸, 2°æ·ÎÁ¡ ¿Õº¹ int m_nWaypointSet; //ÇöÀç ¼³Á¤µÈ °æ·ÎÁ¡ std::vector<_Waypoint> m_vecWaypoint; protected: void getAngle3d(double x1, double y1, double z1, double x2, double y2, double z2, double* heading, double* pitch); double getHeading(double x , double y); protected: CakDE m_movementmodel; }; }