Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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
});
loadedFontCatalog.loadCharset(textSample, textRenderStyle).then(() => {
assetsLoaded = true;
guiOptions.update();
});
}
textCamera.position.z = 1.0;
textCamera.near = 0.0;
textCamera.updateProjectionMatrix();
sceneCamera = new THREE.PerspectiveCamera(90.0, window.innerWidth / window.innerHeight);
sceneCamera.position.z = 400;
scene = new THREE.Scene();
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
private createTextElementStyle(
style: TextStyleDefinition,
styleName: string
): TextElementStyle {
return {
name: styleName,
fontCatalog: getOptionValue(style.fontCatalogName, this.m_defaultStyle.fontCatalog),
renderParams: {
fontName: style.fontName,
fontSize: {
unit: FontUnit.Pixel,
size: 32,
backgroundSize: style.backgroundSize || 8
},
fontStyle:
style.fontStyle === "Regular" ||
style.fontStyle === "Bold" ||
style.fontStyle === "Italic" ||
style.fontStyle === "BoldItalic"
? FontStyle[style.fontStyle]
: undefined,
fontVariant:
style.fontVariant === "Regular" ||
style.fontVariant === "AllCaps" ||
style.fontVariant === "SmallCaps"
? FontVariant[style.fontVariant]
: undefined,
}
}
});
guiOptions.color.r = textRenderStyle.color!.r * 255.0;
guiOptions.color.g = textRenderStyle.color!.g * 255.0;
guiOptions.color.b = textRenderStyle.color!.b * 255.0;
guiOptions.backgroundColor.r = textRenderStyle.backgroundColor!.r * 255.0;
guiOptions.backgroundColor.g = textRenderStyle.backgroundColor!.g * 255.0;
guiOptions.backgroundColor.b = textRenderStyle.backgroundColor!.b * 255.0;
const textStyleGui = gui.addFolder("TextStyle");
textStyleGui
.add(textRenderStyle.fontSize, "unit", {
Em: FontUnit.Em,
Pixel: FontUnit.Pixel,
Point: FontUnit.Point,
Percent: FontUnit.Percent
})
.onChange((value: string) => {
textRenderStyle.fontSize.unit = Number(value);
});
textStyleGui.add(textRenderStyle.fontSize, "size", 0.1, 100, 0.1);
textStyleGui.add(textRenderStyle.fontSize, "backgroundSize", 0.0, 100, 0.1);
textStyleGui.addColor(guiOptions, "color").onChange(() => {
textRenderStyle.color!.r = guiOptions.color.r / 255.0;
textRenderStyle.color!.g = guiOptions.color.g / 255.0;
textRenderStyle.color!.b = guiOptions.color.b / 255.0;
});
textStyleGui.add(textRenderStyle, "opacity", 0.0, 1.0, 0.01);
textStyleGui.addColor(guiOptions, "backgroundColor").onChange(() => {
textRenderStyle.backgroundColor!.r = guiOptions.backgroundColor.r / 255.0;
gui.add(guiOptions, "update");
gui.add(guiOptions, "gridEnabled");
gui.add(guiOptions, "boundsEnabled");
guiOptions.color.r = textRenderStyle.color!.r * 255.0;
guiOptions.color.g = textRenderStyle.color!.g * 255.0;
guiOptions.color.b = textRenderStyle.color!.b * 255.0;
guiOptions.backgroundColor.r = textRenderStyle.backgroundColor!.r * 255.0;
guiOptions.backgroundColor.g = textRenderStyle.backgroundColor!.g * 255.0;
guiOptions.backgroundColor.b = textRenderStyle.backgroundColor!.b * 255.0;
const textRenderStyleGui = gui.addFolder("TextStyle");
textRenderStyleGui
.add(textRenderStyle.fontSize!, "unit", {
Em: FontUnit.Em,
Pixel: FontUnit.Pixel,
Point: FontUnit.Point,
Percent: FontUnit.Percent
})
.onChange((value: string) => {
textRenderStyle.fontSize!.unit = Number(value);
});
textRenderStyleGui.add(textRenderStyle.fontSize!, "size", 0.1, 100, 0.1);
textRenderStyleGui.add(textRenderStyle.fontSize!, "backgroundSize", 0.0, 100, 0.1);
textRenderStyleGui.addColor(guiOptions, "color").onChange(() => {
textRenderStyle.color!.r = guiOptions.color.r / 255.0;
textRenderStyle.color!.g = guiOptions.color.g / 255.0;
textRenderStyle.color!.b = guiOptions.color.b / 255.0;
});
textRenderStyleGui.add(textRenderStyle, "opacity", 0.0, 1.0, 0.01);
textRenderStyleGui.addColor(guiOptions, "backgroundColor").onChange(() => {
textRenderStyle.backgroundColor!.r = guiOptions.backgroundColor.r / 255.0;
function addGUIControls() {
guiOptions.color.r = textRenderStyle.color!.r * 255.0;
guiOptions.color.g = textRenderStyle.color!.g * 255.0;
guiOptions.color.b = textRenderStyle.color!.b * 255.0;
guiOptions.backgroundColor.r = textRenderStyle.backgroundColor!.r * 255.0;
guiOptions.backgroundColor.g = textRenderStyle.backgroundColor!.g * 255.0;
guiOptions.backgroundColor.b = textRenderStyle.backgroundColor!.b * 255.0;
gui.add(textRenderStyle.fontSize!, "unit", {
Em: FontUnit.Em,
Pixel: FontUnit.Pixel,
Point: FontUnit.Point,
Percent: FontUnit.Percent
}).onChange((value: string) => {
textRenderStyle.fontSize!.unit = Number(value);
});
gui.add(textRenderStyle.fontSize!, "size", 0.1, 100, 0.1);
gui.add(textRenderStyle.fontSize!, "backgroundSize", 0.0, 100, 0.1);
gui.addColor(guiOptions, "color").onChange(() => {
textRenderStyle.color!.r = guiOptions.color.r / 255.0;
textRenderStyle.color!.g = guiOptions.color.g / 255.0;
textRenderStyle.color!.b = guiOptions.color.b / 255.0;
});
gui.add(textRenderStyle, "opacity", 0.0, 1.0, 0.01);
gui.addColor(guiOptions, "backgroundColor").onChange(() => {
textRenderStyle.backgroundColor!.r = guiOptions.backgroundColor.r / 255.0;
textRenderStyle.backgroundColor!.g = guiOptions.backgroundColor.g / 255.0;
guiOptions.backgroundColor.r = textRenderStyle.backgroundColor!.r * 255.0;
guiOptions.backgroundColor.g = textRenderStyle.backgroundColor!.g * 255.0;
guiOptions.backgroundColor.b = textRenderStyle.backgroundColor!.b * 255.0;
gui.add(guiOptions, "input").onFinishChange((value: string) => {
textSample = ContextualArabicConverter.instance.convert(value);
assetsLoaded = false;
textCanvas.fontCatalog.loadCharset(textSample, textRenderStyle).then(() => {
assetsLoaded = true;
});
});
gui.add(guiOptions, "gridEnabled");
gui.add(guiOptions, "boundsEnabled");
gui.add(textRenderStyle.fontSize!, "unit", {
Em: FontUnit.Em,
Pixel: FontUnit.Pixel,
Point: FontUnit.Point,
Percent: FontUnit.Percent
}).onChange((value: string) => {
textRenderStyle.fontSize!.unit = Number(value);
});
gui.add(textRenderStyle.fontSize!, "size", 0.1, 100, 0.1);
gui.add(textRenderStyle.fontSize!, "backgroundSize", 0.0, 100, 0.1);
gui.addColor(guiOptions, "color").onChange(() => {
textRenderStyle.color!.r = guiOptions.color.r / 255.0;
textRenderStyle.color!.g = guiOptions.color.g / 255.0;
textRenderStyle.color!.b = guiOptions.color.b / 255.0;
});
gui.add(textRenderStyle, "opacity", 0.0, 1.0, 0.01);
gui.addColor(guiOptions, "backgroundColor").onChange(() => {
textRenderStyle.backgroundColor!.r = guiOptions.backgroundColor.r / 255.0;
textRenderStyle.backgroundColor!.g = guiOptions.backgroundColor.g / 255.0;