Enzo
Loading...
Searching...
No Matches
AttributeOperation.h
1#pragma once
2#include "Engine/Attribute/AttributeHandle.h"
3#include "Engine/Core/Types.h"
4#include <optional>
5#include <span>
6
7namespace enzo::utils {
8
10enum class AttributeOperation
11{
12 SET,
13 ADD,
14 SUBTRACT,
15 MULTIPLY,
16 MINIMUM,
17 MAXIMUM,
18};
19
21std::optional<AttributeOperation> getAttributeOperation(const String& name);
22
24floatT applyOperation(AttributeOperation operation, floatT value, floatT newValue);
25
27Vector3 applyOperation(AttributeOperation operation, const Vector3& value, const Vector3& newValue);
28
30void applyOperation(
31 AttributeOperation operation,
32 attr::AttributeHandle<floatT> handle,
33 std::span<const floatT> newValues
34);
35
37void applyOperation(
38 AttributeOperation operation,
39 attr::AttributeHandle<Vector3> handle,
40 std::span<const Vector3> newValues
41);
42
43} // namespace enzo::utils
Basic attribute, parameter, and node types for Enzo.