// 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; } }