// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #pragma once #include "Engine/Core/Types/Span.h" #include "Engine/Scripting/ScriptingType.h" class Foliage; /// /// Foliage tools for editor. Allows to spawn and modify foliage instances. /// API_CLASS(Static, Namespace="FlaxEditor") class FoliageTools { DECLARE_SCRIPTING_TYPE_NO_SPAWN(FoliageTools); /// /// Paints the foliage instances using the given foliage types selection and the brush location. /// /// The foliage actor. /// The foliage types indices to use for painting. /// The brush position. /// The brush radius. /// True if paint using additive mode, false if remove foliage instances. /// The additional scale for foliage density when painting. Can be used to increase or decrease foliage density during painting. API_FUNCTION() static void Paint(Foliage* foliage, Span foliageTypesIndices, const Vector3& brushPosition, float brushRadius, bool additive, float densityScale = 1.0f); /// /// Paints the foliage instances using the given foliage types selection and the brush location. /// /// The foliage actor. /// The foliage types indices to use for painting. /// The brush position. /// The brush radius. /// The additional scale for foliage density when painting. Can be used to increase or decrease foliage density during painting. API_FUNCTION() static void Paint(Foliage* foliage, Span foliageTypesIndices, const Vector3& brushPosition, float brushRadius, float densityScale = 1.0f); /// /// Removes the foliage instances using the given foliage types selection and the brush location. /// /// The foliage actor. /// The foliage types indices to use for painting. /// The brush position. /// The brush radius. API_FUNCTION() static void Remove(Foliage* foliage, Span foliageTypesIndices, const Vector3& brushPosition, float brushRadius); };