SDC C-Project CF Review 프로그램
LYW
2021-07-08 9cbd9e554f9956b3b945b51602f1d4a3fa0353e1
ReviewHistory/include/akCore/akDE.h
»õ ÆÄÀÏ
@@ -0,0 +1,123 @@
#pragma once
#include "akCoreLinker.h"
#define _USE_MATH_DEFINES
#include <math.h>
#include <windows.h>
namespace akCore
{
   class AKCORE_DLLSPEC CakDE {
   public:
      CakDE(void);
      ~CakDE(void);
      // TODO: ì—¬ê¸°ì— ë©”서드를 ì¶”가합니다.
   public:
      /**
      * í•¨ìˆ˜ëª… : getMovingPostion
      *      í˜„제의 ì¢Œí‘œë¡œë¶€í„° ì†ë„와 ì‹œê°„만큼 ì›€ì§ì˜€ì„때의 ì¢Œí‘œ ë„ì¶œ
      * Parameters:
      *      double* posX   //X좌표(결과값 ë°˜í™˜)
      *      double* posY   //Y좌표(결과값 ë°˜í™˜)
      *      double* posZ   //Z좌표(결과값 ë°˜í™˜)
      *      double heading   //Heading(0~360)
      *      double pitch   //Pitch(0~360)
      *      double velocity   //속도(m/s
      *      unsigned int Framerate   //프레임(Hz)
      * Returns:
      *      ì •상적인 ê³„ì‚° ì™„료시 True ë°˜í™˜
      */
      bool getMovingPostion(double* posX,double* posY,double* posZ,double heading,double pitch, double velocity, unsigned int Framerate);
      bool getNextPostion(double* posX,double* posY,double* posZ,double heading,double pitch, double velocity, double Dt);
      /**
      * í•¨ìˆ˜ëª… : getRotatePostion
      *      í˜„ì œ ì¢Œí‘œë¡œë¶€í„° Heading,Pitch방향으로 ì •í•´ì§„ ê°’만큼 ì›€ì§ì˜€ì„때 ì¢Œí‘œ ë„ì¶œ
      * Parameters:
      *      double* posX   //X좌표(결과값 ë°˜í™˜)
      *      double* posY   //Y좌표(결과값 ë°˜í™˜)
      *      double* posZ   //Z좌표(결과값 ë°˜í™˜)
      *      double heading   //Heading(0~360)
      *      double pitch   //Pitch(0~360)
      *      double radius   //거리
      * Returns:
      *      ì •상적인 ê³„ì‚° ì™„료시 True ë°˜í™˜
      */
      bool getRotatePostion(double* posX, double* posY, double* posZ, double heading, double pitch, double radius);
      /**
      * í•¨ìˆ˜ëª… : getAngle3d
      *      ë‘ ì¢Œí‘œê°€ ì´ë£¨ëŠ” ê°ì„ í™˜ì‚°
      * Parameters:
      *      double x1      // ì²«ë²ˆì§¸ ì¢Œí‘œ
      *      double y1      // ì²«ë²ˆì§¸ ì¢Œí‘œ
      *      double z1      // ì²«ë²ˆì§¸ ì¢Œí‘œ
      *      double x2      // ë‘ë²ˆì§¸ ì¢Œí‘œ
      *      double y2      // ë‘ë²ˆì§¸ ì¢Œí‘œ
      *      double z2      // ë‘ë²ˆì§¸ ì¢Œí‘œ
      *      double heading   //Heading(결과값 ë°˜í™˜)
      *      double pitch   //Pitch(결과값 ë°˜í™˜)
      * Returns:
      */
      void getAngle3d(double x1, double y1, double z1, double x2, double y2, double z2, double* heading, double* pitch);
      /**
      * í•¨ìˆ˜ëª… : AngleClosing
      *      ë‘ ê°ì˜ ê°„격 í¬ê¸°
      * Parameters:
      *      double center      // ì¤‘심 ê°
      *      double angle      // íšŒì „ ê°
      *      int option         // 0은 ë¬´ì¡°ê±´ ê°€ê¹Œìš´ìª½ ê°
      * Returns:
      *      ì¤‘심각과 íšŒì „각의 ê°„격 ë°˜í™˜
      */
      double GetAngleClosing(double center, double angle, int option = 0);
      /**
      * í•¨ìˆ˜ëª… : GetAngle360
      *      ê°ì„ 0~360도 í™˜ì‚°
      * Parameters:
      *      double angle      // ìž…ë ¥ ê°
      * Returns:
      *      0~360도로 í™˜ì‚°ëœ ê°
      */
      inline double GetAngle360(double angle);
      /**
      * í•¨ìˆ˜ëª… : GetAngle180
      *      ê°ì„ -180~180도 í™˜ì‚°
      * Parameters:
      *      double angle      // ìž…ë ¥ ê°
      * Returns:
      *      -180~180도로 í™˜ì‚°ëœ ê°
      */
      static inline double GetAngle180(double angle);
      static void getRoate2d(double angle, double orgx,double orgy, double* x, double* y);
      double distance3d(double x1, double y1, double z1, double x2, double y2, double z2);
      void rotateposition3d(double x1,double y1, double z1, double* x2, double* y2, double* z2, double h, double p);
      void axisrotate(  double* nx, double* ny, double* nz,
         double cx, double cy, double cz,
         double tx, double ty, double tz,
         double heading, double pitch, double roll  );
      bool missilesim(double msx, double msy, double msz, double msh, double msp, double msah, double msap, double tgx, double tgy, double tgz, double velocty, double acceleration, int FrameRate);
      inline static double getHeading(double x , double y);
      inline double RadianToDegree(double radian);
      inline double DegreeToRadian(double degree);
      inline bool GetCheckAngleRange(double p1, double stAngle, double endAngle);
   private:
   };
}