[Bf-blender-cvs] [592470b07b4] functions: simplify code by changing ownership of particle functions
Jacques Lucke
noreply at git.blender.org
Thu Sep 12 16:32:27 CEST 2019
Commit: 592470b07b405547f7a8065ff5330f9f0a882b95
Author: Jacques Lucke
Date: Thu Sep 12 15:45:55 2019 +0200
Branches: functions
https://developer.blender.org/rB592470b07b405547f7a8065ff5330f9f0a882b95
simplify code by changing ownership of particle functions
===================================================================
M source/blender/functions/frontends/data_flow_nodes/vtree_data_graph.hpp
M source/blender/simulations/bparticles/actions.cpp
M source/blender/simulations/bparticles/actions.hpp
M source/blender/simulations/bparticles/events.cpp
M source/blender/simulations/bparticles/events.hpp
M source/blender/simulations/bparticles/forces.cpp
M source/blender/simulations/bparticles/forces.hpp
M source/blender/simulations/bparticles/node_frontend.cpp
M source/blender/simulations/bparticles/offset_handlers.cpp
M source/blender/simulations/bparticles/offset_handlers.hpp
===================================================================
diff --git a/source/blender/functions/frontends/data_flow_nodes/vtree_data_graph.hpp b/source/blender/functions/frontends/data_flow_nodes/vtree_data_graph.hpp
index 695f21f24e9..cfcbda6c69f 100644
--- a/source/blender/functions/frontends/data_flow_nodes/vtree_data_graph.hpp
+++ b/source/blender/functions/frontends/data_flow_nodes/vtree_data_graph.hpp
@@ -23,6 +23,11 @@ class VTreeDataGraph {
public:
VTreeDataGraph(VirtualNodeTree &vtree, SharedDataGraph graph, Array<DataSocket> mapping);
+ VirtualNodeTree &vtree()
+ {
+ return m_vtree;
+ }
+
SharedDataGraph &graph()
{
return m_graph;
diff --git a/source/blender/simulations/bparticles/actions.cpp b/source/blender/simulations/bparticles/actions.cpp
index 3f34d29113b..72d751de7e5 100644
--- a/source/blender/simulations/bparticles/actions.cpp
+++ b/source/blender/simulations/bparticles/actions.cpp
@@ -55,7 +55,7 @@ void SetVelocityAction::execute(ActionInterface &interface)
{
auto velocities = interface.attributes().get<float3>("Velocity");
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
for (uint pindex : interface.pindices()) {
float3 velocity = inputs->get<float3>("Velocity", 0, pindex);
@@ -69,7 +69,7 @@ void RandomizeVelocityAction::execute(ActionInterface &interface)
{
auto velocities = interface.attributes().get<float3>("Velocity");
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
for (uint pindex : interface.pindices()) {
float randomness = inputs->get<float>("Randomness", 0, pindex);
@@ -87,7 +87,7 @@ void ChangeColorAction::execute(ActionInterface &interface)
{
auto colors = interface.attributes().get<rgba_f>("Color");
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
for (uint pindex : interface.pindices()) {
rgba_f color = inputs->get<rgba_f>("Color", 0, pindex);
colors[pindex] = color;
@@ -98,7 +98,7 @@ void ChangeSizeAction::execute(ActionInterface &interface)
{
auto sizes = interface.attributes().get<float>("Size");
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
for (uint pindex : interface.pindices()) {
float size = inputs->get<float>("Size", 0, pindex);
sizes[pindex] = size;
@@ -109,7 +109,7 @@ void ChangePositionAction::execute(ActionInterface &interface)
{
auto positions = interface.attributes().get<float3>("Position");
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
for (uint pindex : interface.pindices()) {
float3 position = inputs->get<float3>("Position", 0, pindex);
positions[pindex] = position;
@@ -130,7 +130,7 @@ void ExplodeAction::execute(ActionInterface &interface)
Vector<float> new_birth_times;
Vector<uint> source_particles;
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
for (uint pindex : interface.pindices()) {
uint parts_amount = std::max(0, inputs->get<int>("Amount", 0, pindex));
@@ -160,7 +160,7 @@ void ExplodeAction::execute(ActionInterface &interface)
void ConditionAction::execute(ActionInterface &interface)
{
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
Vector<uint> true_pindices, false_pindices;
for (uint pindex : interface.pindices()) {
diff --git a/source/blender/simulations/bparticles/actions.hpp b/source/blender/simulations/bparticles/actions.hpp
index b1cce7d87be..746c47156b8 100644
--- a/source/blender/simulations/bparticles/actions.hpp
+++ b/source/blender/simulations/bparticles/actions.hpp
@@ -27,11 +27,10 @@ class KillAction : public Action {
class SetVelocityAction : public Action {
private:
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
public:
- SetVelocityAction(std::unique_ptr<ParticleFunction> compute_inputs)
- : m_compute_inputs(std::move(compute_inputs))
+ SetVelocityAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
{
}
@@ -40,11 +39,10 @@ class SetVelocityAction : public Action {
class RandomizeVelocityAction : public Action {
private:
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
public:
- RandomizeVelocityAction(std::unique_ptr<ParticleFunction> compute_inputs)
- : m_compute_inputs(std::move(compute_inputs))
+ RandomizeVelocityAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
{
}
@@ -53,11 +51,10 @@ class RandomizeVelocityAction : public Action {
class ChangeColorAction : public Action {
private:
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
public:
- ChangeColorAction(std::unique_ptr<ParticleFunction> compute_inputs)
- : m_compute_inputs(std::move(compute_inputs))
+ ChangeColorAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
{
}
@@ -66,11 +63,10 @@ class ChangeColorAction : public Action {
class ChangeSizeAction : public Action {
private:
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
public:
- ChangeSizeAction(std::unique_ptr<ParticleFunction> compute_inputs)
- : m_compute_inputs(std::move(compute_inputs))
+ ChangeSizeAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
{
}
@@ -79,11 +75,10 @@ class ChangeSizeAction : public Action {
class ChangePositionAction : public Action {
private:
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
public:
- ChangePositionAction(std::unique_ptr<ParticleFunction> compute_inputs)
- : m_compute_inputs(std::move(compute_inputs))
+ ChangePositionAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
{
}
@@ -93,15 +88,15 @@ class ChangePositionAction : public Action {
class ExplodeAction : public Action {
private:
Vector<std::string> m_types_to_emit;
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
std::unique_ptr<Action> m_on_birth_action;
public:
ExplodeAction(Vector<std::string> types_to_emit,
- std::unique_ptr<ParticleFunction> compute_inputs,
+ ParticleFunction *inputs_fn,
std::unique_ptr<Action> on_birth_action)
: m_types_to_emit(std::move(types_to_emit)),
- m_compute_inputs(std::move(compute_inputs)),
+ m_inputs_fn(inputs_fn),
m_on_birth_action(std::move(on_birth_action))
{
}
@@ -111,14 +106,14 @@ class ExplodeAction : public Action {
class ConditionAction : public Action {
private:
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
std::unique_ptr<Action> m_true_action, m_false_action;
public:
- ConditionAction(std::unique_ptr<ParticleFunction> compute_inputs,
+ ConditionAction(ParticleFunction *inputs_fn,
std::unique_ptr<Action> true_action,
std::unique_ptr<Action> false_action)
- : m_compute_inputs(std::move(compute_inputs)),
+ : m_inputs_fn(inputs_fn),
m_true_action(std::move(true_action)),
m_false_action(std::move(false_action))
{
diff --git a/source/blender/simulations/bparticles/events.cpp b/source/blender/simulations/bparticles/events.cpp
index 8a6e44592b0..116e5e8d380 100644
--- a/source/blender/simulations/bparticles/events.cpp
+++ b/source/blender/simulations/bparticles/events.cpp
@@ -19,7 +19,7 @@ void AgeReachedEvent::filter(EventFilterInterface &interface)
AttributesRef attributes = interface.attributes();
auto ids = attributes.get<int32_t>("ID");
- auto inputs = m_compute_inputs->compute(interface);
+ auto inputs = m_inputs_fn->compute(interface);
TemporaryArray<float> trigger_ages(attributes.size());
for (uint pindex : interface.pindices()) {
@@ -90,7 +90,7 @@ void CustomEvent::filter(EventFilterInterface &interface)
}
}
- auto inputs = m_compute_inputs->compute(
+ auto inputs = m_inputs_fn->compute(
pindices_to_check,
interface.attributes(),
ParticleTimes::FromDurationsAndEnd(interface.remaining_durations(),
diff --git a/source/blender/simulations/bparticles/events.hpp b/source/blender/simulations/bparticles/events.hpp
index d3de7da5516..9d05605423d 100644
--- a/source/blender/simulations/bparticles/events.hpp
+++ b/source/blender/simulations/bparticles/events.hpp
@@ -19,16 +19,14 @@ using BLI::float4x4;
class AgeReachedEvent : public Event {
private:
std::string m_identifier;
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
std::unique_ptr<Action> m_action;
public:
AgeReachedEvent(StringRef identifier,
- std::unique_ptr<ParticleFunction> compute_inputs,
+ ParticleFunction *inputs_fn,
std::unique_ptr<Action> action)
- : m_identifier(identifier),
- m_compute_inputs(std::move(compute_inputs)),
- m_action(std::move(action))
+ : m_identifier(identifier), m_inputs_fn(inputs_fn), m_action(std::move(action))
{
}
@@ -40,16 +38,12 @@ class AgeReachedEvent : public Event {
class CustomEvent : public Event {
private:
std::string m_identifier;
- std::unique_ptr<ParticleFunction> m_compute_inputs;
+ ParticleFunction *m_inputs_fn;
std::unique_ptr<Action> m_action;
public:
- CustomEvent(StringRef identifier,
- std::unique_ptr<ParticleFunction> compute_inputs,
- std::unique_ptr<Action> action)
- : m_identifier(identifier),
- m_compute_inputs(std::move(compute_inputs)),
- m_action(std::move(action))
+ CustomEvent(StringRef identifier, ParticleFunction *inputs_fn, std::unique_ptr<Action> action)
+ : m_identifier(identifier), m_inputs_fn(inputs_fn), m_action(std::move(action))
{
}
diff --git a/source/blender/simulations/bparticles/forces.cpp b/source/blender/simulations/bparticles/forces.cpp
index 5ee4ee6044c..ffd16aca14c 100644
--- a/source/blender/simulations/bparticles/forces.cpp
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list