Skip to content

URayCastObserver

class URayCastObserver : public UBoxObserver

An observer that casts rays and collects observations about the first object hit.

Dependencies: FBoxPoint, FBoxSpace, UBoxObserver

Inherits from: public UBoxObserver

Public Interface

Public Functions:

GetObservationSpace

virtual FBoxSpace GetObservationSpace() const const

Get the BoxSpace bounding the outputs of this sensor.

Returns: The ObservationSpace bounding the outputs of this sensor.

Note: This function should be implemented by any derived classes

Returns: FBoxSpace

Attributes: const, virtual

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 66, column 11)

Implementation: Schola/Source/Schola/Private/Observers/RayCastObserver.cpp (lines 5-23)

GenerateRayEndpoints

TArray<FVector> GenerateRayEndpoints(int32 InNumRays, float InRayDegrees, FVector InBaseEnd, FVector InStart, FTransform InBaseTransform, FVector InEndOffset)

Generate the endpoints of the rays to be cast.

Returns: An array of endpoints for the rays.

Parameters:

  • InNumRays (int32) – [in] The number of rays to generate.
  • InRayDegrees (float) – [in] The angle between the first and last ray.
  • InBaseEnd (FVector) – [in] The base endpoint of the rays.
  • InStart (FVector) – [in] The start point of the rays.
  • InBaseTransform (FTransform) – [in] A transform to apply to the generated endpoints.
  • InEndOffset (FVector) – [in] An offset to apply to the end points of the rays.

Returns: TArray&lt;FVector&gt;

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 78, column 8)

Implementation: Schola/Source/Schola/Private/Observers/RayCastObserver.cpp (lines 25-60)

AppendEmptyTags

void AppendEmptyTags(FBoxPoint &OutObservations)

Add empty tags to the ray for ease of adding in one-hot encodings.

Parameters:

  • OutObservations (FBoxPoint &) – [out] The observations to append the results to.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 84, column 6)

Implementation: Schola/Source/Schola/Private/Observers/RayCastObserver.cpp (lines 62-68)

HandleRayMiss

void HandleRayMiss(FBoxPoint &OutObservations, FVector &InStart, FVector &InEnd)

Helper function for appending the data based on a ray trace that hit nothing.

Parameters:

  • OutObservations (FBoxPoint &) – [out] The observations to append the results to.
  • InStart (FVector &) – [in] The start point of the ray.
  • InEnd (FVector &) – [in] The end point of the ray.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 92, column 6)

Implementation: Schola/Source/Schola/Private/Observers/RayCastObserver.cpp (lines 70-89)

HandleRayHit

void HandleRayHit(FHitResult &InHitResult, FBoxPoint &OutObservations, FVector &InStart)

Handle a successful ray trace.

Parameters:

  • InHitResult (FHitResult &) – [in] The result of the ray trace.
  • OutObservations (FBoxPoint &) – [out] The observations to append the results to.
  • InStart (FVector &) – [in] The start point of the ray.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 100, column 6)

Implementation: Schola/Source/Schola/Private/Observers/RayCastObserver.cpp (lines 91-144)

CollectObservations

virtual void CollectObservations(FBoxPoint &OutObservations) override

Collect observations about the environment state.

Parameters:

  • OutObservations (FBoxPoint &) – [out] A BoxPoint that will be updated with the outputs of this sensor.

Attributes: virtual

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 106, column 14)

Implementation: Schola/Source/Schola/Private/Observers/RayCastObserver.cpp (lines 146-186)

GenerateId

virtual FString GenerateId() const override const

Returns: FString

Attributes: const, virtual

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 108, column 9)

Implementation: Schola/Source/Schola/Private/Observers/RayCastObserver.cpp (lines 188-208)

Public Members:

float RayLength

float RayLength = = 4096.f

The baseline length of each ray.

Will be adjusted by the scale component of RayTransform.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 24, column 7)

TEnumAsByte<ECollisionChannel> CollisionChannel

TEnumAsByte<ECollisionChannel> CollisionChannel

The collision channel to use for the raycast.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 28, column 13)

bool bDrawDebugLines

bool bDrawDebugLines = = false

Does this sensor draw debug lines/spheres during runtime.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 32, column 6)

bool bTraceComplex

bool bTraceComplex = = false

Should the sensor trace against complex collision.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 36, column 6)

int32 NumRays

int32 NumRays = = 2

The number of rays to fire.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 40, column 7)

float RayDegrees

float RayDegrees = = 90.0f

The angle between the first and last ray.

Special case of 360 degrees.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 44, column 7)

TArray<FName> TrackedTags

TArray<FName> TrackedTags

Actor tags that are checked on raycast collision.

Included in observations as a 1-hot vector.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 48, column 8)

FTransform RayStartTransform

FTransform RayStartTransform

A transform that is applied to the generated ray trajectories.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 52, column 12)

FVector RayEndOffset

FVector RayEndOffset

A position adjustment that is applied to end points of the generated ray trajectories.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 56, column 9)

FColor DebugHitColor

FColor DebugHitColor = = FColor::Green

Debug color for ray hit.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 60, column 8)

FColor DebugMissColor

FColor DebugMissColor = = FColor::Red

Debug color for ray miss.

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 64, column 8)

Private Interface

Private Members:

constexpr const float kLineGirth

static constexpr const float kLineGirth = = 1.f

Attributes: static, private

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 18, column 30)

constexpr const float kSphereRadius

static constexpr const float kSphereRadius = = 16.f

Attributes: static, private

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 19, column 30)

Source: Schola/Source/Schola/Public/Observers/RayCastObserver.h (line 14, column 1)