mirror of
https://github.com/openglobus/openglobus.git
synced 2025-12-08 19:25:27 +00:00
889 eee
This commit is contained in:
parent
58e0cbe829
commit
d3af894918
@ -177,29 +177,34 @@ class Ray {
|
||||
public setSrc(src: string | null) {
|
||||
this._src = src;
|
||||
let bh = this._handler;
|
||||
if (bh && src && src.length) {
|
||||
if (bh) {
|
||||
let rn = bh._entityCollection.renderNode;
|
||||
if (rn && rn.renderer) {
|
||||
let ta = rn.renderer.strokeTextureAtlas;
|
||||
ta.loadImage(src, (img: HTMLImageElementExt) => {
|
||||
if (img.__nodeIndex != undefined && ta.get(img.__nodeIndex)) {
|
||||
this._image = img;
|
||||
let taData = ta.get(img!.__nodeIndex!)!;
|
||||
let minY = taData.texCoords[1],
|
||||
imgHeight = taData.texCoords[3] - minY;
|
||||
bh!.setTexCoordArr(
|
||||
this._handlerIndex,
|
||||
taData.texCoords,
|
||||
minY,
|
||||
imgHeight
|
||||
);
|
||||
} else {
|
||||
ta.addImage(img);
|
||||
ta.createTexture();
|
||||
this._image = img;
|
||||
rn!.updateTexCoords();
|
||||
}
|
||||
});
|
||||
if (src && src.length) {
|
||||
ta.loadImage(src, (img: HTMLImageElementExt) => {
|
||||
if (img.__nodeIndex != undefined && ta.get(img.__nodeIndex)) {
|
||||
this._image = img;
|
||||
let taData = ta.get(img!.__nodeIndex!)!;
|
||||
let minY = taData.texCoords[1],
|
||||
imgHeight = taData.texCoords[3] - minY;
|
||||
bh!.setTexCoordArr(
|
||||
this._handlerIndex,
|
||||
taData.texCoords,
|
||||
minY,
|
||||
imgHeight
|
||||
);
|
||||
} else {
|
||||
ta.addImage(img);
|
||||
ta.createTexture();
|
||||
this._image = img;
|
||||
rn!.updateTexCoords();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
bh!.setTextureEnabled(this._handlerIndex, false);
|
||||
rn!.updateTexCoords();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -849,6 +849,21 @@ class RayHandler {
|
||||
this._changedBuffers[TEXCOORD_BUFFER] = true;
|
||||
}
|
||||
|
||||
public setTextureEnabled(index: number, enabled: boolean) {
|
||||
let i = index * 24;
|
||||
let a = this._texCoordArr;
|
||||
let f = enabled ? 0 : 1;
|
||||
|
||||
a[i + 3] = f;
|
||||
a[i + 7] = f;
|
||||
a[i + 11] = f;
|
||||
a[i + 15] = f;
|
||||
a[i + 19] = f;
|
||||
a[i + 23] = f;
|
||||
|
||||
this._changedBuffers[TEXCOORD_BUFFER] = true;
|
||||
}
|
||||
|
||||
public setTexOffsetArr(index: number, value: number) {
|
||||
let i = index * 6;
|
||||
let a = this._texOffsetArr;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user