From f7813a5324be39d13ab536c245d15dfc602a7849 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sun, 29 Dec 2013 12:19:38 +0000 Subject: basic type mechanism working --- NT/src/rotor.cpp | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'NT/src/rotor.cpp') diff --git a/NT/src/rotor.cpp b/NT/src/rotor.cpp index 056736d..ca15423 100644 --- a/NT/src/rotor.cpp +++ b/NT/src/rotor.cpp @@ -5,15 +5,43 @@ using namespace std; using namespace Rotor; +template +void Rotor::Variable_type::init(std::string s){ + std::istringstream cur(s); +cur >> value; + //std::cout< +bool Rotor::Variable_type::connect(Node* target){ + if (connectable){ + if (dynamic_cast*>(target)){ + connection=target; + return true; + } + } + return false; + } + +template +const T& Rotor::Variable_type::get(const Frame_parameters &frame){ + if (connection){ + return (dynamic_cast*>(connection))->get_output(frame); + } + return value; + } + int main(){ Rotor::time t; multiply m; map settings={{"value","2"}}; m.init(settings); - if (m.connect("inlet",&t)) printf("connected!\n"); - else printf("not connected...\n"); + if (!m.connect("inlet",&t)) printf("not connected...\n"); +Rotor::print p; +if (!p.connect("inlet",&m)) printf("not connected...\n"); for (double t=0;t<10.0;t+=0.765){ Frame_parameters f=Frame_parameters(t,25.0,10.0,640,360); - printf() + printf("%04f %s\n",t,p.get_output(f).c_str()); + } -} \ No newline at end of file +} -- cgit v1.2.3