Back to home page

EIC code displayed by LXR

 
 

    


Warning, /firebird/firebird-ng/src/app/components/view-options/view-options.component.ts is written in an unsupported language. File is not indexed.

0001 import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
0002 import {MatCheckbox, MatCheckboxChange} from '@angular/material/checkbox';
0003 import { MatDialog } from '@angular/material/dialog';
0004 import { CartesianGridConfigComponent } from './cartesian-grid-config/cartesian-grid-config.component';
0005 import { SceneHelpersService } from '../../services/scene-helpers.service';
0006 import { Vector3 } from 'three';
0007 import { Subscription } from 'rxjs';
0008 import {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu';
0009 import {MatIcon} from "@angular/material/icon";
0010 import {NgForOf, NgIf} from "@angular/common";
0011 import {MatTooltip} from "@angular/material/tooltip";
0012 import {MatIconButton} from "@angular/material/button";
0013 
0014 @Component({
0015     selector: 'app-custom-view-options',
0016     templateUrl: './view-options.component.html',
0017     styleUrls: ['./view-options.component.scss'],
0018   imports: [
0019     MatMenu,
0020     MatCheckbox,
0021     MatIcon,
0022     MatMenuItem,
0023     MatMenuTrigger,
0024     NgForOf,
0025     NgIf,
0026     MatTooltip,
0027     MatIconButton,
0028     // the relevant Material modules, e.g. MatMenu, MatCheckbox, etc.
0029   ]
0030 })
0031 export class ViewOptionsComponent implements OnInit, OnDestroy {
0032   @ViewChild(MatMenuTrigger) trigger!: MatMenuTrigger;
0033 
0034   // toggles
0035   showCartesianGrid = false;
0036   scale = 3000;
0037 
0038   // If you had "views" for camera preset positions,
0039   // you can define them yourself. e.g.:
0040   views = [
0041     { name: 'Left View', icon: 'left-cube', target: new Vector3(0,0,0), cameraPos: new Vector3(0,0,1200) },
0042     { name: 'Center View', icon: 'top-cube', target: new Vector3(0,0,0), cameraPos: new Vector3(1200,0,0) },
0043     // etc...
0044   ];
0045 
0046   constructor(
0047     private dialog: MatDialog,
0048     private sceneHelpers: SceneHelpersService
0049   ) {}
0050 
0051   ngOnInit(): void {}
0052 
0053   ngOnDestroy(): void {}
0054 
0055   // Example "view" code
0056   displayView($event: MouseEvent, view: any) {
0057     $event.stopPropagation();
0058     // We set the camera:
0059     this.sceneHelpers.setCameraView(view.target, view.cameraPos);
0060   }
0061 
0062   // Toggling axis
0063   setAxis(change: MatCheckboxChange) {
0064     this.sceneHelpers.setShowAxis(change.checked);
0065   }
0066 
0067   // Toggling eta-phi
0068   setEtaPhiGrid(change: MatCheckboxChange) {
0069     this.sceneHelpers.setShowEtaPhiGrid(change.checked);
0070   }
0071 
0072   // Toggling cartesian grid
0073   setCartesianGrid(change: MatCheckboxChange) {
0074     this.showCartesianGrid = change.checked;
0075     this.sceneHelpers.setShowCartesianGrid(this.showCartesianGrid, this.scale);
0076   }
0077 
0078   // Toggling labels
0079   showLabels(change: MatCheckboxChange) {
0080     this.sceneHelpers.showLabels(change.checked);
0081   }
0082 
0083   // Toggling 3D points
0084   show3DMousePoints(change: MatCheckboxChange) {
0085     this.sceneHelpers.show3DMousePoints(change.checked);
0086   }
0087 
0088   // Toggling 3D distance
0089   toggleShowDistance(change: MatCheckboxChange) {
0090     this.trigger.closeMenu();
0091     this.sceneHelpers.show3DDistance(change.checked);
0092   }
0093 
0094   // Opening the config dialog for cartesian grid
0095   openCartesianGridConfigDialog() {
0096     this.dialog.open(CartesianGridConfigComponent, {
0097       data: {
0098         gridVisible: this.showCartesianGrid,
0099         scale: this.scale,
0100       },
0101       position: {
0102         bottom: '5rem',
0103         left: '3rem',
0104       },
0105     });
0106   }
0107 }