private bool TryGetModel(out ModelDefinition model, out ModelVariantIdentifier variant) { model = null; variant = default(ModelVariantIdentifier); if (SelectedEquipment == null) { return(false); } var charType = SelectedEquipment.GetModelCharacterType(); if (charType == 0) { return(false); } try { model = SelectedEquipment.GetModel(charType, out variant.ImcVariant); if (SelectedEquipment.IsDyeable && SelectedStain != null) { variant.StainKey = SelectedStain.Key; } var result = (model != null); if (!result) { System.Windows.MessageBox.Show(string.Format("Unable to find model for {0} (c{1:D4}).", SelectedEquipment.Name, charType), "Model not found", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); } return(result); } catch (Exception e) { System.Windows.MessageBox.Show(string.Format("Failed to load model for {0} (c{1:D4}):{2}{3}", SelectedEquipment.Name, charType, Environment.NewLine, e), "Read failure", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); return(false); } }
private bool MoveNextStain() { if (!_IsCurrentStained) { return(false); } if (!_StainEnumerator.MoveNext()) { return(false); } var variant = new ModelVariantIdentifier { ImcVariant = _CurrentVariant, StainKey = null }; if (_StainEnumerator.Current.Key > 0) { variant.StainKey = _StainEnumerator.Current.Key; } CurrentComponent = new Content.ContentModel(_Engine, variant, _CurrentModel); CurrentTargetFile = GetTargetFile(_EquipmentIterator.Current, _StainEnumerator.Current); CurrentName = GetName(_EquipmentIterator.Current, _StainEnumerator.Current); return(true); }
public ContentMesh(ContentModel model, PrimitiveMesh primitive, ModelVariantIdentifier variant) : base(model.Engine) { this.Model = model; this.Primitive = primitive; this.Variant = variant; this.Transformation = Matrix.Identity; }
public ContentMesh(ContentModel model, PrimitiveMesh primitive, ModelVariantIdentifier variant) : base(model.Engine) { this.Model = model; this.Primitive = primitive; this.Variant = variant; this.Transformation = Matrix.Identity; }
public ContentModel(Engine engine, ModelVariantIdentifier variant, ModelDefinition definition, ModelQuality quality) : base(engine) { this.Definition = definition; this.Quality = quality; this.Variant = variant; this.Transformation = Matrix.Identity; Init(); }
public ContentModel(Engine engine, ModelVariantIdentifier variant, ModelDefinition definition, ModelQuality quality) : base(engine) { this.Definition = definition; this.Quality = quality; this.Variant = variant; this.Transformation = Matrix.Identity; Init(); }
public AnimatedModel(Engine engine, Skeleton skeleton, ModelVariantIdentifier variant, ModelDefinition definition, ModelQuality quality) : base(engine, variant, definition, quality) { Skeleton = skeleton; _AnimationPlayer = new AnimationPlayer(); var nameMap = new Dictionary<string, int>(); for (var i = 0; i < Skeleton.BoneNames.Length; ++i) nameMap.Add(Skeleton.BoneNames[i], i); _BoneMap = Definition.BoneNames.Select(n => nameMap[n]).ToArray(); _InvertedReferencePose = Skeleton.ReferencePose.Select(_ => Matrix.Invert(_)).ToArray(); }
public AnimatedModel(Engine engine, Skeleton skeleton, ModelVariantIdentifier variant, ModelDefinition definition, ModelQuality quality) : base(engine, variant, definition, quality) { Skeleton = skeleton; _AnimationPlayer = new AnimationPlayer(); var nameMap = new Dictionary <string, int>(); for (var i = 0; i < Skeleton.BoneNames.Length; ++i) { nameMap.Add(Skeleton.BoneNames[i], i); } _BoneMap = Definition.BoneNames.Select(n => nameMap[n]).ToArray(); _InvertedReferencePose = Skeleton.ReferencePose.Select(_ => Matrix.Invert(_)).ToArray(); }
public ContentModel(Engine engine, ModelVariantIdentifier variant, ModelDefinition definition) : this(engine, variant, definition, ModelQuality.High) { }
public ContentModel(Engine engine, ModelVariantIdentifier variant, ModelFile file, ModelQuality quality) : this(engine, variant, file.GetModelDefinition(), quality) { }
private bool MoveNextStain() { if (!_IsCurrentStained) return false; if (!_StainEnumerator.MoveNext()) return false; var variant = new ModelVariantIdentifier { ImcVariant = _CurrentVariant, StainKey = null }; if(_StainEnumerator.Current.Key > 0) variant.StainKey = _StainEnumerator.Current.Key; CurrentComponent = new Content.ContentModel(_Engine, variant, _CurrentModel); CurrentTargetFile = GetTargetFile(_EquipmentIterator.Current, _StainEnumerator.Current); CurrentName = GetName(_EquipmentIterator.Current, _StainEnumerator.Current); return true; }
public AnimatedModel(Engine engine, Skeleton skeleton, ModelVariantIdentifier variant, ModelDefinition definition) : this(engine, skeleton, variant, definition, ModelQuality.High) { }
public AnimatedModel(Engine engine, Skeleton skeleton, ModelVariantIdentifier variant, ModelDefinition definition) : this(engine, skeleton, variant, definition, ModelQuality.High) { }
public ContentModel(Engine engine, ModelVariantIdentifier variant, ModelDefinition definition) : this(engine, variant, definition, ModelQuality.High) { }
public ContentModel(Engine engine, ModelVariantIdentifier variant, ModelFile file, ModelQuality quality) : this(engine, variant, file.GetModelDefinition(), quality) { }
public AnimatedModel(Engine engine, Skeleton skeleton, ModelVariantIdentifier variant, ModelFile file, ModelQuality quality) : this(engine, skeleton, variant, file.GetModelDefinition(), quality) { }
public AnimatedModel(Engine engine, Skeleton skeleton, ModelVariantIdentifier variant, ModelFile file, ModelQuality quality) : this(engine, skeleton, variant, file.GetModelDefinition(), quality) { }