Ejemplo n.º 1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            gL_ControlModern1.ActiveCamera = new GL_EditorFramework.StandardCameras.InspectCamera();

            BfresModelCache.Initialize(gL_ControlModern1);
        }
Ejemplo n.º 2
0
        public override void Draw(GL_ControlModern control, Pass pass)
        {
            control.CurrentShader = BfresModelCache.BfresShaderProgram;

            if (!Visible)
            {
                BfresModelCache.BfresShaderProgram.SetFloat("dithering", 3);
            }

            control.ResetModelMatrix();
            BfresModelCache.TryDraw(modelName, control, pass, Vector4.Zero

                                    /*,
                                     * (parentMtx, bone) =>
                                     * {
                                     *  var anim = bfres.SkeletalAnims[2].BoneAnims.Find(x => x.Name == bone.Name);
                                     *  if (anim != null)
                                     *  {
                                     #region fill transformData
                                     *      transformData[0] = bone.Scale.X;
                                     *      transformData[1] = bone.Scale.Y;
                                     *      transformData[2] = bone.Scale.Z;
                                     *      transformData[3] = bone.Position.X;
                                     *      transformData[4] = bone.Position.Y;
                                     *      transformData[5] = bone.Position.Z;
                                     *      transformData[6] = bone.Rotation.X;
                                     *      transformData[7] = bone.Rotation.Y;
                                     *      transformData[8] = bone.Rotation.Z;
                                     *      transformData[9] = bone.Rotation.W;
                                     #endregion
                                     *
                                     *      return Matrix4.Identity;
                                     *  }
                                     *  else
                                     *  {
                                     *      return parentMtx * bone.CalculateRelativeMatrix();
                                     *  }
                                     * }*/);

            BfresModelCache.BfresShaderProgram.SetFloat("dithering", 0);
        }
Ejemplo n.º 3
0
        public override void Draw(GL_ControlModern control, Pass pass, EditorSceneBase editorScene)
        {
            if (!editorScene.ShouldBeDrawn(this))
            {
                return;
            }

            bool hovered = editorScene.Hovered == this;

            string modelName = ModelName;

            if (BfresModelCache.Contains(modelName))
            {
                control.UpdateModelMatrix(
                    Matrix4.CreateTranslation(Selected ? editorScene.SelectionTransformAction.NewPos(GlobalPosition) : GlobalPosition));

                Vector4 highlightColor;

                if (Selected)
                {
                    highlightColor = selectColor;
                }
                else if (hovered)
                {
                    highlightColor = hoverColor;
                }
                else
                {
                    highlightColor = Vector4.Zero;
                }

                if (modelName == "cobKinoko1up" || modelName == "cobKinokoShuffle")
                {
                    BfresModelCache.TryDraw(modelName, control, pass, highlightColor);
                }
                else
                {
                    BfresModelCache.TryDraw(modelName, control, pass, highlightColor);
                }
                return;
            }
            else
            {
                if (pass == Pass.TRANSPARENT)
                {
                    return;
                }

                control.UpdateModelMatrix(
                    Matrix4.CreateScale(0.25f) *
                    Matrix4.CreateTranslation(Selected ? editorScene.SelectionTransformAction.NewPos(GlobalPosition) : GlobalPosition));
            }

            Vector4 blockColor;
            Vector4 lineColor;

            if (hovered && Selected)
            {
                lineColor = hoverColor;
            }
            else if (hovered || Selected)
            {
                lineColor = selectColor;
            }
            else
            {
                lineColor = Color;
            }

            if (hovered && Selected)
            {
                blockColor = Color * 0.5f + hoverColor * 0.5f;
            }
            else if (hovered || Selected)
            {
                blockColor = Color * 0.5f + selectColor * 0.5f;
            }
            else
            {
                blockColor = Color;
            }

            Renderers.ColorBlockRenderer.Draw(control, pass, blockColor, lineColor, control.NextPickingColor());
        }
Ejemplo n.º 4
0
        public override void Draw(GL_ControlModern control, Pass pass, EditorSceneBase editorScene)
        {
            if (!editorScene.ShouldBeDrawn(this))
            {
                return;
            }

            bool hovered = editorScene.Hovered == this;

            string modelName = "";

            float noModelScale = 0.0625f;

            if (BoneName.StartsWith("W") && !BoneName.EndsWith("M0"))
            {
                modelName = "cobCourse";
            }
            //else if(attributes!=null && attributes[2].Contains("switchA"))
            //{
            //    modelName = "cobSwitchA";
            //}
            //else if (attributes != null && attributes[2].Contains("switchB"))
            //{
            //    modelName = "cobSwitchB";
            //}

            if (BfresModelCache.Contains(modelName))
            {
                control.UpdateModelMatrix(
                    Matrix4.CreateTranslation(Selected ? editorScene.SelectionTransformAction.NewPos(GlobalPosition) : GlobalPosition));

                Vector4 highlightColor;

                if (Selected)
                {
                    highlightColor = selectColor;
                }
                else if (hovered)
                {
                    highlightColor = hoverColor;
                }
                else
                {
                    highlightColor = Vector4.Zero;
                }

                BfresModelCache.TryDraw(modelName, control, pass, highlightColor);
                return;
            }
            else
            {
                if (pass == Pass.TRANSPARENT)
                {
                    return;
                }

                control.UpdateModelMatrix(
                    Matrix4.CreateScale(noModelScale) *
                    Matrix4.CreateTranslation(Selected ? editorScene.SelectionTransformAction.NewPos(GlobalPosition) : GlobalPosition));
            }

            Vector4 blockColor;
            Vector4 lineColor;

            if (hovered && Selected)
            {
                lineColor = hoverColor;
            }
            else if (hovered || Selected)
            {
                lineColor = selectColor;
            }
            else
            {
                lineColor = Color;
            }

            if (hovered && Selected)
            {
                blockColor = Color * 0.5f + hoverColor * 0.5f;
            }
            else if (hovered || Selected)
            {
                blockColor = Color * 0.5f + selectColor * 0.5f;
            }
            else
            {
                blockColor = Color;
            }

            Renderers.ColorBlockRenderer.DrawWithoutTextures(control, pass, blockColor, lineColor, control.NextPickingColor());
        }
Ejemplo n.º 5
0
 public override void Prepare(GL_ControlModern control)
 {
     BfresModelCache.Submit(modelName, bfres, control);
 }