コード例 #1
0
        /// <summary>
        /// Standard constructed for a nested block instance.
        /// This will recursively search the given rhinodoc and build
        /// a nested list of nested blocks...
        /// </summary>
        /// <param name="def"></param>
        public NestedBlock(InstanceDefinition def, NestedBlock parent = null, ChildBlockInsertionParameters relativeInsertion = null)
        {
            // store head (original definition)
            Definition        = def;
            Parent            = parent;
            RelativeInsertion = relativeInsertion != null ? relativeInsertion : RelativeInsertion =
                ChildBlockInsertionParameters.Identity;

            var partDefinitions = def.GetPartDefinitions();
            var partXforms      = def.GetPartRelativeXforms();

            foreach (var element in partDefinitions.Zip(partXforms, (definition, xform) => new { definition, xform }))
            {
                // recursion (•_•) ( •_•)>⌐■-■ (⌐■_■)
                Add(new NestedBlock(element.definition, this, element.xform));
            }
        }
コード例 #2
0
 public ReferencedBlock(NestedBlock nested)
 {
     Definition = nested.Definition;
     BlockInsertionParameters = nested.RelativeInsertion;
 }
コード例 #3
0
 public ReferencedBlock(InstanceDefinition definition, ChildBlockInsertionParameters blockInsertionParameters)
 {
     Definition = definition;
     BlockInsertionParameters = blockInsertionParameters;
 }