示例#1
0
 public void ClearCache(object model)
 {
     if (model != null)
     {
         Model3DCache.Remove(model);
     }
 }
示例#2
0
        private Model3D CreateFromDictionary(IDictionary source)
        {
            if (source == null)
            {
#pragma warning disable CS8603 // Possible null reference return.
                return(null);

#pragma warning restore CS8603 // Possible null reference return.
            }

            if (cache && Model3DCache.ContainsKey(source))
            {
                return(Model3DCache[source]);
            }
            Model3DGroup?model3DGroup = new Model3DGroup {
                Transform = GetTransform3D(source)
            };
            Model3D?primaryModel = GetPrimaryModel3D(source);
            if (primaryModel != null)
            {
                model3DGroup.Children.Add(primaryModel);
            }

            foreach (object?key in source.Keys)
            {
#pragma warning disable CS8604 // Possible null reference argument.
                if (source[key] is IDictionary child_dictionary && !Ignore(child_dictionary))
#pragma warning restore CS8604 // Possible null reference argument.
                {
                    //var child_model = Create(typeof(Model3D), child_dictionary) as Model3D;
                    Model3D?child_model = CreateFromDictionary(child_dictionary);
                    if (child_model != null)
                    {
                        model3DGroup.Children.Add(child_model);
                    }
                }
            }
            if (model3DGroup.Children.Count > 0)
            {
                if (cache)
                {
                    Model3DCache.Add(source, model3DGroup);
                }

                return(model3DGroup);
            }
#pragma warning disable CS8603 // Possible null reference return.
            return(null);

#pragma warning restore CS8603 // Possible null reference return.
        }
示例#3
0
 public void ClearCache()
 {
     Model3DCache.Clear(); namedCache.Clear();
 }