// Copyright (C) 1999 Jean-Marc Valin
#include "BufferedNode.h"
#include "Buffer.h"
#include "operators.h"
using namespace std;
namespace FD {
class Sub;
DECLARE_NODE(Sub)
/*Node
*
* @name Sub
* @category Operator
* @description Subtracts two values, Vectors, Objects
*
* @input_name INPUT1
* @input_description The value to subtract from
*
* @input_name INPUT2
* @input_description The subtracted value
*
* @output_name OUTPUT
* @output_description The result of the subtraction
*
END*/
class Sub : public BufferedNode {
int m_input1ID;
int m_outputID;
public:
Sub(string nodeName, ParameterSet params)
: BufferedNode(nodeName, params)
{
m_input1ID = addInput("INPUT1");
m_outputID = addOutput("OUTPUT");
}
virtual int translateInput (string inputName)
{
for (unsigned int i=0; i< inputs.size(); i++)
{
if (inputs[i].name == inputName)
{
return i;
}
}
return addInput(inputName);
}
void calculate(int output_id, int count, Buffer &out)
{
ObjectRef ReturnValue = getInput(m_input1ID, count);
for (int j = 1; j < inputs.size(); j++)
{
ObjectRef inputValue = getInput(j, count);
ReturnValue = ReturnValue - inputValue;
}
out[count] = ReturnValue;
}
NO_ORDER_NODE_SPEEDUP(Sub)
};
}//namespace FD
syntax highlighted by Code2HTML, v. 0.9.1