Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
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.
2026-06-24 21:28:16 -05:00

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();}
};
}