///
declare module BABYLON.GUI {
class AdvancedDynamicTexture extends DynamicTexture {
private _isDirty;
private _renderObserver;
private _resizeObserver;
private _pointerMoveObserver;
private _background;
private _rootContainer;
_lastControlOver: Control;
background: string;
constructor(name: string, width: number, height: number, scene: Scene, generateMipMaps?: boolean, samplingMode?: number);
markAsDirty(): void;
addControl(control: Control): AdvancedDynamicTexture;
removeControl(control: Control): AdvancedDynamicTexture;
dispose(): void;
private _onResize();
private _checkUpdate();
private _render();
private _doPicking(x, y, type);
attach(): void;
static CreateForMesh(mesh: AbstractMesh, width?: number, height?: number): AdvancedDynamicTexture;
static CreateFullscreenUI(name: string, foreground: boolean, scene: Scene): AdvancedDynamicTexture;
}
}
///
declare module BABYLON.GUI {
class Measure {
left: number;
top: number;
width: number;
height: number;
constructor(left: number, top: number, width: number, height: number);
copyFrom(other: Measure): void;
isEqualsTo(other: Measure): boolean;
static Empty(): Measure;
}
}
///
declare module BABYLON.GUI {
class ValueAndUnit {
value: number;
unit: number;
negativeValueAllowed: boolean;
constructor(value?: number, unit?: number, negativeValueAllowed?: boolean);
readonly isPercentage: boolean;
readonly isPixel: boolean;
toString(): string;
fromString(source: string): boolean;
private static _Regex;
private static _UNITMODE_PERCENTAGE;
private static _UNITMODE_PIXEL;
static readonly UNITMODE_PERCENTAGE: number;
static readonly UNITMODE_PIXEL: number;
}
}
///
declare module BABYLON.GUI {
class Control {
name: string;
private _zIndex;
_root: Container;
_host: AdvancedDynamicTexture;
_currentMeasure: Measure;
private _fontFamily;
private _fontSize;
private _font;
private _width;
private _height;
private _lastMeasuredFont;
protected _fontOffset: {
ascent: number;
height: number;
descent: number;
};
private _color;
private _horizontalAlignment;
private _verticalAlignment;
private _isDirty;
private _cachedParentMeasure;
private _marginLeft;
private _marginRight;
private _marginTop;
private _marginBottom;
private _left;
private _top;
/**
* An event triggered when the pointer move over the control.
* @type {BABYLON.Observable}
*/
onPointerMoveObservable: Observable;
/**
* An event triggered when the pointer move out of the control.
* @type {BABYLON.Observable}
*/
onPointerOutObservable: Observable;
/**
* An event triggered when the pointer taps the control
* @type {BABYLON.Observable}
*/
onPointerDownObservable: Observable;
/**
* An event triggered when pointer up
* @type {BABYLON.Observable}
*/
onPointerUpObservable: Observable;
horizontalAlignment: number;
verticalAlignment: number;
width: string;
height: string;
fontFamily: string;
fontSize: number;
color: string;
zIndex: number;
readonly isDirty: boolean;
marginLeft: string;
marginRight: string;
marginTop: string;
marginBottom: string;
left: string;
top: string;
constructor(name: string);
protected _markAsDirty(): void;
_link(root: Container, host: AdvancedDynamicTexture): void;
protected applyStates(context: CanvasRenderingContext2D): void;
protected _processMeasures(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
protected _clip(context: CanvasRenderingContext2D): void;
protected _measure(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
protected _computeAlignment(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
_draw(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
protected _contains(x: number, y: number): boolean;
_processPicking(x: number, y: number, type: number): boolean;
protected _processObservables(type: number): boolean;
private _prepareFont();
private static _HORIZONTAL_ALIGNMENT_LEFT;
private static _HORIZONTAL_ALIGNMENT_RIGHT;
private static _HORIZONTAL_ALIGNMENT_CENTER;
private static _VERTICAL_ALIGNMENT_TOP;
private static _VERTICAL_ALIGNMENT_BOTTOM;
private static _VERTICAL_ALIGNMENT_CENTER;
static readonly HORIZONTAL_ALIGNMENT_LEFT: number;
static readonly HORIZONTAL_ALIGNMENT_RIGHT: number;
static readonly HORIZONTAL_ALIGNMENT_CENTER: number;
static readonly VERTICAL_ALIGNMENT_TOP: number;
static readonly VERTICAL_ALIGNMENT_BOTTOM: number;
static readonly VERTICAL_ALIGNMENT_CENTER: number;
private static _FontHeightSizes;
static _GetFontOffset(font: string): {
ascent: number;
height: number;
descent: number;
};
}
}
///
declare module BABYLON.GUI {
class Container extends Control {
name: string;
private _children;
protected _measureForChildren: Measure;
constructor(name: string);
addControl(control: Control): Container;
removeControl(control: Control): Container;
_reOrderControl(control: Control): void;
protected _localDraw(context: CanvasRenderingContext2D): void;
_draw(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
_processPicking(x: number, y: number, type: number): boolean;
protected _clipForChildren(context: CanvasRenderingContext2D): void;
protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
}
}
///
declare module BABYLON.GUI {
class Rectangle extends Container {
name: string;
private _thickness;
private _background;
private _cornerRadius;
thickness: number;
cornerRadius: number;
background: string;
constructor(name: string);
protected _localDraw(context: CanvasRenderingContext2D): void;
protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
private _drawRoundedRect(context, offset?);
protected _clipForChildren(context: CanvasRenderingContext2D): void;
}
}
///
declare module BABYLON.GUI {
class TextBlock extends Control {
name: string;
private _text;
private _textY;
private _textWrapping;
private _textHorizontalAlignment;
private _textVerticalAlignment;
private _lines;
private _totalHeight;
textWrapping: boolean;
text: string;
textHorizontalAlignment: number;
textVerticalAlignment: number;
constructor(name: string, text: string);
private _drawText(text, textWidth, y, context);
_draw(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
protected _renderLines(context: CanvasRenderingContext2D): void;
}
}
///
declare var DOMImage: new (width?: number, height?: number) => HTMLImageElement;
declare module BABYLON.GUI {
class Image extends Control {
name: string;
private _domImage;
private _imageWidth;
private _imageHeight;
private _loaded;
private _stretch;
stretch: number;
constructor(name: string, url: string);
_draw(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
private static _STRETCH_NONE;
private static _STRETCH_FILL;
private static _STRETCH_UNIFORM;
static readonly STRETCH_NONE: number;
static readonly STRETCH_FILL: number;
static readonly STRETCH_UNIFORM: number;
}
}
///
declare module BABYLON.GUI {
class Button extends Rectangle {
name: string;
constructor(name: string);
_processPicking(x: number, y: number, type: number): boolean;
static CreateImageButton(name: string, text: string, imageUrl: string): Button;
}
}