Files
CydandClaude Fable 5 fdd9ac9d97 Initial import: Tesla Release 4.10 (Tesla:BattleTech & Tesla:Red Planet)
Archival snapshot of the Virtual World Entertainment Tesla cockpit
software, 1994-1996: MUNGA engine and L4 pod layer source (Borland
C++ 5.0), BT/RP game code, and game content (models, audio, maps,
gauges, Division renderer data). Includes third-party libraries:
Division dVS/DPL graphics, HMI SOS audio, WATTCP networking.

Files are preserved byte-for-byte (.gitattributes disables all
line-ending conversion). README.md documents the layout, target
hardware, and toolchain.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 13:21:58 -05:00

66 lines
2.4 KiB
C++

//===========================================================================//
// File: mtrxstk.cc //
// 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 FullMatrix, 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 //
//===========================================================================//
#include <munga.hpp>
#if !defined(MTRXSTK_HPP)
# include <mtrxstk.hpp>
#endif
AffineMatrixStack&
AffineMatrixStack::Concatenate(const AffineMatrix& matrix)
{
AffineMatrix *old_top = Cast_Object(AffineMatrix*,Peek());
AffineMatrix *new_top = (AffineMatrix*)MemoryStack::Push();
new_top->Multiply(*old_top,matrix);
return *this;
}
LinearMatrixStack&
LinearMatrixStack::Concatenate(const LinearMatrix& matrix)
{
LinearMatrix *old_top = Cast_Object(LinearMatrix*,Peek());
LinearMatrix *new_top = (LinearMatrix*)MemoryStack::Push();
new_top->Multiply(*old_top,matrix);
return *this;
}
Matrix4x4Stack&
Matrix4x4Stack::Concatenate(const Matrix4x4& matrix)
{
Matrix4x4 *old_top = Cast_Object(Matrix4x4*,Peek());
Matrix4x4 *new_top = (Matrix4x4*)MemoryStack::Push();
new_top->Multiply(*old_top,matrix);
return *this;
}
Matrix4x4Stack&
Matrix4x4Stack::Concatenate(const AffineMatrix& matrix)
{
Matrix4x4 *old_top = Cast_Object(Matrix4x4*,Peek());
Matrix4x4 *new_top = (Matrix4x4*)MemoryStack::Push();
new_top->Multiply(*old_top,matrix);
return *this;
}
Matrix4x4&
Matrix4x4Stack::Push(const AffineMatrix& matrix)
{
Matrix4x4 *new_top = (Matrix4x4*)MemoryStack::Push();
return *new_top = matrix;
}