1
0
KF2-Dev-Scripts/Engine/Classes/PointLightComponent.uc
2020-12-13 18:01:13 +03:00

109 lines
3.3 KiB
Ucode

/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class PointLightComponent extends LightComponent
native(Light)
hidecategories(Object)
editinlinenew;
/** used to control when point light shadow mapping goes to a hack mode, the ShadowRadiusMultiplier is multiplied by the radius of object's bounding sphere */
var float ShadowRadiusMultiplier;
var() interp float Radius<UIMin=8.0 | UIMax=1024.0>;
/** Controls the radial falloff of the light */
var() interp float FalloffExponent;
/** falloff for shadow when using LightShadow_Modulate */
var() float ShadowFalloffExponent;
/** The minimum radius at which the point light's shadow begins to attenuate. */
var float MinShadowFalloffRadius;
var const matrix CachedParentToWorld; //@todo remove me please
var() const vector Translation;
/** Plane used for planar shadows on mobile. */
var const plane ShadowPlane;
var const DrawLightRadiusComponent PreviewLightRadius;
/** The Lightmass settings for this object. */
var(Lightmass) LightmassPointLightSettings LightmassSettings <ScriptOrder=true>;
var const DrawLightRadiusComponent PreviewLightSourceRadius;
`if(`__TW_LIGHTING_MODIFICATIONS_) // Light Animation
/** The sprite representation for the light component */
var SpriteComponent LightSprite;
`endif
`if(`__TW_PATHFINDING_)
/** (TW) NPCs using the PreferDarkness path constraint won't take this pointlight into consideration */
var() bool bAIIgnoreLuminosity;
`endif
cpptext
{
protected:
/**
* Updates the light's PreviewLightRadius.
*/
void UpdatePreviewLightRadius();
// UActorComponent interface.
virtual void SetParentToWorld(const FMatrix& ParentToWorld);
virtual void Attach();
virtual void UpdateTransform();
public:
// ULightComponent interface.
virtual FLightSceneInfo* CreateSceneInfo() const;
virtual UBOOL AffectsBounds(const FBoxSphereBounds& Bounds) const;
virtual FVector4 GetPosition() const;
virtual FBox GetBoundingBox() const;
virtual FLinearColor GetDirectIntensity(const FVector& Point) const;
virtual ELightComponentType GetLightType() const;
// update the LocalToWorld matrix
virtual void SetTransformedToWorld();
/**
* Called after property has changed via e.g. property window or set command.
*
* @param PropertyThatChanged UProperty that has been changed, NULL if unknown
*/
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
virtual void PostLoad();
/** Update the PreviewLightSourceRadius */
virtual void UpdatePreviewLightSourceRadius();
}
native final function SetTranslation(vector NewTranslation);
`if(`__TW_LIGHTING_MODIFICATIONS_)
/** Sets the radius and calls BeginDeferredReattach() if radius has changed */
native final function SetRadius( float NewRadius );
`endif
/** Called from matinee code when LightColor property changes. */
function OnUpdatePropertyLightColor()
{
UpdateColorAndBrightness();
}
/** Called from matinee code when Brightness property changes. */
function OnUpdatePropertyBrightness()
{
UpdateColorAndBrightness();
}
defaultproperties
{
Radius=1024.0
FalloffExponent=2
ShadowFalloffExponent=2
ShadowRadiusMultiplier=1.1
ShadowPlane=(X=0,Y=0,Z=1,W=0)
`if(`__TW_LIGHTING_MODIFICATIONS_)
bCastPerObjectShadows=TRUE
`endif
}