From 4139a71f5c0b72f88813a15d7112fdac76756fe4 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 월, 15 11월 2021 10:31:35 +0900
Subject: [PATCH] 프로그램 종료시 팝업 멘트 고객사 요청사항 반영

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

diff --git a/ReviewHistory/include/akCore/akStructVector.h b/ReviewHistory/include/akCore/akStructVector.h
new file mode 100644
index 0000000..d769997
--- /dev/null
+++ b/ReviewHistory/include/akCore/akStructVector.h
@@ -0,0 +1,165 @@
+#pragma once
+
+#include "akCoreLinker.h"
+
+#define _USE_MATH_DEFINES
+#include <math.h>
+
+
+
+
+#define KHVECTOR_HEADER(akVector3d, double)									\
+class AKCORE_DLLSPEC akVector3d											\
+	{																		\
+	public:																	\
+																			\
+		akVector3d();														\
+		akVector3d(double px,double py, double pz);							\
+		inline void set(double px,double py, double pz);					\
+																			\
+		inline akVector3d operator+(const akVector3d& vec3d);				\
+		inline akVector3d operator-(const akVector3d& vec3d);				\
+		inline akVector3d& operator=(const akVector3d& vec3d);				\
+		inline akVector3d& operator+=(const akVector3d& vec3d);				\
+		inline akVector3d& operator-=(const akVector3d& vec3d);				\
+		akVector3d operator*(float& a)										\
+		{																	\
+			akVector3d returnval;											\
+																			\
+			returnval.x = x * a;											\
+			returnval.y = y * a;											\
+			returnval.z = z * a;											\
+																			\
+			return returnval;												\
+		};																	\
+																			\
+		akVector3d operator *(akVector3d &vec)								\
+		{																	\
+			akVector3d vc;													\
+			vc.x = y*vec.z - z*vec.y;										\
+			vc.y = z*vec.x - x*vec.z;										\
+			vc.z = x*vec.y - y*vec.x;										\
+			return vc;														\
+		}																	\
+																			\
+		double Dot(akVector3d vec)											\
+		{																	\
+			return (vec.x * x + vec.y * y + vec.z * z);						\
+		};																	\
+		double Mag()														\
+		{																	\
+			return sqrt(x*x+y*y);											\
+		};																	\
+		double getLength()													\
+		{																	\
+			return sqrt(x*x+y*y+z*z);										\
+		};																	\
+		void Normalize()													\
+		{																	\
+			double length;													\
+																			\
+			length = sqrt((x*x) + (y*y) +(z*z));							\
+			if(length == 0.0f) length = 1.0f;								\
+																			\
+			x = x / length;													\
+			y = y / length;													\
+			z = z / length;													\
+																			\
+		};																	\
+	public:																	\
+		double x,y,z;														\
+	};																		
+																			
+																			
+namespace akCore															
+{
+	class AKCORE_DLLSPEC akVector3d
+	{
+	public:
+
+		akVector3d();
+		akVector3d(double px,double py, double pz);
+		inline void set(double px,double py, double pz);
+		
+		inline akVector3d operator+(const akVector3d& vec3d);
+		inline akVector3d operator-(const akVector3d& vec3d);
+		inline akVector3d& operator=(const akVector3d& vec3d);
+		inline akVector3d& operator+=(const akVector3d& vec3d);
+		inline akVector3d& operator-=(const akVector3d& vec3d);
+		akVector3d operator*(float& a)
+		{
+			akVector3d returnval;
+
+			returnval.x = x * a;
+			returnval.y = y * a;
+			returnval.z = z * a;
+
+			return returnval;
+		};
+
+		akVector3d operator *(akVector3d &vec)
+		{
+			akVector3d vc;
+			vc.x = y*vec.z - z*vec.y;
+			vc.y = z*vec.x - x*vec.z;
+			vc.z = x*vec.y - y*vec.x;
+			return vc;
+		}
+
+		//내적
+		double Dot(akVector3d vec)
+		{
+			return (vec.x * x + vec.y * y + vec.z * z);
+		};
+		double Mag()
+		{
+			return sqrt(x*x+y*y);
+		};
+		double getLength()
+		{
+			return sqrt(x*x+y*y+z*z);
+		};
+		void Normalize()
+		{
+			double length;
+
+			//벡터의 길이를 계산한다.
+			length = sqrt((x*x) + (y*y) +(z*z));
+			// 길이가 0에 가까운 벡터에게 절절한 값을 항당하여 프로그램이 폭주하지 않도록 한다.
+			if(length == 0.0f) length = 1.0f;
+
+			// 각 성분을 벡터의 길이로 나누면 단위 벡터가 된다.
+			x = x / length;
+			y = y / length;
+			z = z / length;
+
+		};
+	public:
+		double x,y,z;
+	};
+
+	//////////////////////////////////////////////////////////////////////////
+	// khVector3f
+	KHVECTOR_HEADER(khVector3f, float)
+
+	//////////////////////////////////////////////////////////////////////////
+	//////////////////////////////////////////////////////////////////////////
+	class AKCORE_DLLSPEC akVector2d
+	{
+	public:
+		akVector2d();
+		akVector2d(double px,double py);
+		inline void set(double px,double py);
+
+
+		
+
+		inline akVector2d operator+(const akVector2d& vec3d);
+		inline akVector2d operator-(const akVector2d& vec3d);
+		inline akVector2d& operator=(const akVector2d& vec3d);
+		inline akVector2d& operator+=(const akVector2d& vec3d);
+		inline akVector2d& operator-=(const akVector2d& vec3d);
+	public:
+		double x,y,z;
+	};
+};

--
Gitblit v1.9.3