dev@382: /** dev@382: * Created by lucast on 31/05/2017. dev@382: */ dev@382: import {WavesComponent} from '../waves-base.component'; dev@382: import { dev@382: ChangeDetectionStrategy, dev@382: Component, dev@382: Input, dev@382: } from '@angular/core'; dev@382: import Waves from 'waves-ui-piper'; dev@382: import {MatrixFeature} from 'piper/HigherLevelUtilities'; dev@382: import {iceMapper} from '../../spectrogram/ColourMap'; dev@382: import {estimatePercentile} from '../../spectrogram/MatrixUtils'; dev@382: dev@382: @Component({ dev@382: selector: 'ugly-grid', dev@382: templateUrl: '../waves-template.html', dev@382: styleUrls: ['../waves-template.css'], dev@405: changeDetection: ChangeDetectionStrategy.OnPush, dev@405: providers: [ dev@405: {provide: WavesComponent, useExisting: GridComponent} dev@405: ] dev@382: }) dev@383: export class GridComponent extends WavesComponent { dev@383: dev@382: @Input() set grid(grid: MatrixFeature) { dev@383: this.feature = grid; dev@382: } dev@382: dev@383: protected get featureLayers(): Layer[] { dev@383: const startTime = this.feature.startTime; // !!! + make use of dev@383: const stepDuration = this.feature.stepDuration; dev@383: const matrixData = this.feature.data; dev@382: dev@382: if (matrixData.length === 0) { dev@383: return []; dev@382: } dev@382: dev@382: const targetValue = estimatePercentile(matrixData, 95); dev@382: const gain = (targetValue > 0.0 ? (1.0 / targetValue) : 1.0); dev@382: const matrixEntity = new Waves.utils.PrefilledMatrixEntity( dev@382: matrixData, dev@382: 0, // startTime dev@382: stepDuration dev@382: ); dev@382: dev@383: return [ dev@382: new Waves.helpers.MatrixLayer( dev@382: matrixEntity, dev@382: { dev@382: gain: gain, dev@382: height: this.height, dev@382: normalise: 'none', dev@382: mapper: iceMapper() dev@382: } dev@383: ) dev@383: ]; dev@382: } dev@382: }