2019-01-02 14:54:39 -05:00
|
|
|
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
2018-12-13 17:04:16 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
2019-06-21 01:21:43 -04:00
|
|
|
#if INCLUDE_CHAOS && !WITH_CHAOS_NEEDS_TO_BE_FIXED
|
|
|
|
|
#include "SQAccelerator.h"
|
2018-12-13 17:04:16 -05:00
|
|
|
|
|
|
|
|
class UGeometryCollectionComponent;
|
|
|
|
|
|
2019-08-05 15:48:51 -04:00
|
|
|
class FGeometryCollectionSQAccelerator
|
2018-12-13 17:04:16 -05:00
|
|
|
{
|
|
|
|
|
public:
|
2019-08-05 15:48:51 -04:00
|
|
|
void Raycast(const FVector& Start, const FVector& Dir, const float DeltaMagnitude, ChaosInterface::FSQHitBuffer<ChaosInterface::FRaycastHit>& HitBuffer, EHitFlags OutputFlags, const FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase& QueryCallback) const;
|
|
|
|
|
void Sweep(const Chaos::TImplicitObject<float, 3>& QueryGeom, const FTransform& StartTM, const FVector& Dir, const float DeltaMagnitude, ChaosInterface::FSQHitBuffer<ChaosInterface::FSweepHit>& HitBuffer, EHitFlags OutputFlags, const FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase& QueryCallback) const;
|
|
|
|
|
void Overlap(const Chaos::TImplicitObject<float, 3>& QueryGeom, const FTransform& GeomPose, ChaosInterface::FSQHitBuffer<ChaosInterface::FOverlapHit>& HitBuffer, const FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase& QueryCallback) const;
|
2018-12-13 17:04:16 -05:00
|
|
|
virtual ~FGeometryCollectionSQAccelerator() {}
|
|
|
|
|
|
|
|
|
|
void AddComponent(UGeometryCollectionComponent* Component);
|
|
|
|
|
void RemoveComponent(UGeometryCollectionComponent* Component);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
TSet<UGeometryCollectionComponent*> Components;
|
|
|
|
|
};
|
|
|
|
|
#endif
|