Beispiel #1
0
        // Get.. methods to retrieve list of specific instance types



        // add specific node child elements e.g. instance_geometry
        public void AddInstanceGeometry(string geoUrlName, string[] materialNames = null)
        {
            InstanceGeometry instance = new InstanceGeometry(geoUrlName);

            this.instance_geometry.Add(instance);
            if (materialNames != null && materialNames.Length > 0)
            {
                instance.bind_material = new BindMaterial(materialNames);
            }
        }
        /// <summary>
        /// sets the bind materials to material instances regarding to the given material name array
        /// </summary>
        /// <param name="instGeometry">Instance_Geometry object which bind material should be set</param>
        /// <param name="matName">array of material names which are used to create material instances from</param>
        public static void SetBindMaterial(InstanceGeometry instGeometry, string[] matName)
        {
            if (matName != null || matName.Length > 0)
            {
                BindMaterial bindMaterial = new BindMaterial();
                bindMaterial.materialInstances = new InstanceMaterial[matName.Length];
                for (int i = 0; i < matName.Length; i++)
                {
                    bindMaterial.materialInstances[i] = new InstanceMaterial(matName[i], "#" + matName[i]);
                }

                instGeometry.bind_material = bindMaterial;
            }
        }