## Engine
Class Projector

source: C:\XIII\Engine\Classes\Projector.uc

    Core.Object
       |
       +--Engine.Actor
          |
          +--Engine.Projector

Direct Known Subclasses:ShadowProjector, BloodFlow, BloodOnHead, BloodSplash, CorpseBlood, HandLiteProj, XIIIScorch

class Projector
extends Engine.Actor

Variables
`byte` | `AttachPriority`
`Box` | `Box`
`int` | `FOV`
`plane` | `FrustumPlanes[6]`
`vector` | `FrustumVertices[8]`
`Matrix` | `GradientMatrix`
`Matrix` | `Matrix`
`int` | `MaxTraceDistance`
`Vector` | `OldLocation`
`Material` | `ProjTexture`
`name` | `ProjectTag`
`ProjectorRenderInfoPtr` | `RenderInfo`
`float` | `VScale`
`bool` | `bClipBSP`
`bool` | `bFade`
`bool` | `bLevelStatic`
`bool` | `bProjectActor`
`bool` | `bProjectBSP`
`bool` | `bProjectOnAlpha`
`bool` | `bProjectOnParallelBSP`
`bool` | `bProjectOnUnlit`
`bool` | `bProjectStaticMesh`
`bool` | `bProjectTerrain`

Function Summary
`void` | `AbandonProjector(optional float)`
`void` | `AttachProjector()`
    // functions
`void` | `DetachProjector(optional bool)`

Source Code

    00001	class Projector extends Actor
    00002		placeable
    00003		native;
    00004
    00005	#exec Texture Import File=Textures\Proj_IconMasked.pcx Name=Proj_Icon Mips=Off MASKED=1 COMPRESS=DXT1
    00006	#exec Texture Import File=Textures\ProjGradient.tga Name=ProjGradient Mips=Off MASKED=0 COMPRESS=DXT3 UCLAMPMODE=CLAMP VCLAMPMODE=CLAMP
    00007	#exec Texture Import File=Textures\ProjClip.tga Name=ProjClip Mips=Off MASKED=0 COMPRESS=DXT3 UCLAMPMODE=CLAMP VCLAMPMODE=CLAMP
    00008
    00009	// public properties
    00010	var transient Matrix GradientMatrix;
    00011	var transient Matrix Matrix;
    00012	var transient Vector OldLocation;
    00013	var() Material	ProjTexture;
    00014	var() int		FOV;
    00015	var() int		MaxTraceDistance;
    00016	var() bool		bProjectBSP;
    00017	var() bool		bProjectTerrain;
    00018	var() bool		bProjectStaticMesh;
    00019	var() bool		bProjectActor;
    00020	var() bool		bLevelStatic;
    00021	var() bool		bClipBSP;
    00022	var() bool		bProjectOnUnlit;
    00023	var() bool		bFade;
    00024	var() bool		bProjectOnAlpha;
    00025	var() bool		bProjectOnParallelBSP;
    00026	var() name		ProjectTag;
    00027	var() float		VScale;
    00028	var   byte		AttachPriority;
    00029
    00030	var const transient plane FrustumPlanes[6];
    00031	var const transient vector FrustumVertices[8];
    00032	var const transient Box Box;
    00033	struct ProjectorRenderInfoPtr { var int Ptr; };	// Hack to to fool C++ header generation...
    00034	var const transient ProjectorRenderInfoPtr RenderInfo;
    00035
    00036
    00037	// functions
    00038	native function AttachProjector();
    00039	native function DetachProjector(optional bool Force);
    00040	native function AbandonProjector(optional float Lifetime);
    00041
    00042	//native function AttachActor( Actor A );
    00043	//native function DetachActor( Actor A );
    00044
    00045	event PostBeginPlay()
    00046	{
    00047		AttachProjector();
    00048		if( bLevelStatic )
    00049		{
    00050			AbandonProjector();
    00051			Destroy();
    00052		}
    00053	/*	if( bProjectActor )
    00054		{
    00055			SetCollision(True, False, False);
    00056			// GotoState('ProjectActors');  //FIXME - state doesn't exist
    00057		}*/
    00058	}
    00059
    00060	/*event Touch( Actor Other )
    00061	{
    00062		//if( Other.bAcceptsProjectors && (ProjectTag=='' || Other.Tag==ProjectTag) )
    00063			AttachActor(Other);
    00064	}
    00065	event Untouch( Actor Other )
    00066	{
    00067		DetachActor(Other);
    00068	}*/
    00069
    00070	defaultproperties
    00071	{
    00072	     MaxTraceDistance=1000
    00073	     bProjectBSP=True
    00074	     bProjectTerrain=True
    00075	     bProjectStaticMesh=True
    00076	     bProjectActor=True
    00077	     VScale=1.000000
    00078	     AttachPriority=5
    00079	     bHidden=True
    00080	     bInteractive=False
    00081	     RemoteRole=ROLE_None
    00082	     Texture=Texture'Engine.Proj_Icon'
    00083	     bDirectional=True
    00084	}

End Source Code