LEAP Documentation 40220
Documentation for the LEAP project
BISCullDistanceVolume.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "GameFramework/Actor.h"
6#include "BISCullDistanceVolume.generated.h"
7
8#define CULL_LIST_UPDATE_FREQUENCY 1.0f
9#define MAX_ACTIVE_LIGHTS 50
10#define MAX_ACTIVE_PARTICLES 100
11#define PARTICLE_NEAR_RANGE 5000.0f
12#define PARTICLE_CULL_DISTANCE 25000.0f
13#define LIGHTS_MAX_DRAWDISTANCE 50000.0f
14
15class UFXSystemComponent;
16
17UCLASS()
18class PROJECTX_API ABISCullDistanceVolume : public AActor
19{
20 GENERATED_BODY()
21
22public:
23 static ABISCullDistanceVolume* Get(const UObject* WorldContextObject);
24 static void UpdateCullableObjects();
25
26 UFUNCTION(BlueprintCallable)
27 static void AddToIgnoreParticlesList(UFXSystemComponent* ParticleSystem);
28 UFUNCTION(BlueprintCallable)
29 static void RemoveFromIgnoreList(UFXSystemComponent* ParticleSystem);
30 UFUNCTION(BlueprintCallable)
31 static void AddRateLimitedParticleSystem(UFXSystemComponent* ParticleSystem);
32 UFUNCTION(BlueprintCallable)
33 static void RemoveRateLimitedParticleSystem(UFXSystemComponent* ParticleSystem);
34
35protected:
37 static void FadeLight(class ULightComponent* Light, bool bToggle);
38
39 virtual void BeginPlay() override;
40 virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
41 virtual void Tick(float DeltaTime) override;
42
43 static TMap<uint32, TWeakObjectPtr<UFXSystemComponent>> IgnoredParticles;
44 static TMap<uint32, TWeakObjectPtr<UFXSystemComponent>> RateLimitedParticles;
46
47 static TWeakObjectPtr<class APlayerController> Viewer;
48 static TWeakObjectPtr<class UWorld> World;
49
50private:
51 static ABISCullDistanceVolume* Singleton;
52};
Definition: BISCullDistanceVolume.h:19
static TMap< uint32, TWeakObjectPtr< UFXSystemComponent > > RateLimitedParticles
Definition: BISCullDistanceVolume.h:44
static TWeakObjectPtr< class APlayerController > Viewer
Definition: BISCullDistanceVolume.h:47
static TMap< uint32, TWeakObjectPtr< UFXSystemComponent > > IgnoredParticles
Definition: BISCullDistanceVolume.h:43
static uint32 RateLimitedParticlesCheckpoint
Definition: BISCullDistanceVolume.h:45
static TWeakObjectPtr< class UWorld > World
Definition: BISCullDistanceVolume.h:48