/// <summary> /// Creates a new hierarchy node info by using the DefinitionNodeInfo as a base, and using InstanceParentNodeInfo for creating a unique name. Used when instancing block definitions. /// </summary> /// <param name="InstanceParentNodeInfo"></param> /// <param name="DefinitionNodeInfo"></param> /// <param name="MaterialIndex"></param> /// <returns></returns> private RhinoSceneHierarchyNodeInfo GenerateInstanceNodeInfo(RhinoSceneHierarchyNodeInfo InstanceParentNodeInfo, RhinoSceneHierarchyNodeInfo DefinitionNodeInfo, int MaterialIndex) { string Name = string.Format("{0}_{1}", InstanceParentNodeInfo.Name, DefinitionNodeInfo.Name); string Label = ActorLabelGenerator.GenerateUniqueNameFromBaseName(DefinitionNodeInfo.Label); List <string> Tags = new List <string>(DefinitionNodeInfo.Tags); bool bOverrideMaterial = DefinitionNodeInfo.MaterialIndex != MaterialIndex; return(new RhinoSceneHierarchyNodeInfo(DefinitionNodeInfo.RhinoModelComponent, Name, Label, Tags, MaterialIndex, bOverrideMaterial, InstanceParentNodeInfo.WorldTransform)); }
private void AddTextureHashMapping(string TextureHash, Texture RhinoTexture) { if (!TextureIdToTextureHash.ContainsKey(RhinoTexture.Id)) { TextureIdToTextureHash.Add(RhinoTexture.Id, TextureHash); if (!TextureHashToTextureInfo.ContainsKey(TextureHash)) { if (FDatasmithRhinoUtilities.GetRhinoTextureNameAndPath(RhinoTexture, out string TextureName, out string TexturePath)) { TextureName = TextureLabelGenerator.GenerateUniqueNameFromBaseName(TextureName); TextureHashToTextureInfo.Add(TextureHash, new RhinoTextureInfo(RhinoTexture, TextureName, TexturePath)); } } } }