Beispiel #1
0
        /// <summary>
        /// Creates a new hierarchy node info for a given Rhino Model Component, used to determine names and labels as well as linking.
        /// </summary>
        /// <param name="InModelComponent"></param>
        /// <param name="ParentNode"></param>
        /// <param name="MaterialIndex"></param>
        /// <param name="ParentTransform"></param>
        /// <returns></returns>
        private RhinoSceneHierarchyNodeInfo GenerateNodeInfo(ModelComponent InModelComponent, bool bIsInstanceDefinition, int MaterialIndex, Transform ParentTransform)
        {
            string Name  = GetModelComponentName(InModelComponent);
            string Label = bIsInstanceDefinition
                                ? FUniqueNameGenerator.GetTargetName(InModelComponent)
                                : ActorLabelGenerator.GenerateUniqueName(InModelComponent);
            List <string> Tags = GetTags(InModelComponent);
            const bool    bOverrideMaterial = false;

            return(new RhinoSceneHierarchyNodeInfo(InModelComponent, Name, Label, Tags, MaterialIndex, bOverrideMaterial, ParentTransform));
        }
Beispiel #2
0
        private void AddMaterialHashMapping(string MaterialHash, Material RhinoMaterial)
        {
            if (!MaterialHashToMaterialInfo.ContainsKey(MaterialHash))
            {
                string MaterialLabel = MaterialLabelGenerator.GenerateUniqueName(RhinoMaterial);
                string MaterialName  = FDatasmithFacadeElement.GetStringHash(MaterialLabel);

                MaterialHashToMaterialInfo.Add(MaterialHash, new RhinoMaterialInfo(RhinoMaterial, MaterialName, MaterialLabel));

                Texture[] MaterialTextures = RhinoMaterial.GetTextures();
                for (int TextureIndex = 0; TextureIndex < MaterialTextures.Length; ++TextureIndex)
                {
                    Texture RhinoTexture = MaterialTextures[TextureIndex];
                    if (RhinoTexture != null)
                    {
                        string TextureHash = FDatasmithRhinoUtilities.GetTextureHash(RhinoTexture);
                        AddTextureHashMapping(TextureHash, RhinoTexture);
                    }
                }
            }
        }