Esempio n. 1
0
        private void GetBaseInfluence()
        {
            ResourceNode[] boneCache = _externalModel._linker.BoneCache;
            if ((_node = (MDL0ObjectNode)comboBox1.SelectedItem).Weighted)
            {
                int least = int.MaxValue;
                foreach (IMatrixNode inf in _node.Influences)
                {
                    if (inf is MDL0BoneNode && ((MDL0BoneNode)inf).BoneIndex < least)
                    {
                        least = ((MDL0BoneNode)inf).BoneIndex;
                    }
                }

                if (least != int.MaxValue)
                {
                    MDL0BoneNode temp = (MDL0BoneNode)boneCache[least];
                    _baseInf = (IMatrixNode)temp.Parent;
                }
            }
            else
            {
                _baseInf = _node.MatrixNode;
            }

            if (_baseInf is Influence)
            {
                label2.Hide();
                comboBox2.Hide();
            }
            else if (_baseInf is MDL0BoneNode)
            {
                label2.Show();
                comboBox2.Show();
            }

            baseBone.Text = _baseInf.ToString();

            if (comboBox3.SelectedIndex == 0 && _baseInf is MDL0BoneNode)
            {
                int i = 0;
                foreach (MDL0BoneNode s in comboBox2.Items)
                {
                    if (s.Name == baseBone.Text)
                    {
                        comboBox2.SelectedIndex = i;
                        break;
                    }
                    i++;
                }
            }

            modelPanel1.AddTarget(_node);
            Vector3 min, max;

            _node.GetBox(out min, out max);
            modelPanel1.SetCamWithBox(min, max);
        }
        private void ModelChanged(MDL0Node model)
        {
            //if (_externalNode != null)
            //{
            //    _externalNode.Dispose();
            //    _externalNode = null;
            //}

            if (_targetModel != null)
            {
                modelPanel1.RemoveTarget(_targetModel);
            }

            if ((_targetModel = model) != null)
            {
                modelPanel1.AddTarget(_targetModel);
            }

            modelPanel1.ResetCamera();

            //modelPanel1.TargetModel = _targetModel;

            pnlOptions.TargetModel = _targetModel;
            pnlAnim.TargetModel    = _targetModel;
            pnlAssets.Attach(_targetModel);

            //UpdateReferences();

            //_animFrame = -1;
            SetFrame(0);
        }
Esempio n. 3
0
        private void ModelChanged(MDL0Node model)
        {
            if (model != null && !_targetModels.Contains(model))
            {
                _targetModels.Add(model);
            }

            if (_targetModel != null)
            {
                _targetModel._isTargetModel = false;
            }

            if (model == null)
            {
                ModelPanel.RemoveTarget(_targetModel);
            }

            if ((_targetModel = model) != null)
            {
                ModelPanel.AddTarget(_targetModel);
                leftPanel.VIS0Indices       = _targetModel.VIS0Indices;
                _targetModel._isTargetModel = true;
                ResetVertexColors();
            }
            else
            {
                models.SelectedIndex = 0;
            }

            if (_resetCamera)
            {
                ModelPanel.ResetCamera();
                SetFrame(0);
            }
            else
            {
                _resetCamera = true;
            }

            leftPanel.Reset();
            rightPanel.Reset();

            if (TargetModelChanged != null)
            {
                TargetModelChanged(this, null);
            }

            _updating = true;
            if (_targetModel != null && !_editingAll)
            {
                models.SelectedItem = _targetModel;
            }
            _updating = false;

            if (_targetModel != null)
            {
                RenderBones = _targetModel._renderBones;
            }
        }
Esempio n. 4
0
        public override void AppendTarget(IModel model)
        {
            if (!_targetModels.Contains(model))
            {
                _targetModels.Add(model);
            }

            ModelPanel.AddTarget(model);
            model.ResetToBindState();
        }
Esempio n. 5
0
        public virtual void AppendTarget(IModel model)
        {
            if (!_targetModels.Contains(model))
            {
                _targetModels.Add(model);
            }

            ModelPanel.AddTarget(model, false);
            model.ResetToBindState();
        }
Esempio n. 6
0
 public void AppendTarget(MDL0Node model)
 {
     if (!_targetModels.Contains(model))
     {
         _targetModels.Add(model);
     }
     if (!models.Items.Contains(model))
     {
         models.Items.Add(model);
     }
     ModelPanel.AddTarget(model);
     model.ApplyCHR(null, 0);
     model.ApplySRT(null, 0);
     model._renderBones = true;
 }
Esempio n. 7
0
        protected virtual void ModelChanged(IModel newModel)
        {
            if (newModel != null && !_targetModels.Contains(newModel))
            {
                _targetModels.Add(newModel);
            }

            if (_targetModel != null)
            {
                _targetModel.IsTargetModel = false;
            }

            if ((_targetModel = newModel) != null)
            {
                ModelPanel.AddTarget(_targetModel);
                _targetModel.IsTargetModel = true;
                ClearSelectedVertices();
            }
            else
            {
                EditingAll = true; //No target model so all is the only option
            }
            if (_resetCamera)
            {
                ModelPanel.ResetCamera();
                SetFrame(0);
            }
            else
            {
                _resetCamera = true;
            }

            OnModelChanged();

            if (TargetModelChanged != null)
            {
                TargetModelChanged(this, null);
            }
        }
Esempio n. 8
0
        private void GetBaseInfluence()
        {
            if (_node != null)
            {
                modelPanel1.RemoveReference(_node);
            }

            MDL0BoneNode[] boneCache = _externalModel._linker.BoneCache;
            if ((_node = (MDL0ObjectNode)comboBox1.SelectedItem).Weighted)
            {
                int least = int.MaxValue;
                foreach (IMatrixNode inf in _node.Influences)
                {
                    if (inf is MDL0BoneNode && ((MDL0BoneNode)inf).BoneIndex < least)
                    {
                        least = ((MDL0BoneNode)inf).BoneIndex;
                    }
                }

                if (least != int.MaxValue)
                {
                    MDL0BoneNode temp = boneCache[least];
                    _baseInf = (IMatrixNode)temp.Parent;
                }
            }
            else
            {
                _baseInf = _node.MatrixNode;
            }

            if (_baseInf is Influence)
            {
                label2.Hide();
                comboBox2.Hide();
            }
            else if (_baseInf is MDL0BoneNode)
            {
                label2.Show();
                comboBox2.Show();
            }

            baseBone.Text = _baseInf.ToString();

            if (comboBox3.SelectedIndex == 0 && _baseInf is MDL0BoneNode)
            {
                int i = 0;
                foreach (MDL0BoneNode s in comboBox2.Items)
                {
                    if (s.Name == baseBone.Text)
                    {
                        comboBox2.SelectedIndex = i;
                        break;
                    }

                    i++;
                }
            }

            _node.IsRendering = true;
            modelPanel1.ClearTargets();
            modelPanel1.AddTarget(_node, false);
            modelPanel1.SetCamWithBox(_node.GetBox());
        }