Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
103 lines
2.9 KiB
C++
103 lines
2.9 KiB
C++
//===========================================================================//
|
|
// File: mtrxstk.hh //
|
|
// Project: MUNGA Brick: Math Library //
|
|
// Contents: Interface specification for the matrix class //
|
|
//---------------------------------------------------------------------------//
|
|
// Date Who Modification //
|
|
// -------- --- ---------------------------------------------------------- //
|
|
// 11/21/94 JMA Initial coding. //
|
|
// 12/01/94 JMA Changed Matrix to Matrix4D, based both matrix classes on //
|
|
// Matrix44Base //
|
|
//---------------------------------------------------------------------------//
|
|
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
|
|
// All Rights reserved worldwide //
|
|
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
|
|
//===========================================================================//
|
|
|
|
#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();}
|
|
};
|
|
|
|
}
|