diff --git a/res/static/axes.svg b/res/static/axes.svg
new file mode 100644
index 0000000..4df7b0e
--- /dev/null
+++ b/res/static/axes.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/src/app_context.ts b/src/app_context.ts
index 332d742..90f93e2 100644
--- a/src/app_context.ts
+++ b/src/app_context.ts
@@ -84,6 +84,7 @@ export class AppContext {
this._ui.disable(EAction.Simplify);
Renderer.Get.toggleIsGridEnabled();
+ Renderer.Get.toggleIsAxesEnabled();
}
public do(action: EAction) {
diff --git a/src/event.ts b/src/event.ts
index aa3761b..0f1423b 100644
--- a/src/event.ts
+++ b/src/event.ts
@@ -5,6 +5,7 @@ export enum EAppEvent {
onModelActiveChanged,
onModelAvailableChanged,
onGridEnabledChanged,
+ onAxesEnabledChanged,
onWireframeEnabledChanged,
onNormalsEnabledChanged,
onDevViewEnabledChanged,
diff --git a/src/renderer.ts b/src/renderer.ts
index 7f8d14d..b3f8fb8 100644
--- a/src/renderer.ts
+++ b/src/renderer.ts
@@ -36,7 +36,6 @@ export class Renderer {
private _backgroundColour = new RGB(0.125, 0.125, 0.125);
private _atlasTexture?: WebGLTexture;
- private _occlusionNeighboursIndices!: Array>>; // Ew
private _meshToUse: MeshType = MeshType.None;
private _voxelSize: number = 1.0;
@@ -55,6 +54,7 @@ export class Renderer {
private _axisBuffer: RenderBuffer;
private _isGridComponentEnabled: { [bufferComponent: string]: boolean };
+ private _axesEnabled: boolean;
private static _instance: Renderer;
public static get Get() {
@@ -79,6 +79,7 @@ export class Renderer {
this._isGridComponentEnabled = {};
this._isGridComponentEnabled[EDebugBufferComponents.Grid] = false;
+ this._axesEnabled = false;
this._axisBuffer = new RenderBuffer([
{ name: 'position', numComponents: 3 },
@@ -119,6 +120,11 @@ export class Renderer {
EventManager.Get.broadcast(EAppEvent.onGridEnabledChanged, isEnabled);
}
+ public toggleIsAxesEnabled() {
+ this._axesEnabled = !this._axesEnabled;
+ EventManager.Get.broadcast(EAppEvent.onAxesEnabledChanged, this._axesEnabled);
+ }
+
public toggleIsWireframeEnabled() {
const isEnabled = !this._isGridComponentEnabled[EDebugBufferComponents.Wireframe];
this._isGridComponentEnabled[EDebugBufferComponents.Wireframe] = isEnabled;
@@ -260,11 +266,13 @@ export class Renderer {
}
}
// Draw axis
- this._gl.disable(this._gl.DEPTH_TEST);
- this._drawBuffer(this._gl.LINES, this._axisBuffer.getWebGLBuffer(), ShaderManager.Get.debugProgram, {
- u_worldViewProjection: ArcballCamera.Get.getWorldViewProjection(),
- });
- this._gl.enable(this._gl.DEPTH_TEST);
+ if (this._axesEnabled) {
+ this._gl.disable(this._gl.DEPTH_TEST);
+ this._drawBuffer(this._gl.LINES, this._axisBuffer.getWebGLBuffer(), ShaderManager.Get.debugProgram, {
+ u_worldViewProjection: ArcballCamera.Get.getWorldViewProjection(),
+ });
+ this._gl.enable(this._gl.DEPTH_TEST);
+ }
}
private _drawMesh() {
diff --git a/src/ui/layout.ts b/src/ui/layout.ts
index 9164234..eef55f5 100644
--- a/src/ui/layout.ts
+++ b/src/ui/layout.ts
@@ -180,8 +180,14 @@ export class UI {
const isEnabled = args[0][0][0] as boolean;
return isEnabled;
}),
+ 'axes': new ToolbarItemElement('axes', () => {
+ Renderer.Get.toggleIsAxesEnabled();
+ }, EAppEvent.onAxesEnabledChanged, (...args: any[]) => {
+ const isEnabled = args[0][0][0] as boolean;
+ return isEnabled;
+ }),
},
- elementsOrder: ['grid'],
+ elementsOrder: ['grid', 'axes'],
},
},
groupsOrder: ['viewmode', 'zoom', 'debug'],