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

113 lines
2.4 KiB
C++

#pragma once
#include "Proxies.hpp"
#include "ChildProxy.hpp"
namespace Proxies {
class SceneProxy;
//
//#########################################################################
//######################### LightProxy ##############################
//#########################################################################
//
class _declspec(novtable) LightProxy:
public ChildProxy
{
public:
static void
InitializeClass();
static void
TerminateClass();
static ClassData
*DefaultData;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Constructors
//
protected:
LightProxy(
ClassData *class_data,
SceneProxy *scene,
GroupProxy *parent
);
~LightProxy();
public:
//
// Copies the elements of the given material into this material
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Testing
//
public:
void
TestInstance() const;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Process support
//
public:
void
FindLights(BurnLightsProcess *process);
virtual void
Copy(
CopyProcess *process,
LightProxy *light
);
void
GetCentroid(Stuff::Point3D *center);
void
FitBoundingSphere(Stuff::Sphere *sphere);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Light functions
//
public:
//
// ambient color functions
//
virtual void
GetColor(Stuff::RGBColor *color) = 0;
virtual void
SetColor(const Stuff::RGBColor &color) = 0;
//
// Ambience. If the light is ambient (it isn't by default), then its
// local to parent and local to world matrices are not valid
//
virtual bool
IsAmbient() = 0;
virtual void
SetAmbient(bool ambient) = 0;
//
// light falloff. The light is infinite if the GetFalloffDistance
// function return false. Lights default to infinite unless
// SetFalloffDistance is called
//
virtual bool
GetFalloffDistance(
Stuff::Scalar *n,
Stuff::Scalar *f
) = 0;
virtual void
SetFalloffDistance(
Stuff::Scalar n,
Stuff::Scalar f
) = 0;
//
// spotlight spread. This value is only valid if the light had falloff
//
virtual bool
GetSpreadAngle(Stuff::Radian *angle) = 0;
virtual void
SetSpreadAngle(const Stuff::Radian &radian) = 0;
};
}