began transform node and added vec2/3/4 data types
This commit is contained in:
@@ -69,6 +69,66 @@ void NodeParamViewWidgetBridge::CreateWidgets()
|
||||
connect(slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
break;
|
||||
}
|
||||
case NodeParam::kVec2:
|
||||
{
|
||||
QVector2D vec2 = base_input->get_value(0).value<QVector2D>();
|
||||
|
||||
FloatSlider* x_slider = new FloatSlider();
|
||||
x_slider->SetValue(static_cast<double>(vec2.x()));
|
||||
widgets_.append(x_slider);
|
||||
connect(x_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
|
||||
FloatSlider* y_slider = new FloatSlider();
|
||||
y_slider->SetValue(static_cast<double>(vec2.y()));
|
||||
widgets_.append(y_slider);
|
||||
connect(y_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
break;
|
||||
}
|
||||
case NodeParam::kVec3:
|
||||
{
|
||||
QVector3D vec3 = base_input->get_value(0).value<QVector3D>();
|
||||
|
||||
FloatSlider* x_slider = new FloatSlider();
|
||||
x_slider->SetValue(static_cast<double>(vec3.x()));
|
||||
widgets_.append(x_slider);
|
||||
connect(x_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
|
||||
FloatSlider* y_slider = new FloatSlider();
|
||||
y_slider->SetValue(static_cast<double>(vec3.y()));
|
||||
widgets_.append(y_slider);
|
||||
connect(y_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
|
||||
FloatSlider* z_slider = new FloatSlider();
|
||||
z_slider->SetValue(static_cast<double>(vec3.z()));
|
||||
widgets_.append(z_slider);
|
||||
connect(z_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
break;
|
||||
}
|
||||
case NodeParam::kVec4:
|
||||
{
|
||||
QVector4D vec4 = base_input->get_value(0).value<QVector4D>();
|
||||
|
||||
FloatSlider* x_slider = new FloatSlider();
|
||||
x_slider->SetValue(static_cast<double>(vec4.x()));
|
||||
widgets_.append(x_slider);
|
||||
connect(x_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
|
||||
FloatSlider* y_slider = new FloatSlider();
|
||||
y_slider->SetValue(static_cast<double>(vec4.y()));
|
||||
widgets_.append(y_slider);
|
||||
connect(y_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
|
||||
FloatSlider* z_slider = new FloatSlider();
|
||||
z_slider->SetValue(static_cast<double>(vec4.z()));
|
||||
widgets_.append(z_slider);
|
||||
connect(z_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
|
||||
FloatSlider* w_slider = new FloatSlider();
|
||||
w_slider->SetValue(static_cast<double>(vec4.w()));
|
||||
widgets_.append(w_slider);
|
||||
connect(w_slider, SIGNAL(ValueChanged(double)), this, SLOT(WidgetCallback()));
|
||||
break;
|
||||
}
|
||||
case NodeParam::kFile:
|
||||
// FIXME: File selector
|
||||
break;
|
||||
@@ -143,6 +203,69 @@ void NodeParamViewWidgetBridge::WidgetCallback()
|
||||
input->set_value(float_slider->GetValue());
|
||||
break;
|
||||
}
|
||||
case NodeParam::kVec2:
|
||||
{
|
||||
// Widgets are two FloatSliders
|
||||
FloatSlider* slider = static_cast<FloatSlider*>(sender());
|
||||
|
||||
QVector2D val = input->get_value(0).value<QVector2D>();
|
||||
|
||||
if (slider == widgets_.at(0)) {
|
||||
// Slider is X slider
|
||||
val.setX(static_cast<float>(slider->GetValue()));
|
||||
} else {
|
||||
// Slider is Y slider
|
||||
val.setY(static_cast<float>(slider->GetValue()));
|
||||
}
|
||||
|
||||
input->set_value(val);
|
||||
break;
|
||||
}
|
||||
case NodeParam::kVec3:
|
||||
{
|
||||
// Widgets are three FloatSliders
|
||||
FloatSlider* slider = static_cast<FloatSlider*>(sender());
|
||||
|
||||
QVector3D val = input->get_value(0).value<QVector3D>();
|
||||
|
||||
if (slider == widgets_.at(0)) {
|
||||
// Slider is X slider
|
||||
val.setX(static_cast<float>(slider->GetValue()));
|
||||
} else if (slider == widgets_.at(1)) {
|
||||
// Slider is Y slider
|
||||
val.setY(static_cast<float>(slider->GetValue()));
|
||||
} else {
|
||||
// Slider is Z slider
|
||||
val.setZ(static_cast<float>(slider->GetValue()));
|
||||
}
|
||||
|
||||
input->set_value(val);
|
||||
break;
|
||||
}
|
||||
case NodeParam::kVec4:
|
||||
{
|
||||
// Widgets are three FloatSliders
|
||||
FloatSlider* slider = static_cast<FloatSlider*>(sender());
|
||||
|
||||
QVector4D val = input->get_value(0).value<QVector4D>();
|
||||
|
||||
if (slider == widgets_.at(0)) {
|
||||
// Slider is X slider
|
||||
val.setX(static_cast<float>(slider->GetValue()));
|
||||
} else if (slider == widgets_.at(1)) {
|
||||
// Slider is Y slider
|
||||
val.setY(static_cast<float>(slider->GetValue()));
|
||||
} else if (slider == widgets_.at(2)) {
|
||||
// Slider is Z slider
|
||||
val.setZ(static_cast<float>(slider->GetValue()));
|
||||
} else {
|
||||
// Slider is W slider
|
||||
val.setW(static_cast<float>(slider->GetValue()));
|
||||
}
|
||||
|
||||
input->set_value(val);
|
||||
break;
|
||||
}
|
||||
case NodeParam::kFile:
|
||||
// FIXME: File selector
|
||||
break;
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "config/config.h"
|
||||
#include "common/qtversionabstraction.h"
|
||||
#include "node/distort/transform/transform.h"
|
||||
#include "node/input/media/media.h"
|
||||
|
||||
TimelineView::ImportTool::ImportTool(TimelineView *parent) :
|
||||
@@ -155,15 +156,18 @@ void TimelineView::ImportTool::DragDrop(QDropEvent *event)
|
||||
foreach (TimelineViewGhostItem* ghost, parent()->ghost_items_) {
|
||||
ClipBlock* clip = new ClipBlock();
|
||||
MediaInput* media = new MediaInput();
|
||||
TransformDistort* transform = new TransformDistort();
|
||||
|
||||
// Set parents to node_memory_manager in case no TimelineOutput receives this signal
|
||||
clip->setParent(&node_memory_manager);
|
||||
media->setParent(&node_memory_manager);
|
||||
transform->setParent(&node_memory_manager);
|
||||
|
||||
clip->set_length(ghost->Length());
|
||||
media->SetFootage(ghost->data(0).value<StreamPtr>()->footage());
|
||||
|
||||
NodeParam::ConnectEdge(media->texture_output(), clip->texture_input());
|
||||
NodeParam::ConnectEdge(transform->matrix_output(), media->matrix_input());
|
||||
|
||||
if (event->keyboardModifiers() & Qt::ControlModifier) {
|
||||
//emit parent()->RequestInsertBlockAtTime(clip, ghost->GetAdjustedIn());
|
||||
|
||||
Reference in New Issue
Block a user