protected override void OnLoad(EventArgs e) { base.OnLoad(e); gL_ControlModern1.ActiveCamera = new GL_EditorFramework.StandardCameras.InspectCamera(); BfresModelCache.Initialize(gL_ControlModern1); }
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); }
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()); }
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()); }
public override void Prepare(GL_ControlModern control) { BfresModelCache.Submit(modelName, bfres, control); }