From 13a393486b645b1d839a6bd1d439027853544a5a Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 17 May 2019 18:44:54 +1000 Subject: [PATCH] created block node type --- nodes/nodes/nodeblock.cpp | 29 +++++++++++++++++++++++++++++ nodes/nodes/nodeblock.h | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 nodes/nodes/nodeblock.cpp create mode 100644 nodes/nodes/nodeblock.h diff --git a/nodes/nodes/nodeblock.cpp b/nodes/nodes/nodeblock.cpp new file mode 100644 index 000000000..fc0ca9472 --- /dev/null +++ b/nodes/nodes/nodeblock.cpp @@ -0,0 +1,29 @@ +#include "nodeblock.h" + +NodeBlock::NodeBlock(NodeGraph *graph) : + Node(graph) +{ + previous_block_ = new NodeIO(this, "prev_block", tr("Previous"), true, false); + previous_block_->AddAcceptedNodeInput(olive::nodes::kBlock); + + AddParameter(previous_block_); + + next_block_ = new NodeIO(this, "next_block", tr("Next"), true, false); + previous_block_->SetOutputDataType(olive::nodes::kBlock); + AddParameter(next_block_); +} + +QString NodeBlock::name() +{ + return tr("Block"); +} + +QString NodeBlock::id() +{ + return "block"; +} + +NodeBlock *NodeBlock::previous_block() +{ + +} diff --git a/nodes/nodes/nodeblock.h b/nodes/nodes/nodeblock.h new file mode 100644 index 000000000..8d70adecd --- /dev/null +++ b/nodes/nodes/nodeblock.h @@ -0,0 +1,37 @@ +#ifndef NODEBLOCK_H +#define NODEBLOCK_H + +#include "global/rational.h" +#include "nodes/node.h" + +/** + * @brief The NodeBlock class + * + * A "Block" node is a node with a timed in-point and out-point that can appear on the Timeline. + */ +class NodeBlock : public Node +{ + Q_OBJECT +public: + NodeBlock(NodeGraph* graph); + + const olive::rational& track_in(); + const olive::rational& track_out(); + + const olive::rational& length(); + void set_length(const olive::rational& l); + + virtual QString name() override; + virtual QString id() override; + + NodeBlock* previous_block(); + NodeBlock* next_block(); + +private: + olive::rational length_; + + NodeIO* previous_block_; + NodeIO* next_block_; +}; + +#endif // NODEBLOCK_H