⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrixstack.hpp

📁 机甲指挥官2源代码
💻 HPP
字号:
//===========================================================================//
// File:	mtrxstk.hh                                                       //
// Contents: Interface specification for the matrix class                    //
//---------------------------------------------------------------------------//
// Copyright (C) Microsoft Corporation. All rights reserved.                 //
//===========================================================================//

#pragma once

#include "Stuff.hpp"
#include "MemoryBlock.hpp"
#include "Matrix.hpp"
#include "LinearMatrix.hpp"

namespace Stuff {

	//~~~~~~~~~~~~~~~~~~~~~~~ AffinerMatrix4DStack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	class AffinerMatrix4DStack:
		public MemoryStackOf<AffineMatrix4D>
	{
	 public:
		AffinerMatrix4DStack(
			size_t start,
			size_t delta,
			const char* name
		):
			MemoryStackOf<AffineMatrix4D>(start, delta, name)
				{}

		AffinerMatrix4DStack&
			Concatenate(const AffineMatrix4D& matrix);

		AffineMatrix4D&
			Push(const AffineMatrix4D& matrix);

		operator AffineMatrix4D&()
			{Check_Object(this); return *Peek();}
	};

	//~~~~~~~~~~~~~~~~~~~~~~~ LinearMatrix4DStack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	class LinearMatrix4DStack:
		public MemoryStackOf<LinearMatrix4D>
	{
	 public:
		LinearMatrix4DStack(
			size_t start,
			size_t delta,
			const char* name
		):
			MemoryStackOf<LinearMatrix4D>(start, delta, name)
				{}

		LinearMatrix4DStack&
			Concatenate(const LinearMatrix4D& matrix);

		LinearMatrix4D&
			Push(const LinearMatrix4D& matrix);

		operator LinearMatrix4D&()
			{Check_Object(this); return *Peek();}
	};

	//~~~~~~~~~~~~~~~~~~~~~~~~~~ Matrix4DStack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	class Matrix4DStack:
		public MemoryStackOf<Matrix4D>
	{
	 public:
		Matrix4DStack(
			size_t start,
			size_t delta,
			const char* name
		):
			MemoryStackOf<Matrix4D>(start, delta, name)
				{}

		Matrix4DStack&
			Concatenate(const Matrix4D& matrix);
		Matrix4DStack&
			Concatenate(const AffineMatrix4D& matrix);

		Matrix4D&
			Push(const Matrix4D& matrix);
		Matrix4D&
			Push(const AffineMatrix4D& matrix);

		operator Matrix4D&()
			{Check_Object(this); return *Peek();}
	};

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -