Files
nodeeditor/examples/calculator/MathOperationDataModel.cpp
David Bachrati 64dd7d491a Implement automatic insertion of typecast nodes (#52)
* Automatic type cast node insertation working in a basic manner

* Port paint fix to handle convertible types

* Code cleanup, documentation,, and minor fixes

* Fixing master merge

* Master merge fix 2

* Master merge fix 3

* Code style fixes

* Fixing logic error, where typecast node with the same input-output types were permitted

* Fixes based on @russelltg 's suggestions

* Got rid of unique_ptr static_casts

* Partial fixes from the code review

* Merging master into branch vol. 3
2017-01-30 18:03:49 +01:00

70 lines
980 B
C++

#include "MathOperationDataModel.hpp"
#include "DecimalData.hpp"
unsigned int
MathOperationDataModel::
nPorts(PortType portType) const
{
unsigned int result;
if (portType == PortType::In)
result = 2;
else
result = 1;
return result;
}
NodeDataType
MathOperationDataModel::
dataType(PortType, PortIndex) const
{
return DecimalData().type();
}
std::shared_ptr<NodeData>
MathOperationDataModel::
outData(PortIndex)
{
return std::static_pointer_cast<NodeData>(_result);
}
void
MathOperationDataModel::
setInData(std::shared_ptr<NodeData> data, PortIndex portIndex)
{
auto numberData =
std::dynamic_pointer_cast<DecimalData>(data);
if (portIndex == 0)
{
_number1 = numberData;
}
else
{
_number2 = numberData;
}
compute();
}
NodeValidationState
MathOperationDataModel::
validationState() const
{
return modelValidationState;
}
QString
MathOperationDataModel::
validationMessage() const
{
return modelValidationError;
}