From 039bde2990b5b015232b5da9ff4df0cf1d88ddac Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 금, 12 11월 2021 18:13:05 +0900
Subject: [PATCH] Ongoing60 #3708 CF AOI Review 전설비 AFM 세팅 모드 기능 추가

---
 ReviewHistory/include/akCore/akDE.h |  123 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/include/akCore/akDE.h b/ReviewHistory/include/akCore/akDE.h
new file mode 100644
index 0000000..445c9e6
--- /dev/null
+++ b/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:
+	};
+}
\ No newline at end of file

--
Gitblit v1.9.3