// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Delegate.h"
#include "Brush.h"
class Scene;
namespace CSG
{
class RawData;
#if COMPILE_WITH_CSG_BUILDER
///
/// CSG geometry builder
///
class Builder
{
public:
///
/// Action fired when any CSG brush on scene gets edited (different dimensions or transformation etc.)
///
static Delegate OnBrushModified;
public:
static bool IsActive();
///
/// Build CSG geometry for the given scene.
///
/// The scene.
/// The timeout to wait before building CSG (in milliseconds).
static void Build(Scene* scene, float timeoutMs = 50);
};
#endif
};