Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const lineObject = new THREE.Line(this.geometry, debugMaterial);
lineObject.renderOrder = PRIORITY_ALWAYS;
this.objects.push(lineObject);
this.m_labelPositions.setXYZ(0, 0, 0, 0);
const textPosition = new THREE.Vector3();
if (this.projection.type === ProjectionType.Planar) {
// place the text position at north/west for planar projections.
textPosition.copy(this.geometry.vertices[3]);
textPosition.multiplyScalar(0.95);
this.m_textLayoutStyle = new TextLayoutStyle({
verticalAlignment: VerticalAlignment.Below,
horizontalAlignment: HorizontalAlignment.Left
});
} else {
textPosition.copy(middlePoint);
this.m_textLayoutStyle = new TextLayoutStyle({
verticalAlignment: VerticalAlignment.Center,
horizontalAlignment: HorizontalAlignment.Center
});
}
const text = `${tileKey.mortonCode()} (${tileKey.row}, ${tileKey.column}, ${
tileKey.level
})`;
textPosition.add(this.center);
});
camera = new THREE.OrthographicCamera(
-window.innerWidth / 2.0,
window.innerWidth / 2.0,
window.innerHeight / 2.0,
-window.innerHeight / 2.0
);
camera.position.z = 1.0;
camera.near = 0.0;
camera.updateProjectionMatrix();
// Init textLayoutManager
textLayoutStyle = new TextLayoutStyle({
horizontalAlignment: HorizontalAlignment.Center,
verticalAlignment: VerticalAlignment.Below,
lineWidth: window.innerWidth
});
textRenderStyle = new TextRenderStyle({
fontSize: {
unit: FontUnit.Pixel,
size: 8.0,
backgroundSize: 0.0
}
});
FontCatalog.load("resources/fonts/Default_FontCatalog.json", 2048).then(
(loadedFontCatalog: FontCatalog) => {
textCanvas = new TextCanvas({
renderer: webglRenderer,
fontCatalog: loadedFontCatalog,
maxGlyphCount: characterCount
});
window.addEventListener("resize", onWindowResize);
camera = new THREE.OrthographicCamera(
-window.innerWidth / 2.0,
window.innerWidth / 2.0,
window.innerHeight / 2.0,
-window.innerHeight / 2.0
);
camera.position.z = 1.0;
camera.near = 0.0;
camera.updateProjectionMatrix();
// Init TextCanvas
textLayoutStyle = new TextLayoutStyle({
horizontalAlignment: HorizontalAlignment.Center,
verticalAlignment: VerticalAlignment.Below,
lineWidth: window.innerWidth
});
textRenderStyle = new TextRenderStyle();
FontCatalog.load("resources/fonts/Default_FontCatalog.json", 128).then(
(loadedFontCatalog: FontCatalog) => {
textCanvas = new TextCanvas({
renderer: webglRenderer,
fontCatalog: loadedFontCatalog,
maxGlyphCount: characterCount
});
loadedFontCatalog.loadCharset(textSample, textRenderStyle).then(() => {
assetsLoaded = true;
});
}
);
cube = new THREE.Mesh(
new THREE.BoxGeometry(200, 200, 200),
new THREE.MeshBasicMaterial({ map: renderTarget.texture })
);
scene.add(cube);
// Init TextCanvas
textRenderStyle = new TextRenderStyle({
fontSize: { unit: FontUnit.Pixel, size: 64.0, backgroundSize: 8.0 },
color: new THREE.Color(0xff0000),
backgroundColor: new THREE.Color(0x000000),
backgroundOpacity: 1.0
});
textLayoutStyle = new TextLayoutStyle({
horizontalAlignment: HorizontalAlignment.Center,
verticalAlignment: VerticalAlignment.Below,
lineWidth: 1024.0,
wrappingMode: WrappingMode.Character
});
FontCatalog.load("resources/fonts/Default_FontCatalog.json", 2048)
.then((loadedFontCatalog: FontCatalog) => {
textCanvas = new TextCanvas({
renderer: webglRenderer,
fontCatalog: loadedFontCatalog,
maxGlyphCount: characterCount
});
loadedFontCatalog.loadCharset(textSample, textRenderStyle).then(() => {
assetsLoaded = true;
});
})
.catch(error => {
// tslint:disable-next-line:no-console
textLayoutGui.add(textLayoutStyle, "tracking", -3.0, 3.0, 0.1);
textLayoutGui.add(textLayoutStyle, "leading", -3.0, 3.0, 0.1);
textLayoutGui
.add(textLayoutStyle, "horizontalAlignment", {
Left: HorizontalAlignment.Left,
Center: HorizontalAlignment.Center,
Right: HorizontalAlignment.Right
})
.onChange((value: string) => {
textLayoutStyle.horizontalAlignment = Number(value);
});
textLayoutGui
.add(textLayoutStyle, "verticalAlignment", {
Above: VerticalAlignment.Above,
Center: VerticalAlignment.Center,
Below: VerticalAlignment.Below
})
.onChange((value: string) => {
textLayoutStyle.verticalAlignment = Number(value);
});
textLayoutGui
.add(textLayoutStyle, "wrappingMode", {
None: WrappingMode.None,
Character: WrappingMode.Character,
Word: WrappingMode.Word
})
.onChange((value: string) => {
textLayoutStyle.wrappingMode = Number(value);
});
gui.add(guiOptions, "scale", 0.01, 10.0, 0.01);
gui.add(guiOptions, "rotation", 0.0, 2.0 * Math.PI, 0.1);
assert(textElement.bounds !== undefined);
const hAlign = textElement.layoutStyle!.horizontalAlignment;
const vAlign = textElement.layoutStyle!.verticalAlignment;
switch (hAlign) {
case HorizontalAlignment.Right:
offset.x = -textElement.xOffset;
break;
default:
offset.x = textElement.xOffset;
break;
}
switch (vAlign) {
case VerticalAlignment.Below:
offset.y = -textElement.yOffset;
break;
case VerticalAlignment.Above:
offset.y = textElement.yOffset - textElement.bounds!.min.y;
break;
default:
offset.y = textElement.yOffset;
break;
}
if (textElement.poiInfo !== undefined && poiIsRenderable(textElement.poiInfo)) {
assert(textElement.poiInfo.computedWidth !== undefined);
assert(textElement.poiInfo.computedHeight !== undefined);
offset.x += textElement.poiInfo.computedWidth! * (0.5 + hAlign);
offset.y += textElement.poiInfo.computedHeight! * (0.5 + vAlign);
textLayoutGui.add(textLayoutStyle, "tracking", -3.0, 3.0, 0.1);
textLayoutGui.add(textLayoutStyle, "leading", -3.0, 3.0, 0.1);
textLayoutGui
.add(textLayoutStyle, "horizontalAlignment", {
Left: HorizontalAlignment.Left,
Center: HorizontalAlignment.Center,
Right: HorizontalAlignment.Right
})
.onChange((value: string) => {
textLayoutStyle.horizontalAlignment = Number(value);
});
textLayoutGui
.add(textLayoutStyle, "verticalAlignment", {
Above: VerticalAlignment.Above,
Center: VerticalAlignment.Center,
Below: VerticalAlignment.Below
})
.onChange((value: string) => {
textLayoutStyle.verticalAlignment = Number(value);
});
textLayoutGui
.add(textLayoutStyle, "wrappingMode", {
None: WrappingMode.None,
Character: WrappingMode.Character,
Word: WrappingMode.Word
})
.onChange((value: string) => {
textLayoutStyle.wrappingMode = Number(value);
});
}