aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tensorflow/tensorboard/components/vz_projector/projectorScatterPlotAdapter.ts19
-rw-r--r--tensorflow/tensorboard/components/vz_projector/renderContext.ts2
-rw-r--r--tensorflow/tensorboard/components/vz_projector/scatterPlot.ts14
-rw-r--r--tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer.ts8
-rw-r--r--tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer3DLabels.ts2
-rw-r--r--tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerCanvasLabels.ts3
-rw-r--r--tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerSprites.ts1
-rw-r--r--tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerTraces.ts1
-rw-r--r--tensorflow/tensorboard/components/vz_projector/vz-projector.ts6
9 files changed, 23 insertions, 33 deletions
diff --git a/tensorflow/tensorboard/components/vz_projector/projectorScatterPlotAdapter.ts b/tensorflow/tensorboard/components/vz_projector/projectorScatterPlotAdapter.ts
index ecf34cb977..7fa9924813 100644
--- a/tensorflow/tensorboard/components/vz_projector/projectorScatterPlotAdapter.ts
+++ b/tensorflow/tensorboard/components/vz_projector/projectorScatterPlotAdapter.ts
@@ -82,9 +82,12 @@ export class ProjectorScatterPlotAdapter {
private selectedPointIndices: number[];
private neighborsOfFirstSelectedPoint: NearestEntry[];
private renderLabelsIn3D: boolean = false;
+ private labelPointAccessor: (index: number) => string;
private legendPointColorer: (index: number) => string;
private distanceMetric: DistanceFunction;
+ private labels3DVisualizer: ScatterPlotVisualizer3DLabels;
+
constructor(
scatterPlotContainer: d3.Selection<any>,
projectorEventContext: ProjectorEventContext) {
@@ -132,6 +135,13 @@ export class ProjectorScatterPlotAdapter {
this.legendPointColorer = legendPointColorer;
}
+ setLabelPointAccessor(labelPointAccessor: (index: number) => string) {
+ this.labelPointAccessor = labelPointAccessor;
+ if (this.labels3DVisualizer != null) {
+ this.labels3DVisualizer.setLabelAccessor(labelPointAccessor);
+ }
+ }
+
resize() {
this.scatterPlot.resize();
}
@@ -303,8 +313,8 @@ export class ProjectorScatterPlotAdapter {
}
return new LabelRenderParams(
- visibleLabels, scale, opacityFlags, LABEL_FONT_SIZE, fillColors,
- strokeColors);
+ this.labelPointAccessor, visibleLabels, scale, opacityFlags,
+ LABEL_FONT_SIZE, fillColors, strokeColors);
}
generatePointScaleFactorArray(
@@ -532,8 +542,11 @@ export class ProjectorScatterPlotAdapter {
private createVisualizers(inLabels3DMode: boolean) {
const scatterPlot = this.scatterPlot;
scatterPlot.removeAllVisualizers();
+ this.labels3DVisualizer = null;
if (inLabels3DMode) {
- scatterPlot.addVisualizer(new ScatterPlotVisualizer3DLabels());
+ this.labels3DVisualizer = new ScatterPlotVisualizer3DLabels();
+ this.labels3DVisualizer.setLabelAccessor(this.labelPointAccessor);
+ scatterPlot.addVisualizer(this.labels3DVisualizer);
} else {
scatterPlot.addVisualizer(new ScatterPlotVisualizerSprites());
scatterPlot.addVisualizer(
diff --git a/tensorflow/tensorboard/components/vz_projector/renderContext.ts b/tensorflow/tensorboard/components/vz_projector/renderContext.ts
index 544f23538c..27c1310992 100644
--- a/tensorflow/tensorboard/components/vz_projector/renderContext.ts
+++ b/tensorflow/tensorboard/components/vz_projector/renderContext.ts
@@ -19,6 +19,7 @@ limitations under the License.
*/
export class LabelRenderParams {
constructor(
+ public labelAccessor: (index: number) => string,
public pointIndices: Float32Array, public scaleFactors: Float32Array,
public useSceneOpacityFlags: Int8Array, public defaultFontSize: number,
public fillColors: Uint8Array, public strokeColors: Uint8Array) {}
@@ -45,7 +46,6 @@ export class RenderContext {
public screenHeight: number, public nearestCameraSpacePointZ: number,
public farthestCameraSpacePointZ: number, public backgroundColor: number,
public pointColors: Float32Array, public pointScaleFactors: Float32Array,
- public labelAccessor: (index: number) => string,
public labels: LabelRenderParams,
public traceColors: {[trace: number]: Float32Array},
public traceOpacities: Float32Array, public traceWidths: Float32Array) {}
diff --git a/tensorflow/tensorboard/components/vz_projector/scatterPlot.ts b/tensorflow/tensorboard/components/vz_projector/scatterPlot.ts
index 47036fa6c7..3a30a74503 100644
--- a/tensorflow/tensorboard/components/vz_projector/scatterPlot.ts
+++ b/tensorflow/tensorboard/components/vz_projector/scatterPlot.ts
@@ -79,7 +79,6 @@ export class ScatterPlot {
private containerNode: HTMLElement;
private visualizers: ScatterPlotVisualizer[] = [];
- private labelAccessor: (index: number) => string;
private onCameraMoveListeners: OnCameraMoveListener[] = [];
private height: number;
@@ -560,9 +559,6 @@ export class ScatterPlot {
if (this.scene) {
visualizer.setScene(this.scene);
}
- if (this.labelAccessor) {
- visualizer.onSetLabelAccessor(this.labelAccessor);
- }
visualizer.onResize(this.width, this.height);
if (this.dataSet) {
visualizer.onPointPositionsChanged(
@@ -610,8 +606,7 @@ export class ScatterPlot {
this.camera, cameraType, this.orbitCameraControls.target, this.width,
this.height, cameraSpacePointExtents[0], cameraSpacePointExtents[1],
this.backgroundColor, this.pointColors, this.pointScaleFactors,
- this.labelAccessor, this.labels, this.traceColors, this.traceOpacities,
- this.traceWidths);
+ this.labels, this.traceColors, this.traceOpacities, this.traceWidths);
// Render first pass to picking target. This render fills pickingTexture
// with colors that are actually point ids, so that sampling the texture at
@@ -637,13 +632,6 @@ export class ScatterPlot {
this.renderer.render(this.scene, this.camera);
}
- setLabelAccessor(labelAccessor: (index: number) => string) {
- this.labelAccessor = labelAccessor;
- this.visualizers.forEach(v => {
- v.onSetLabelAccessor(labelAccessor);
- });
- }
-
setMouseMode(mouseMode: MouseMode) {
this.mouseMode = mouseMode;
if (mouseMode === MouseMode.AREA_SELECT) {
diff --git a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer.ts b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer.ts
index 07ffd0b011..2d7f5cd640 100644
--- a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer.ts
+++ b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer.ts
@@ -13,8 +13,8 @@ See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/
-import {RenderContext} from './renderContext';
import {DataSet} from './data';
+import {RenderContext} from './renderContext';
/**
* ScatterPlotVisualizer is an interface used by ScatterPlotContainer
@@ -36,12 +36,6 @@ export interface ScatterPlotVisualizer {
onPointPositionsChanged(
newWorldSpacePointPositions: Float32Array, dataSet: DataSet);
/**
- * Called when the label accessor (functor that maps point ids to text labels)
- * changes. The label accessor is also part of RenderContext, but visualizers
- * may need it outside of a render call, to learn when it changes.
- */
- onSetLabelAccessor(labelAccessor: (index: number) => string);
- /**
* Called immediately before the main scatter plot performs a picking
* (selection) render. Set up render state for any geometry to use picking IDs
* instead of visual colors.
diff --git a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer3DLabels.ts b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer3DLabels.ts
index 6a698bcbef..3811e10c57 100644
--- a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer3DLabels.ts
+++ b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizer3DLabels.ts
@@ -319,7 +319,7 @@ export class ScatterPlotVisualizer3DLabels implements ScatterPlotVisualizer {
}
}
- onSetLabelAccessor(labelAccessor: (index: number) => string) {
+ setLabelAccessor(labelAccessor: (index: number) => string) {
this.labelAccessor = labelAccessor;
this.dispose();
this.onPointPositionsChanged(this.worldSpacePointPositions, this.dataSet);
diff --git a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerCanvasLabels.ts b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerCanvasLabels.ts
index bcb48c8344..959b077a4d 100644
--- a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerCanvasLabels.ts
+++ b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerCanvasLabels.ts
@@ -112,7 +112,7 @@ export class ScatterPlotVisualizerCanvasLabels implements
};
if (grid.insert(textBoundingBox, true)) {
- const text = rc.labelAccessor(index);
+ const text = lrc.labelAccessor(index);
const fontSize = lrc.defaultFontSize * lrc.scaleFactors[i] * dpr;
this.gc.font = fontSize + 'px roboto';
@@ -176,5 +176,4 @@ export class ScatterPlotVisualizerCanvasLabels implements
setScene(scene: THREE.Scene) {}
onPickingRender(renderContext: RenderContext) {}
- onSetLabelAccessor(labelAccessor: (index: number) => string) {}
}
diff --git a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerSprites.ts b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerSprites.ts
index 5af3eea92b..db1fb691fa 100644
--- a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerSprites.ts
+++ b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerSprites.ts
@@ -387,5 +387,4 @@ export class ScatterPlotVisualizerSprites implements ScatterPlotVisualizer {
}
onResize(newWidth: number, newHeight: number) {}
- onSetLabelAccessor(labelAccessor: (index: number) => string) {}
}
diff --git a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerTraces.ts b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerTraces.ts
index 57d4b0611b..ec71a93414 100644
--- a/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerTraces.ts
+++ b/tensorflow/tensorboard/components/vz_projector/scatterPlotVisualizerTraces.ts
@@ -146,5 +146,4 @@ export class ScatterPlotVisualizerTraces implements ScatterPlotVisualizer {
onPickingRender(renderContext: RenderContext) {}
onResize(newWidth: number, newHeight: number) {}
- onSetLabelAccessor(labelAccessor: (index: number) => string) {}
}
diff --git a/tensorflow/tensorboard/components/vz_projector/vz-projector.ts b/tensorflow/tensorboard/components/vz_projector/vz-projector.ts
index 3b03b2f8fc..655a75b7f4 100644
--- a/tensorflow/tensorboard/components/vz_projector/vz-projector.ts
+++ b/tensorflow/tensorboard/components/vz_projector/vz-projector.ts
@@ -130,8 +130,7 @@ export class Projector extends ProjectorPolymer implements
.metadata[this.selectedLabelOption] as string;
};
this.metadataCard.setLabelOption(this.selectedLabelOption);
- this.projectorScatterPlotAdapter.scatterPlot.setLabelAccessor(
- labelAccessor);
+ this.projectorScatterPlotAdapter.setLabelPointAccessor(labelAccessor);
this.projectorScatterPlotAdapter.render();
}
@@ -402,8 +401,7 @@ export class Projector extends ProjectorPolymer implements
'' + this.dataSet.points[i].metadata[this.selectedLabelOption];
this.projectorScatterPlotAdapter = new ProjectorScatterPlotAdapter(
this.getScatterContainer(), this as ProjectorEventContext);
- this.projectorScatterPlotAdapter.scatterPlot.setLabelAccessor(
- labelAccessor);
+ this.projectorScatterPlotAdapter.setLabelPointAccessor(labelAccessor);
}
this.projectorScatterPlotAdapter.scatterPlot.onCameraMove(