feat: add parameter name class
This commit is contained in:
@@ -24,6 +24,7 @@ set(ENGINE_SOURCES
|
|||||||
src/Engine/Parameter/Parameter.cpp
|
src/Engine/Parameter/Parameter.cpp
|
||||||
src/Engine/Parameter/Default.cpp
|
src/Engine/Parameter/Default.cpp
|
||||||
src/Engine/Parameter/Range.cpp
|
src/Engine/Parameter/Range.cpp
|
||||||
|
src/Engine/Parameter/PrmName.cpp
|
||||||
src/Engine/Network/NetworkManager.cpp
|
src/Engine/Network/NetworkManager.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include <icecream.hpp>
|
||||||
|
|
||||||
|
|
||||||
enzo::op::Context::Context(enzo::nt::OpId opId, enzo::nt::NetworkManager& networkManager)
|
enzo::op::Context::Context(enzo::nt::OpId opId, enzo::nt::NetworkManager& networkManager)
|
||||||
|
|||||||
@@ -35,12 +35,12 @@ nt::GeometryOperator::GeometryOperator(enzo::nt::OpId opId, op::OpInfo opInfo)
|
|||||||
|
|
||||||
void nt::GeometryOperator::initParameters()
|
void nt::GeometryOperator::initParameters()
|
||||||
{
|
{
|
||||||
for(const prm::Template* t = opInfo_.templates; t->isValid(); ++t)
|
for(const prm::Template* t = opInfo_.templates; t->getType()!=prm::Type::LIST_TERMINATOR; ++t)
|
||||||
{
|
{
|
||||||
std::cout << "name: " << t->getName() << "\n";
|
|
||||||
// create parameter
|
// create parameter
|
||||||
auto parameter = std::make_shared<prm::Parameter>(*t);
|
auto parameter = std::make_shared<prm::Parameter>(*t);
|
||||||
parameter->valueChanged.connect([this](){dirtyNode();});
|
parameter->valueChanged.connect([this](){dirtyNode();});
|
||||||
|
IC(parameter);
|
||||||
|
|
||||||
parameters_.push_back(parameter);
|
parameters_.push_back(parameter);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#include "Engine/Operator/OperatorTable.h"
|
#include "Engine/Operator/OperatorTable.h"
|
||||||
#include "Engine/Operator/OpInfo.h"
|
#include "Engine/Operator/OpInfo.h"
|
||||||
|
#include "Engine/Types.h"
|
||||||
#include <boost/dll/import.hpp>
|
#include <boost/dll/import.hpp>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@@ -9,7 +10,7 @@ void enzo::op::OperatorTable::addOperator(enzo::op::OpInfo info)
|
|||||||
std::cout << "OPERATOR TABLE ADDED\n";
|
std::cout << "OPERATOR TABLE ADDED\n";
|
||||||
std::cout << "adding operator: " << info.displayName << "\n";
|
std::cout << "adding operator: " << info.displayName << "\n";
|
||||||
|
|
||||||
for(const prm::Template* t = info.templates; t->isValid(); ++t)
|
for(const prm::Template* t = info.templates; t->getType()!=prm::Type::LIST_TERMINATOR; ++t)
|
||||||
{
|
{
|
||||||
std::cout << "name: " << t->getName() << "\n";
|
std::cout << "name: " << t->getName() << "\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ std::string enzo::prm::Parameter::getName() const
|
|||||||
return template_.getName();
|
return template_.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string enzo::prm::Parameter::getLabel() const
|
||||||
|
{
|
||||||
|
return template_.getLabel();
|
||||||
|
}
|
||||||
|
|
||||||
enzo::bt::floatT enzo::prm::Parameter::evalFloat(unsigned int index) const
|
enzo::bt::floatT enzo::prm::Parameter::evalFloat(unsigned int index) const
|
||||||
{
|
{
|
||||||
if(index >= floatValues_.size())
|
if(index >= floatValues_.size())
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class Parameter
|
|||||||
public:
|
public:
|
||||||
Parameter(Template prmTemplate);
|
Parameter(Template prmTemplate);
|
||||||
std::string getName() const;
|
std::string getName() const;
|
||||||
|
std::string getLabel() const;
|
||||||
enzo::prm::Type getType() const;
|
enzo::prm::Type getType() const;
|
||||||
unsigned int getVectorSize() const;
|
unsigned int getVectorSize() const;
|
||||||
|
|
||||||
|
|||||||
23
src/Engine/Parameter/PrmName.cpp
Normal file
23
src/Engine/Parameter/PrmName.cpp
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#include "Engine/Parameter/PrmName.h"
|
||||||
|
|
||||||
|
enzo::prm::Name::Name(bt::String token, bt::String label)
|
||||||
|
: token_{token}, label_{label}
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
enzo::prm::Name::Name()
|
||||||
|
: token_{""}, label_{""}
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
enzo::bt::String enzo::prm::Name::getToken() const
|
||||||
|
{
|
||||||
|
return token_;
|
||||||
|
}
|
||||||
|
|
||||||
|
enzo::bt::String enzo::prm::Name::getLabel() const
|
||||||
|
{
|
||||||
|
return label_;
|
||||||
|
}
|
||||||
19
src/Engine/Parameter/PrmName.h
Normal file
19
src/Engine/Parameter/PrmName.h
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Engine/Types.h"
|
||||||
|
namespace enzo::prm
|
||||||
|
{
|
||||||
|
class Name
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Name(bt::String token, bt::String label);
|
||||||
|
Name();
|
||||||
|
|
||||||
|
bt::String getToken() const;
|
||||||
|
bt::String getLabel() const;
|
||||||
|
private:
|
||||||
|
bt::String token_;
|
||||||
|
bt::String label_;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
#include "Engine/Parameter/Template.h"
|
#include "Engine/Parameter/Template.h"
|
||||||
#include "Engine/Parameter/Default.h"
|
#include "Engine/Parameter/Default.h"
|
||||||
#include "Engine/Parameter/Range.h"
|
#include "Engine/Parameter/Range.h"
|
||||||
#include "Engine/Parameter/Type.h"
|
#include "Engine/Types.h"
|
||||||
#include <icecream.hpp>
|
#include <icecream.hpp>
|
||||||
|
|
||||||
enzo::prm::Template::Template(enzo::prm::Type type, const char* name)
|
enzo::prm::Template::Template(enzo::prm::Type type, prm::Name name)
|
||||||
: Template(type, name, prm::Default())
|
: Template(type, name, prm::Default())
|
||||||
{
|
{
|
||||||
ranges_.resize(vectorSize_);
|
ranges_.resize(vectorSize_);
|
||||||
}
|
}
|
||||||
|
|
||||||
enzo::prm::Template::Template(enzo::prm::Type type, const char* name, unsigned int vectorSize)
|
enzo::prm::Template::Template(enzo::prm::Type type, prm::Name name, unsigned int vectorSize)
|
||||||
: Template(type, name, prm::Default(), vectorSize)
|
: Template(type, name, prm::Default(), vectorSize)
|
||||||
{
|
{
|
||||||
ranges_.resize(vectorSize_);
|
ranges_.resize(vectorSize_);
|
||||||
}
|
}
|
||||||
|
|
||||||
enzo::prm::Template::Template(enzo::prm::Type type, const char* name, std::vector<prm::Default> defaults, unsigned int vectorSize, std::vector<prm::Range> ranges)
|
enzo::prm::Template::Template(enzo::prm::Type type, prm::Name name, std::vector<prm::Default> defaults, unsigned int vectorSize, std::vector<prm::Range> ranges)
|
||||||
: type_{type}, name_{name}, defaults_{defaults}, vectorSize_(vectorSize)
|
: type_{type}, name_{name}, defaults_{defaults}, vectorSize_(vectorSize)
|
||||||
{
|
{
|
||||||
if(ranges.size()<vectorSize_)
|
if(ranges.size()<vectorSize_)
|
||||||
@@ -34,7 +34,7 @@ enzo::prm::Template::Template(enzo::prm::Type type, const char* name, std::vecto
|
|||||||
ranges_ = ranges;
|
ranges_ = ranges;
|
||||||
}
|
}
|
||||||
|
|
||||||
enzo::prm::Template::Template(enzo::prm::Type type, const char* name, prm::Default theDefault, unsigned int vectorSize, Range range)
|
enzo::prm::Template::Template(enzo::prm::Type type, prm::Name name, prm::Default theDefault, unsigned int vectorSize, Range range)
|
||||||
: type_{type}, name_{name}, vectorSize_(vectorSize)
|
: type_{type}, name_{name}, vectorSize_(vectorSize)
|
||||||
{
|
{
|
||||||
defaults_.resize(vectorSize_, theDefault);
|
defaults_.resize(vectorSize_, theDefault);
|
||||||
@@ -42,15 +42,16 @@ enzo::prm::Template::Template(enzo::prm::Type type, const char* name, prm::Defau
|
|||||||
}
|
}
|
||||||
|
|
||||||
enzo::prm::Template::Template()
|
enzo::prm::Template::Template()
|
||||||
|
: type_{enzo::prm::Type::LIST_TERMINATOR}
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool enzo::prm::Template::isValid() const
|
// bool enzo::prm::Template::isValid() const
|
||||||
{
|
// {
|
||||||
return name_!=nullptr;
|
// return name_!=nullptr;
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
const enzo::prm::Type enzo::prm::Template::getType() const
|
const enzo::prm::Type enzo::prm::Template::getType() const
|
||||||
{
|
{
|
||||||
@@ -79,9 +80,18 @@ const unsigned int enzo::prm::Template::getNumDefaults() const
|
|||||||
return defaults_.size();
|
return defaults_.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enzo::bt::String enzo::prm::Template::getName() const
|
||||||
const char* enzo::prm::Template::getName() const
|
|
||||||
{
|
{
|
||||||
return name_;
|
return name_.getToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
enzo::bt::String enzo::prm::Template::getToken() const
|
||||||
|
{
|
||||||
|
return name_.getToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
enzo::bt::String enzo::prm::Template::getLabel() const
|
||||||
|
{
|
||||||
|
return name_.getLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "Engine/Parameter/Default.h"
|
#include "Engine/Parameter/Default.h"
|
||||||
|
#include "Engine/Parameter/PrmName.h"
|
||||||
#include "Engine/Parameter/Range.h"
|
#include "Engine/Parameter/Range.h"
|
||||||
#include "Engine/Parameter/Type.h"
|
|
||||||
#include "Engine/Types.h"
|
#include "Engine/Types.h"
|
||||||
|
|
||||||
namespace enzo::prm
|
namespace enzo::prm
|
||||||
@@ -12,41 +12,44 @@ class Template
|
|||||||
public:
|
public:
|
||||||
Template(
|
Template(
|
||||||
enzo::prm::Type type,
|
enzo::prm::Type type,
|
||||||
const char* name
|
prm::Name name
|
||||||
);
|
);
|
||||||
Template(
|
Template(
|
||||||
enzo::prm::Type type,
|
enzo::prm::Type type,
|
||||||
const char* name,
|
prm::Name name,
|
||||||
unsigned int vectorSize
|
unsigned int vectorSize
|
||||||
);
|
);
|
||||||
Template(
|
Template(
|
||||||
enzo::prm::Type type,
|
enzo::prm::Type type,
|
||||||
const char* name,
|
prm::Name name,
|
||||||
std::vector<prm::Default> defaults,
|
std::vector<prm::Default> defaults,
|
||||||
unsigned int vectorSize = 1,
|
unsigned int vectorSize = 1,
|
||||||
std::vector<prm::Range> ranges=std::vector<prm::Range>()
|
std::vector<prm::Range> ranges=std::vector<prm::Range>()
|
||||||
);
|
);
|
||||||
Template(
|
Template(
|
||||||
enzo::prm::Type type,
|
enzo::prm::Type type,
|
||||||
const char* name,
|
prm::Name name,
|
||||||
prm::Default theDefault,
|
prm::Default theDefault,
|
||||||
unsigned int vectorSize = 1,
|
unsigned int vectorSize = 1,
|
||||||
Range range=Range()
|
Range range=Range()
|
||||||
);
|
);
|
||||||
Template();
|
Template();
|
||||||
const char* getName() const;
|
// get name and get token are identical
|
||||||
|
enzo::bt::String getName() const;
|
||||||
|
enzo::bt::String getToken() const;
|
||||||
|
enzo::bt::String getLabel() const;
|
||||||
const prm::Default getDefault(unsigned int index=0) const;
|
const prm::Default getDefault(unsigned int index=0) const;
|
||||||
const prm::Range& getRange(unsigned int index=0) const;
|
const prm::Range& getRange(unsigned int index=0) const;
|
||||||
const prm::Type getType() const;
|
const prm::Type getType() const;
|
||||||
const unsigned int getSize() const;
|
const unsigned int getSize() const;
|
||||||
const unsigned int getNumDefaults() const;
|
const unsigned int getNumDefaults() const;
|
||||||
bool isValid() const;
|
// bool isValid() const;
|
||||||
private:
|
private:
|
||||||
enzo::prm::Type type_;
|
enzo::prm::Type type_;
|
||||||
std::vector<prm::Default> defaults_;
|
std::vector<prm::Default> defaults_;
|
||||||
std::vector<prm::Range> ranges_;
|
std::vector<prm::Range> ranges_;
|
||||||
// TODO: make a class that holds token and name
|
// TODO: make a class that holds token and name
|
||||||
const char* name_;
|
prm::Name name_;
|
||||||
unsigned int vectorSize_;
|
unsigned int vectorSize_;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
namespace enzo::prm
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
// enum class Type
|
|
||||||
// {
|
|
||||||
// STRING,
|
|
||||||
// FLOAT,
|
|
||||||
// INT,
|
|
||||||
// };
|
|
||||||
|
|
||||||
|
|
||||||
// class Type
|
|
||||||
// {
|
|
||||||
|
|
||||||
// };
|
|
||||||
|
|
||||||
// const extern prm::Type FlOAT_TYPE;
|
|
||||||
// const extern prm::Type STRING_TYPE;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -39,6 +39,7 @@ namespace enzo
|
|||||||
{
|
{
|
||||||
enum class Type
|
enum class Type
|
||||||
{
|
{
|
||||||
|
LIST_TERMINATOR,
|
||||||
STRING,
|
STRING,
|
||||||
XYZ,
|
XYZ,
|
||||||
FLOAT,
|
FLOAT,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <qlabel.h>
|
#include <qlabel.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <icecream.hpp>
|
||||||
|
|
||||||
|
|
||||||
enzo::ui::FormParm::FormParm(std::weak_ptr<prm::Parameter> parameter)
|
enzo::ui::FormParm::FormParm(std::weak_ptr<prm::Parameter> parameter)
|
||||||
@@ -15,7 +16,7 @@ enzo::ui::FormParm::FormParm(std::weak_ptr<prm::Parameter> parameter)
|
|||||||
{
|
{
|
||||||
if(auto sharedParameter=parameter_.lock())
|
if(auto sharedParameter=parameter_.lock())
|
||||||
{
|
{
|
||||||
std::string name = sharedParameter->getName();
|
std::string name = sharedParameter->getLabel();
|
||||||
label_ = new QLabel(QString::fromStdString(name+":"));
|
label_ = new QLabel(QString::fromStdString(name+":"));
|
||||||
label_->setStyleSheet("QLabel{background: none}");
|
label_->setStyleSheet("QLabel{background: none}");
|
||||||
label_->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
|
label_->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
|
||||||
|
|||||||
@@ -71,9 +71,11 @@ void enzo::ui::IntSliderParm::paintEvent(QPaintEvent *event)
|
|||||||
painter.setPen(notchPen_);
|
painter.setPen(notchPen_);
|
||||||
QRectF markerLinesRect = rect();
|
QRectF markerLinesRect = rect();
|
||||||
markerLinesRect.adjust(margin, margin, -margin, -margin);
|
markerLinesRect.adjust(margin, margin, -margin, -margin);
|
||||||
for(int i=minValue_+1;i<maxValue_; ++i)
|
|
||||||
|
const int notchCount = std::min<int>(valueRange, 100);
|
||||||
|
for(int i=1;i<notchCount; ++i)
|
||||||
{
|
{
|
||||||
float x = ((i-minValue_)*markerLinesRect.width())/valueRange;
|
float x = ((i-1)*markerLinesRect.width())/notchCount;
|
||||||
x += notchWidth+4; // offset
|
x += notchWidth+4; // offset
|
||||||
const float y = markerLinesRect.bottom()-2;
|
const float y = markerLinesRect.bottom()-2;
|
||||||
painter.drawLine(x, y, x, y-5);
|
painter.drawLine(x, y, x, y-5);
|
||||||
|
|||||||
@@ -21,11 +21,13 @@ add_library(${libName} SHARED
|
|||||||
../Engine/Parameter/Parameter.cpp
|
../Engine/Parameter/Parameter.cpp
|
||||||
../Engine/Parameter/Default.cpp
|
../Engine/Parameter/Default.cpp
|
||||||
../Engine/Parameter/Range.cpp
|
../Engine/Parameter/Range.cpp
|
||||||
|
../Engine/Parameter/PrmName.cpp
|
||||||
GopTransform.cpp
|
GopTransform.cpp
|
||||||
GopHouse.cpp
|
GopHouse.cpp
|
||||||
GopTestCube.cpp
|
GopTestCube.cpp
|
||||||
GopGeometryImport.cpp
|
GopGeometryImport.cpp
|
||||||
GopGrid.cpp
|
GopGrid.cpp
|
||||||
|
GopSineWave.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(${libName} PRIVATE Qt6::Core Qt6::Widgets Qt6::SvgWidgets Qt6::OpenGLWidgets glm::glm Eigen3::Eigen TBB::tbb)
|
target_link_libraries(${libName} PRIVATE Qt6::Core Qt6::Widgets Qt6::SvgWidgets Qt6::OpenGLWidgets glm::glm Eigen3::Eigen TBB::tbb)
|
||||||
|
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ void GopGeometryImport::cookOp(enzo::op::Context context)
|
|||||||
|
|
||||||
enzo::prm::Template GopGeometryImport::parameterList[] =
|
enzo::prm::Template GopGeometryImport::parameterList[] =
|
||||||
{
|
{
|
||||||
enzo::prm::Template(enzo::prm::Type::STRING, "filePath"),
|
enzo::prm::Template(enzo::prm::Type::STRING, enzo::prm::Name("filePath", "File Path")),
|
||||||
enzo::prm::Template(enzo::prm::Type::FLOAT, "size", enzo::prm::Default(1)),
|
enzo::prm::Template(enzo::prm::Type::FLOAT, enzo::prm::Name("size", "Size"), enzo::prm::Default(1)),
|
||||||
enzo::prm::Terminator
|
enzo::prm::Terminator
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ void GopGrid::cookOp(enzo::op::Context context)
|
|||||||
{
|
{
|
||||||
const bt::floatT x = static_cast<bt::floatT>(i)/columns*width-centerOffsetX;
|
const bt::floatT x = static_cast<bt::floatT>(i)/columns*width-centerOffsetX;
|
||||||
const bt::floatT z = static_cast<bt::floatT>(j)/rows*height-centerOffsetY;
|
const bt::floatT z = static_cast<bt::floatT>(j)/rows*height-centerOffsetY;
|
||||||
geo.addPoint(bt::Vector3(x, sin(i+j)/10, z));
|
geo.addPoint(bt::Vector3(x, 0, z));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,17 +74,17 @@ void GopGrid::cookOp(enzo::op::Context context)
|
|||||||
|
|
||||||
enzo::prm::Template GopGrid::parameterList[] =
|
enzo::prm::Template GopGrid::parameterList[] =
|
||||||
{
|
{
|
||||||
enzo::prm::Template(enzo::prm::Type::XYZ, "size", enzo::prm::Default(10), 2, enzo::prm::Range(0, enzo::prm::RangeFlag::UNLOCKED, 100, enzo::prm::RangeFlag::UNLOCKED)),
|
enzo::prm::Template(enzo::prm::Type::XYZ, enzo::prm::Name("size", "Size"), enzo::prm::Default(10), 2, enzo::prm::Range(0, enzo::prm::RangeFlag::UNLOCKED, 100, enzo::prm::RangeFlag::UNLOCKED)),
|
||||||
enzo::prm::Template(
|
enzo::prm::Template(
|
||||||
enzo::prm::Type::INT,
|
enzo::prm::Type::INT,
|
||||||
"rows",
|
enzo::prm::Name("rows", "Rows"),
|
||||||
enzo::prm::Default(10),
|
enzo::prm::Default(10),
|
||||||
1,
|
1,
|
||||||
enzo::prm::Range(0, enzo::prm::RangeFlag::LOCKED, 100, enzo::prm::RangeFlag::UNLOCKED)
|
enzo::prm::Range(0, enzo::prm::RangeFlag::LOCKED, 100, enzo::prm::RangeFlag::UNLOCKED)
|
||||||
),
|
),
|
||||||
enzo::prm::Template(
|
enzo::prm::Template(
|
||||||
enzo::prm::Type::INT,
|
enzo::prm::Type::INT,
|
||||||
"columns",
|
enzo::prm::Name("columns", "Columns"),
|
||||||
enzo::prm::Default(10),
|
enzo::prm::Default(10),
|
||||||
1,
|
1,
|
||||||
enzo::prm::Range(0, enzo::prm::RangeFlag::LOCKED, 100, enzo::prm::RangeFlag::UNLOCKED)
|
enzo::prm::Range(0, enzo::prm::RangeFlag::LOCKED, 100, enzo::prm::RangeFlag::UNLOCKED)
|
||||||
|
|||||||
@@ -76,6 +76,6 @@ void GOP_house::cookOp(enzo::op::Context context)
|
|||||||
|
|
||||||
enzo::prm::Template GOP_house::parameterList[] =
|
enzo::prm::Template GOP_house::parameterList[] =
|
||||||
{
|
{
|
||||||
enzo::prm::Template(enzo::prm::Type::FLOAT, "size", 1),
|
enzo::prm::Template(enzo::prm::Type::FLOAT, enzo::prm::Name("size", "Size"), 1),
|
||||||
enzo::prm::Terminator
|
enzo::prm::Terminator
|
||||||
};
|
};
|
||||||
|
|||||||
46
src/OpDefs/GopSineWave.cpp
Normal file
46
src/OpDefs/GopSineWave.cpp
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#include "OpDefs/GopSineWave.h"
|
||||||
|
#include "Engine/Parameter/Range.h"
|
||||||
|
#include "Engine/Types.h"
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <oneapi/tbb/blocked_range.h>
|
||||||
|
#include <oneapi/tbb/parallel_for.h>
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
||||||
|
GopSineWave::GopSineWave(enzo::nt::NetworkManager* network, enzo::op::OpInfo opInfo)
|
||||||
|
: GeometryOpDef(network, opInfo)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void GopSineWave::cookOp(enzo::op::Context context)
|
||||||
|
{
|
||||||
|
using namespace enzo;
|
||||||
|
|
||||||
|
if(outputRequested(0))
|
||||||
|
{
|
||||||
|
geo::Geometry geo = context.cloneInputGeo(0);
|
||||||
|
|
||||||
|
const ga::Offset pointCount = geo.getNumPoints();
|
||||||
|
const bt::floatT frequency = context.evalFloatParm("frequency");
|
||||||
|
tbb::parallel_for(tbb::blocked_range<ga::Offset>(0, pointCount), [&geo, frequency](tbb::blocked_range<ga::Offset> range){
|
||||||
|
for(ga::Offset i=range.begin(); i!=range.end(); ++i)
|
||||||
|
{
|
||||||
|
bt::Vector3 pos = geo.getPointPos(i);
|
||||||
|
pos += bt::Vector3(0, sin(pos.x()*frequency), 0);
|
||||||
|
geo.setPointPos(i, pos);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
setOutputGeometry(0, geo);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
enzo::prm::Template GopSineWave::parameterList[] =
|
||||||
|
{
|
||||||
|
enzo::prm::Template(enzo::prm::Type::FLOAT, enzo::prm::Name("frequency", "Frequency"), enzo::prm::Default(1), 1),
|
||||||
|
enzo::prm::Terminator
|
||||||
|
};
|
||||||
18
src/OpDefs/GopSineWave.h
Normal file
18
src/OpDefs/GopSineWave.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Engine/Operator/GeometryOpDef.h"
|
||||||
|
#include "Engine/Parameter/Template.h"
|
||||||
|
|
||||||
|
class GopSineWave
|
||||||
|
: public enzo::nt::GeometryOpDef
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
GopSineWave(enzo::nt::NetworkManager* network, enzo::op::OpInfo opInfo);
|
||||||
|
virtual void cookOp(enzo::op::Context context);
|
||||||
|
static enzo::nt::GeometryOpDef* ctor(enzo::nt::NetworkManager* network, enzo::op::OpInfo opInfo)
|
||||||
|
{
|
||||||
|
return new GopSineWave(network, opInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
static BOOST_SYMBOL_EXPORT enzo::prm::Template parameterList[];
|
||||||
|
|
||||||
|
};
|
||||||
@@ -67,6 +67,6 @@ void GopTestGeoCube::cookOp(enzo::op::Context context)
|
|||||||
|
|
||||||
enzo::prm::Template GopTestGeoCube::parameterList[] =
|
enzo::prm::Template GopTestGeoCube::parameterList[] =
|
||||||
{
|
{
|
||||||
enzo::prm::Template(enzo::prm::Type::FLOAT, "size", 1),
|
enzo::prm::Template(enzo::prm::Type::FLOAT, enzo::prm::Name("size", "Size"), 1),
|
||||||
enzo::prm::Terminator
|
enzo::prm::Terminator
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -62,8 +62,8 @@ void GopTransform::cookOp(enzo::op::Context context)
|
|||||||
|
|
||||||
enzo::prm::Template GopTransform::parameterList[] =
|
enzo::prm::Template GopTransform::parameterList[] =
|
||||||
{
|
{
|
||||||
enzo::prm::Template(enzo::prm::Type::XYZ, "translate", 3),
|
enzo::prm::Template(enzo::prm::Type::XYZ, enzo::prm::Name("translate", "Translate"), 3),
|
||||||
enzo::prm::Template(enzo::prm::Type::XYZ, "rotate", 3),
|
enzo::prm::Template(enzo::prm::Type::XYZ, enzo::prm::Name("rotate", "Rotate"), 3),
|
||||||
enzo::prm::Terminator
|
enzo::prm::Terminator
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include "GopTestCube.h"
|
#include "GopTestCube.h"
|
||||||
#include "OpDefs/GopTransform.hpp"
|
#include "OpDefs/GopTransform.hpp"
|
||||||
#include "OpDefs/GopGrid.h"
|
#include "OpDefs/GopGrid.h"
|
||||||
|
#include "OpDefs/GopSineWave.h"
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/dll.hpp>
|
#include <boost/dll.hpp>
|
||||||
|
|
||||||
@@ -67,6 +68,17 @@ extern "C"
|
|||||||
1,
|
1,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
addOperator(
|
||||||
|
enzo::op::OpInfo {
|
||||||
|
"sineWave",
|
||||||
|
"Sine Wave",
|
||||||
|
&GopSineWave::ctor,
|
||||||
|
GopSineWave::parameterList,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user