本文整理汇总了C#中Graph.GetNode方法的典型用法代码示例。如果您正苦于以下问题:C# Graph.GetNode方法的具体用法?C# Graph.GetNode怎么用?C# Graph.GetNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Graph
的用法示例。
在下文中一共展示了Graph.GetNode方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnEnable
void OnEnable()
{
grid = GameObject.Find("PathFinder").GetComponent<Graph>();
Node node = grid.GetNode(this.transform.position);
nodes = grid.GetAdjacents(node);
nodes.Add(node);
foreach(Node n in nodes)
{
print(n.myWorldPosition);
n.walkable = false;
}
}
示例2: BuildGraph
// build a directed graph from a series of strings
// each contains two node names and indicate a directed edge
// between the nodes from the first one to the second one
public void BuildGraph(List<String> listOfEdges)
{
myGraph = new Graph<Char>();
foreach (String s in listOfEdges)
{
Match m = ParseInputLine(s);
if (m.Success)
{
Char nodeName = Char.Parse(m.Groups["fromNode"].Value);
GraphNode<Char> fromNode = myGraph.GetNode(nodeName);
if (fromNode == null)
{
fromNode = myGraph.AddNode(nodeName);
}
nodeName = Char.Parse(m.Groups["toNode"].Value);
GraphNode<Char> toNode = myGraph.GetNode(nodeName);
if (toNode == null)
{
toNode = myGraph.AddNode(nodeName);
}
myGraph.AddEdge(fromNode, toNode, true);
}
}
}
示例3: GetNodeByPos
public static Graph<TilingNodeInfo, TilingEdgeInfo>.Node GetNodeByPos(Graph<TilingNodeInfo, TilingEdgeInfo> graph, int x, int y, int width)
{
return graph.GetNode(GetNodeIdFromPos(x, y,width));
}
示例4: readbuildfile
public KeyValuePair<Graph<string>, Dictionary<string, BuildElement>> readbuildfile(string absfilepath)
{
XmlTextReader reader = new XmlTextReader(absfilepath);
Graph<string> buildgraph = new Graph<string>();
Dictionary<string, BuildElement> buildelements = new Dictionary<string, BuildElement>();
string name = "";
string extension = "";
string instruction = "";
string source = "";
string target = "";
bool dep = false;
bool command = false;
BuildElement element = null;
try
{
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // The node is an element.
Console.Write("<" + reader.Name);
if (reader.Name == "file")
{
element = new BuildElement();
while (reader.MoveToNextAttribute())// Read the attributes.
{
if (reader.Name == "name")
{
name = reader.Value;
source = reader.Value;
extension = System.IO.Path.GetExtension(reader.Value);
element.setName(name);
element.setExtension(extension);
buildelements.Add(name, element);
//buildgraph.AddNode(name);
}
Console.Write(" " + reader.Name + "='" + reader.Value + "'");
}
}
if (reader.Name == "dep")
{
dep = true;
}
if (reader.Name == "command")
{
command = true;
}
Console.WriteLine(">");
break;
case XmlNodeType.Text: //Display the text in each element.
if (dep)
{
target = reader.Value;
if (!buildgraph.Contains(source))
buildgraph.AddNode(source);
if (!buildgraph.Contains(target))
buildgraph.AddNode(target);
buildgraph.AddDirectedEdge((GraphNode<string>)buildgraph.GetNode(source), (GraphNode<string>)buildgraph.GetNode(target), 1);
buildelements[source].dependencies.Add(target);
target = "";
dep = false;
}
if (command)
{
buildelements[name].setBuildInstruction(reader.Value);
command = false;
}
Console.WriteLine(reader.Value);
break;
case XmlNodeType.EndElement: //Display the end of the element.
if (reader.Name == "file")
{
element = null;
}
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
}
}
}
catch (Exception e)
{
Console.WriteLine("Exception in XmlReader: "+e.Message);
}
return new KeyValuePair<Graph<string>, Dictionary<string, BuildElement>>(buildgraph, buildelements);
}
示例5: LoadLayout
//.........这里部分代码省略.........
else if ((category & 2) == 2) {
nodeObject = Instantiate(heapPrefab, new Vector3(x, y, z), Quaternion.identity) as Function;
scale = 2.0f;
} else {
nodeObject = Instantiate(defaultPrefab, new Vector3(x, y, z), Quaternion.identity) as Function;
}
nodeObject.funcname = j[i]["name"];
nodeObject.address = ulong.Parse(j[i]["address"]);
nodeObject.attributes = category;
if (j[i]["size"] != null) {
nodeObject.size = int.Parse(j[i]["size"]);
} else {
nodeObject.size = 0;
}
nodeObject.module_name = j[i]["module_name"];
nodeObject.functag = j[i]["tag"];
nodeObject.comment = j[i]["comment"];
nodeObject.longname = j[i]["long_name"];
nodeObject.basic_blk_cnt = int.Parse(j[i]["basic_blk_cnt"]);
if (j[i]["dangerous_list"] != null) {
nodeObject.dangerous_calls = new string[j[i]["dangerous_list"].Count];
for (int c = 0; c < j[i]["dangerous_list"].Count; c++) {
nodeObject.dangerous_calls[c] = j[i]["dangerous_list"][c];
}
}
if (j[i]["strings"] != null) {
nodeObject.strings = new string[j[i]["strings"].Count];
for (int c = 0; c < j[i]["strings"].Count; c++) {
nodeObject.strings[c] = j[i]["strings"][c];
}
}
nodeObject.transform.localScale += new Vector3(scale, scale, scale);
nodes.Add(nodeObject.address, nodeObject);
// For force directed graph
NodeData data = new NodeData();
data.label = nodeObject.address.ToString();
data.mass = (float)nodeObject.size / 50.0f + 10.0f;
graph.CreateNode(data);
statusText.text = "Loading Functions: Function " + nodeObject.funcname;
if(i % 100 == 0)
yield return true;
}
j = JSON.Parse(rawJson);
j = j["callgraph"];
for(int i = 0; i < j.Count; i++) {
ulong srcid = ulong.Parse(j[i]["source"]);
ulong dstid = ulong.Parse(j[i]["target"]);
if (FindDupLink (srcid, dstid)) {
continue;
}
Link linkObject = Instantiate(linkPrefab, new Vector3(0, 0, 0), Quaternion.identity) as Link;
linkObject.id = i+1;
linkObject.sourceId = srcid;
linkObject.targetId = dstid;
links.Add(linkObject.id, linkObject);
// For force directed graph
Node node1 = graph.GetNode(linkObject.sourceId.ToString());
Node node2 = graph.GetNode(linkObject.targetId.ToString());
EdgeData data = new EdgeData();
data.label = linkObject.sourceId.ToString()+"-"+linkObject.targetId.ToString();
data.length = 1.0f;
graph.CreateEdge(node1, node2, data);
statusText.text = "Loading Callgraph: Call " + linkObject.id.ToString();
if(i % 100 == 0)
yield return true;
}
// Map node edges
MapLinkFunctions();
// For force directed graph
physics = new ForceDirected3D(graph, // instance of Graph
stiffness, // stiffness of the spring
repulsion, // node repulsion rate
damping // damping rate
);
render = new FDRenderer(physics);
render.setController(this);
statusText.text = "";
Camera.main.transform.LookAt (new Vector3 (0f, 0f, 0f));
renderThread = new Thread(new ThreadStart(FDRenderThread));
renderThread.Start ();
}