private static void DumpInstanceDefinition(InstanceDefinition instanceDefinition, ref TextLog dump, bool isRoot) { if (instanceDefinition != null && !instanceDefinition.IsDeleted) { string node = isRoot ? "─" : "└"; dump.Print(string.Format("{0} Instance definition {1} = {2}\n", node, instanceDefinition.Index, instanceDefinition.Name)); if (instanceDefinition.ObjectCount > 0) { dump.PushIndent(); for (int i = 0; i < instanceDefinition.ObjectCount; i++) { var obj = instanceDefinition.Object(i); if (obj == null) { continue; } if (obj is InstanceObject) { DumpInstanceDefinition((obj as InstanceObject).InstanceDefinition, ref dump, false); // Recursive... } else { dump.Print("\u2514 Object {0} = {1}\n", i, obj.ShortDescription(false)); } } dump.PopIndent(); } } }
/// <summary> /// Recursive function to print the contents of an instance definition /// </summary> protected void DumpInstanceDefinition(InstanceDefinition idef, ref int indent) { if (null != idef && !idef.IsDeleted) { const string line = "\u2500"; const string corner = "\u2514"; var node = (0 == indent) ? line : corner; var str = new string(' ', indent * 2); RhinoApp.WriteLine($"{str}{node} Instance definition {idef.Index} = {idef.Name}"); var idef_object_count = idef.ObjectCount; if (idef_object_count > 0) { indent++; str = new string(' ', indent * 2); for (var i = 0; i < idef_object_count; i++) { var obj = idef.Object(i); if (null != obj) { if (obj is InstanceObject iref) { DumpInstanceDefinition(iref.InstanceDefinition, ref indent); } else { RhinoApp.WriteLine($"{str}{corner} Object {i} = {obj.ShortDescription(false)}\n"); } } } indent--; } } }
private void DumpInstanceDefinition(InstanceDefinition instanceDefinition, ref TextLog dump, bool isRoot) { if (instanceDefinition != null && !instanceDefinition.IsDeleted) { string node = isRoot ? "─" : "└"; dump.Print(string.Format("{0} Instance definition {1} = {2}\n", node, instanceDefinition.Index, instanceDefinition.Name)); if (instanceDefinition.ObjectCount > 0) { dump.PushIndent(); for (int i = 0; i < instanceDefinition.ObjectCount ; i++) { var obj = instanceDefinition.Object(i); if (obj == null) continue; if (obj is InstanceObject) DumpInstanceDefinition((obj as InstanceObject).InstanceDefinition, ref dump, false); // Recursive... else dump.Print("\u2514 Object {0} = {1}\n", i, obj.ShortDescription(false)); } dump.PopIndent(); } } }
/// <summary> /// Recursive function to print the contents of an instance definition /// </summary> protected void DumpInstanceDefinition(InstanceDefinition idef, ref int indent) { if (null != idef && !idef.IsDeleted) { const string line = "\u2500"; const string corner = "\u2514"; var node = (0 == indent) ? line : corner; var str = new string(' ', indent * 2); RhinoApp.WriteLine(string.Format("{0}{1} Instance definition {2} = {3}", str, node, idef.Index, idef.Name)); var idef_object_count = idef.ObjectCount; if (idef_object_count > 0) { indent++; str = new string(' ', indent * 2); for (var i = 0; i < idef_object_count; i++) { var obj = idef.Object(i); if (null != obj) { var iref = obj as InstanceObject; if (null != iref) { DumpInstanceDefinition(iref.InstanceDefinition, ref indent); } else { RhinoApp.WriteLine(string.Format("{0}{1} Object {2} = {3}\n", str, corner, i, obj.ShortDescription(false))); } } } indent--; } } }