private void OnLoad(object sender, EventArgs e) { baseGrid = new ParticleGrid(20, 5, GuiContext); ViewerControl.Camera.SetViewportSize(ViewerControl.GLControl.Width, ViewerControl.GLControl.Height); ViewerControl.Camera.SetLocation(new Vector3(256)); ViewerControl.Camera.LookAt(new Vector3(0)); LoadScene(); if (Scene.AllNodes.Any()) { var bbox = Scene.AllNodes.First().BoundingBox; var location = new Vector3(bbox.Max.Z, 0, bbox.Max.Z) * 1.5f; ViewerControl.Camera.SetLocation(location); ViewerControl.Camera.LookAt(bbox.Center); } staticOctreeRenderer = new OctreeDebugRenderer <SceneNode>(Scene.StaticOctree, Scene.GuiContext, false); dynamicOctreeRenderer = new OctreeDebugRenderer <SceneNode>(Scene.DynamicOctree, Scene.GuiContext, true); if (renderModeComboBox != null) { var supportedRenderModes = Scene.AllNodes .SelectMany(r => r.GetSupportedRenderModes()) .Distinct(); SetAvailableRenderModes(supportedRenderModes); } ViewerControl.GLLoad -= OnLoad; ViewerControl.GLPaint += OnPaint; GuiContext.ClearCache(); }
public WorldRenderer(World world, VrfGuiContext vrfGuiContext) { World = world; guiContext = vrfGuiContext; // Do setup LoadWorldNodes(); LoadEntities(); #if DEBUG_OCTREE octreeDebugRenderer = new OctreeDebugRenderer <IMeshRenderer>(worldOctree, guiContext); #endif // TODO: Figure out which animations to play on which model renderers }
protected void SetEnabledLayers(HashSet <string> layers) { Scene.SetEnabledLayers(layers); staticOctreeRenderer = new OctreeDebugRenderer <SceneNode>(Scene.StaticOctree, Scene.GuiContext, false); }