示例#1
0
 public bool TryGetNullModel(long id, out NullModel nullModel)
 {
     if (_nullDic is null)
     {
         nullModel = default;
         return(false);
     }
     return(_nullDic.TryGetValue(id, out nullModel));
 }
示例#2
0
        public ModelList(FbxNode objectsNode)
        {
            var meshDic = new BufferPooledDictionary <long, MeshModel>();
            var limbDic = new BufferPooledDictionary <long, LimbNode>();
            var nullDic = new BufferPooledDictionary <long, NullModel>();

            try {
                using var indexBuf = new ValueTypeRentMemory <int>(objectsNode.Children.Count, false);
                var modelCount = objectsNode.FindChildIndexAll(FbxConstStrings.Model(), indexBuf.AsSpan());
                foreach (var i in indexBuf.AsSpan(0, modelCount))
                {
                    var modelNode = objectsNode.Children[i];
                    var modelType = modelNode.Properties[2].AsString().ToModelType();

                    switch (modelType)
                    {
                    case ModelType.LimbNode: {
                        var limb = new LimbNode(modelNode);
                        limbDic.Add(limb.ID, limb);
                        break;
                    }

                    case ModelType.Mesh: {
                        var meshModel = new MeshModel(modelNode);
                        meshDic.Add(meshModel.ID, meshModel);
                        break;
                    }

                    case ModelType.Null: {
                        var nullModel = new NullModel(modelNode);
                        nullDic.Add(nullModel.ID, nullModel);
                        break;
                    }

                    case ModelType.Unknown:
                    default:
                        break;
                    }
                }
                _meshDic = meshDic;
                _limbDic = limbDic;
                _nullDic = nullDic;
            }
            catch {
                meshDic.Dispose();
                limbDic.Dispose();
                nullDic.Dispose();
                throw;
            }
        }
示例#3
0
        public void NullTest()
        {
            string errMsg = string.Empty;
            int    res    = 0;

            try
            {
                NullModel model = new NullModel
                {
                    StrField = null,
                };
                res = new TestLogic().NullTest(model);
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
            }
            Assert.IsTrue(res == 100);
            Assert.IsTrue(string.IsNullOrEmpty(errMsg));

            errMsg = string.Empty;
            res    = 0;

            try
            {
                NullModel model = new NullModel
                {
                    StrField = "",
                };
                res = new TestLogic().NullTest(model);
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
            }
            Assert.IsTrue(res != 100);
            Assert.IsTrue(!string.IsNullOrEmpty(errMsg));
        }
        public void Constructor_CalledWithNullDependentPropertyArgument_ThrowsArgumentNullException()
        {
            var model = new NullModel();

            model.IsValid("Value5");
        }
示例#5
0
 public int NullTest(NullModel model)
 {
     return(100);
 }