From e08610fb6eba6a68ca88abbaf92cd0d2cadfca30 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Mon, 16 Sep 2024 16:18:02 -0600 Subject: [PATCH] add sliders --- .../components/plots/plots.component.html | 40 +++++++++++++++++++ .../components/plots/plots.component.ts | 30 +++++++++++++- 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.html b/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.html index bac86fee0..18e337e2e 100644 --- a/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.html +++ b/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.html @@ -62,9 +62,49 @@ <!-- Disagg plot --> <nshmp-lib-ng-hazard-disagg-plot + #disaggPlot [inputs]="{ + allowDrag: true, component: form.value.disaggComponent, imt: form.value.imt, responseData: serviceResponse()?.response, }" /> + +<div> + <div> + X: + <mat-slider min="-330" max="300" step="1"> + <input + type="range" + matSliderThumb + [(ngModel)]="cameraOrigin.x" + (valueChange)="setOrigin()" + /> + </mat-slider> + </div> + + <div> + Y: + <mat-slider min="-330" max="300" step="1"> + <input + type="range" + matSliderThumb + [(ngModel)]="cameraOrigin.y" + (valueChange)="setOrigin()" + /> + </mat-slider> + </div> + + <div> + Z: + <mat-slider min="-330" max="300" step="1"> + <input + type="range" + matSliderThumb + [(ngModel)]="cameraOrigin.z" + (valueChange)="setOrigin()" + /> + </mat-slider> + </div> +</div> diff --git a/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.ts b/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.ts index 9e5b92f31..e23c0ffa0 100644 --- a/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.ts +++ b/projects/nshmp-apps/src/app/hazard/disagg/components/plots/plots.component.ts @@ -1,16 +1,23 @@ import {AsyncPipe} from '@angular/common'; -import {Component} from '@angular/core'; -import {ReactiveFormsModule} from '@angular/forms'; +import {Component, viewChild} from '@angular/core'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {MatButton} from '@angular/material/button'; import {MatOption} from '@angular/material/core'; import {MatDivider} from '@angular/material/divider'; import {MatFormField, MatLabel} from '@angular/material/form-field'; import {MatSelect} from '@angular/material/select'; +import {MatSliderModule} from '@angular/material/slider'; import {NshmpLibNgHazardDisaggPlotComponent} from '@ghsc/nshmp-lib-ng/hazard'; import {NshmpTemplateService} from '@ghsc/nshmp-template'; import {AppService} from '../../services/app.service'; +interface CameraOrigin { + x: number; + y: number; + z: number; +} + /** * Disaggregation plot with select menu of component. */ @@ -25,6 +32,8 @@ import {AppService} from '../../services/app.service'; MatOption, AsyncPipe, ReactiveFormsModule, + MatSliderModule, + FormsModule, ], selector: 'app-plots', standalone: true, @@ -39,6 +48,14 @@ export class PlotsComponent { /** Disaggreagtion service response */ serviceResponse = this.service.serviceResponse; + cameraOrigin: CameraOrigin = { + x: 280, + y: -150, + z: 180, + }; + + disaggPlot = viewChild.required(NshmpLibNgHazardDisaggPlotComponent); + constructor( public service: AppService, public templateService: NshmpTemplateService @@ -48,4 +65,13 @@ export class PlotsComponent { exportReport(): void { print(); } + + setOrigin(): void { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + this.disaggPlot().view.setOrigin( + this.cameraOrigin.x, + this.cameraOrigin.y, + this.cameraOrigin.z + ); + } } -- GitLab