CImplicitFunction

class Lib3MF::CImplicitFunction : public CFunction
std::string GetIdentifier()

Retrieves the identifier of the function

Returns:

the identifier

void SetIdentifier(const std::string &sIdentifier)

Sets the identifier of the function

Parameters:

sIdentifier – the identifier

PImplicitNode AddNode(const eImplicitNodeType eNodeType, const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a node

Parameters:
  • eNodeType – the type of the node

  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PSinNode AddSinNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a SinNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PCosNode AddCosNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a CosNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PTanNode AddTanNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a TanNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PArcSinNode AddArcSinNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a ArcSinNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PArcCosNode AddArcCosNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a ArcCosNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PArcTan2Node AddArcTan2Node(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a ArcTan2Node

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PSinhNode AddSinhNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a SinhNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PCoshNode AddCoshNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a CoshNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PTanhNode AddTanhNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a TanhNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PRoundNode AddRoundNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a RoundNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PCeilNode AddCeilNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a CeilNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PFloorNode AddFloorNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a FloorNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PSignNode AddSignNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a SignNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PFractNode AddFractNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a FractNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PAbsNode AddAbsNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a AbsNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PExpNode AddExpNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a ExpNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PLogNode AddLogNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a LogNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PLog2Node AddLog2Node(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a Log2Node

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PLog10Node AddLog10Node(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a Log10Node

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PLengthNode AddLengthNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a LengthNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PTransposeNode AddTransposeNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a TransposeNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PInverseNode AddInverseNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a InverseNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PSqrtNode AddSqrtNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a SqrtNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PResourceIdNode AddResourceIdNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a ResourceIdNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PAdditionNode AddAdditionNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add an AdditionNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PSubtractionNode AddSubtractionNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a SubtractionNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PMultiplicationNode AddMultiplicationNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a MultiplicationNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PDivisionNode AddDivisionNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a DivisionNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PDotNode AddDotNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a DotNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PCrossNode AddCrossNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a CrossNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PMatVecMultiplicationNode AddMatVecMultiplicationNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a MatVecMultiplicationNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PMinNode AddMinNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a MinNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PMaxNode AddMaxNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a MaxNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PFmodNode AddFmodNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a FmodNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PPowNode AddPowNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a PowNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PSelectNode AddSelectNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a SelectNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PClampNode AddClampNode(const std::string &sIdentifier, const eImplicitNodeConfiguration eConfiguration, const std::string &sDisplayName, const std::string &sTag)

Add a ClampNode

Parameters:
  • sIdentifier – the identifier of the node

  • eConfiguration – the configuration of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PComposeVectorNode AddComposeVectorNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a ComposeVectorNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PVectorFromScalarNode AddVectorFromScalarNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a VectorFromScalar

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PDecomposeVectorNode AddDecomposeVectorNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a DecomposeVectorNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PComposeMatrixNode AddComposeMatrixNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a ComposeMatrixNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PMatrixFromRowsNode AddMatrixFromRowsNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a MatrixFromRowsNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PMatrixFromColumnsNode AddMatrixFromColumnsNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a MatrixFromColumnsNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PConstantNode AddConstantNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a ConstantNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PConstVecNode AddConstVecNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a ConstVecNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PConstMatNode AddConstMatNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a ConstMatNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PMeshNode AddMeshNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a MeshNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PUnsignedMeshNode AddUnsignedMeshNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a UnsignedMeshNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PBeamLatticeNode AddBeamLatticeNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a BeamLatticeNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PFunctionGradientNode AddFunctionGradientNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a FunctionGradientNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PNormalizeDistanceNode AddNormalizeDistanceNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a NormalizeDistanceNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PFunctionCallNode AddFunctionCallNode(const std::string &sIdentifier, const std::string &sDisplayName, const std::string &sTag)

Add a FunctionCallNode

Parameters:
  • sIdentifier – the identifier of the node

  • sDisplayName – the display name of the node

  • sTag – the tag of the node

Returns:

the added node

PNodeIterator GetNodes()

Retrieves the nodes

Returns:

iterator for the list of nodes

void RemoveNode(classParam<CImplicitNode> pNode)

Removes a node

Parameters:

pNode – The node to be removed

void AddLink(classParam<CImplicitPort> pSource, classParam<CImplicitPort> pTarget)

Add a link

Parameters:
  • pSource – the source port

  • pTarget – the target port

void AddLinkByNames(const std::string &sSource, const std::string &sTarget)

Add a link

Parameters:
  • sSource – name of the source port in the format nodename.portname

  • sTarget – name of the target port in the format nodename.portname

void Clear()

Clears the function

void SortNodesTopologically()

Sorts the nodes topologically

typedef std::shared_ptr<CImplicitFunction> Lib3MF::PImplicitFunction

Shared pointer to CImplicitFunction to easily allow reference counting.