Пример #1
0
    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();
            }
        }
    }
Пример #2
0
        /// <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();
        }
      }
    }
Пример #4
0
        /// <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--;
                }
            }
        }