Plasma Engine  2.0
Loading...
Searching...
No Matches
PlacementTask.h
1#pragma once
2
3#include <Foundation/CodeUtils/Expression/ExpressionVM.h>
4#include <Foundation/Threading/TaskSystem.h>
5#include <ProcGenPlugin/Declarations.h>
6
9
10namespace plProcGenInternal
11{
12 class PlacementTask final : public plTask
13 {
14 public:
15 PlacementTask(PlacementData* pData, const char* szName);
17
18 void Clear();
19
20 plArrayPtr<const PlacementPoint> GetInputPoints() const { return m_InputPoints; }
21 plArrayPtr<const PlacementTransform> GetOutputTransforms() const { return m_OutputTransforms; }
22
23 private:
24 virtual void Execute() override;
25
26 void FindPlacementPoints();
27 void ExecuteVM();
28
29 plProcessingStream MakeInputStream(const plHashedString& sName, plUInt32 uiOffset, plProcessingStream::DataType dataType = plProcessingStream::DataType::Float)
30 {
31 return plProcessingStream(sName, m_InputPoints.GetByteArrayPtr().GetSubArray(uiOffset), dataType, sizeof(PlacementPoint));
32 }
33
34 plProcessingStream MakeOutputStream(const plHashedString& sName, plUInt32 uiOffset, plProcessingStream::DataType dataType = plProcessingStream::DataType::Float)
35 {
36 return plProcessingStream(sName, m_InputPoints.GetByteArrayPtr().GetSubArray(uiOffset), dataType, sizeof(PlacementPoint));
37 }
38
39 PlacementData* m_pData = nullptr;
40
43 plDynamicArray<float> m_Density;
44 plDynamicArray<plUInt32> m_ValidPoints;
45
46 plExpressionVM m_VM;
47 };
48} // namespace plProcGenInternal
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition DynamicArray.h:81
Definition ExpressionVM.h:7
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
Definition PhysicsWorldModule.h:109
Definition PlacementTask.h:13
virtual void Execute() override
Override this to implement the task's supposed functionality.
Definition PlacementTask.cpp:37
A single stream in a stream group holding contiguous data of a given type.
Definition ProcessingStream.h:8
DataType
The data types which can be stored in the stream. When adding new data types the GetDataTypeSize() of...
Definition ProcessingStream.h:13
Base class for custom tasks.
Definition Task.h:10
Definition VolumeCollection.h:11
Definition PlacementData.h:12
Definition Declarations.h:256