Files
firestorm/Gameleap/code/mw4/Libraries/Proxies/ChildProxy.hpp
T
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

150 lines
3.6 KiB
C++

#pragma once
#include "Proxies.hpp"
#include "GenericProxy.hpp"
namespace Proxies {
class SceneProxy;
class GroupProxy;
class BinSortProcess;
class BurnLightsProcess;
class CleanHierarchyProcess;
class CopyProcess;
class FindErrorsProcess;
class FlattenHierarchyProcess;
class SplitByStateProcess;
class GetInfoProcess;
class MakeSingleSidedProcess;
class OptimizeFlatShadingProcess;
//
//#########################################################################
//########################## ChildProxy #############################
//#########################################################################
//
class _declspec(novtable) ChildProxy:
public GenericProxy
{
public:
static void
InitializeClass();
static void
TerminateClass();
static ClassData
*DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Constructors
//
protected:
ChildProxy(
ClassData *data,
SceneProxy *scene,
GroupProxy *parent
);
~ChildProxy();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Testing
//
public:
void
TestInstance() const;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Process support
//
public:
virtual bool
BinSort(BinSortProcess *process);
virtual void
BurnLights(BurnLightsProcess *process);
virtual bool
CleanHierarchy(CleanHierarchyProcess *process);
virtual int
FindErrors(FindErrorsProcess *process);
virtual void
FindLights(BurnLightsProcess *process);
virtual bool
FlattenHierarchy(FlattenHierarchyProcess *process);
virtual bool
SplitByState(SplitByStateProcess *process);
virtual bool
MakeSingleSided(MakeSingleSidedProcess *process);
virtual bool
OptimizeFlatShading(OptimizeFlatShadingProcess *process);
virtual void
GetInfo(GetInfoProcess *process);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Position management functions
//
public:
//
// Position traversal functions
//
SceneProxy*
GetSceneProxy()
{Check_Object(this); return sceneProxy;}
GroupProxy*
GetParentGroupProxy()
{Check_Object(this); return parentProxy;}
virtual void
TransferAndAppendToParentGroup(GroupProxy *parent) = 0;
virtual ChildProxy*
UseNextSiblingProxy()=0;
virtual ChildProxy*
UsePreviousSiblingProxy()=0;
protected:
SceneProxy
*sceneProxy;
GroupProxy
*parentProxy;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Matrix functions
//
public:
//
// Matrix functions
//
virtual bool
GetLocalToParent(Stuff::LinearMatrix4D *matrix) = 0;
virtual void
GetLocalToWorld(Stuff::LinearMatrix4D *matrix);
virtual void
SetLocalToParent(const Stuff::LinearMatrix4D &matrix) = 0;
virtual void
TransformLocalToParent(const Stuff::LinearMatrix4D &matrix);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Bounding functions
//
// GetBoundingSphere should be used only after GetOBB has returned a false
//
public:
virtual bool
GetOBB(Stuff::OBB *obb) = 0;
virtual void
SetOBB(const Stuff::OBB &obb) = 0;
virtual bool
GetBoundingSphere(Stuff::Sphere *sphere) = 0;
virtual void
SetBoundingSphere(const Stuff::Sphere &sphere) = 0;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Polygon functions
//
public:
virtual void
GetCentroid(Stuff::Point3D *center) = 0;
};
}