Accessing node data¶
What is a graph “node”?¶
A node represents an operation in InstantTerra, i.e. the generation of a terrain using a noise or even an erosion simulation.
These nodes and their parameters are accessible directly via the API.
// Create an instance
InstantTerraApi::InstantTerra it = InstantTerraApi::CreateInstantTerra();
// Get the current graph
InstantTerraApi::Graph graph = it.GetProject().GetGraph();
// Get the first node of the graph
InstantTerraApi::Node node = graph.GetNode(0);
Getting the node name¶
// Get the length of the name
size_t nameLength = node.GetNameLength();
// Get the name
wchar_t *name = Malloc(nameLength * sizeof(wchar_t));
node.GetName(name, nameLength);
See GetNameLength()
and
GetName(wchar_t *buffer, size_t bufferSize)
in the documentation.
Getting the node comment¶
// Get the length of the comment
size_t commentLength = node.GetCommentLength();
// Get the comment
wchar_t *comment = Malloc(commentLength * sizeof(wchar_t));
node.GetComment(comment, commentLength);
See GetCommentLength()
and
GetComment(wchar_t *buffer, size_t bufferSize)
in the documentation.
Getting the node model¶
NodeModel model = node.GetNodeModel();
See GetNodeModel()
in the documentation.
Getting the parameters count¶
// Returns the number of node parameters
int parameterCount = node.GetParameterCount();
See GetParameterCount()
in the documentation.
Determining if a parameter exists¶
// Returns true if the parameter exist
bool hasParameter = node.HasParameter(L"ParameterName"))
See HasParameter(wchar_t *name)
in the documentation.
Retrieving the parameter name¶
// Get the length of the parameter name
size_t parameterNameLength = node.GetParameterNameLength();
// Get the first parameter name
wchar_t *name = Malloc(parameterNameLength * sizeof(wchar_t));
node.GetParameterName(0, name, parameterNameLength);
See GetParameterNameLength(int parameterIndex)
and
GetParameterName(int parameterIndex, wchar_t *buffer, size_t bufferSize)
in the documentation.
Retrieving the parameter value¶
wchar_t parameterName[] = L"ParameterName";
// Get the length of the parameter value
size_t parameterValueLength = node.GetParameterValueLength(parameterName);
// Get the parameter value
wchar_t *value = Malloc(parameterValueLength * sizeof(wchar_t));
node.GetParameterValue(parameterName, value, parameterValueLength);
See GetParameterValueLength(wchar_t *name)
and
GetParameterValue(wchar_t *name, wchar_t *buffer, size_t bufferSize)
in the documentation.
Getting the node connector count¶
// Returns the number of node connectors
int connectorCount = node.GetConnectorCount();
See GetConnectorCount()
in the documentation.
Retrieving the node connector¶
// Get the first connector
Connector connector = node.GetConnector(0);
See GetConnector(int index)
in the documentation.
Retrieving node data¶
// Get the node data of the first connector
Connector firstConnector = node.GetConnector(0);
// Get the data
Data data = node.GetData(firstConnector);
See GetData(Connector connector)
in the documentation.