Browse Source

Removing generated files

Josh Engebretson 10 years ago
parent
commit
c60039848d

+ 3 - 0
.gitignore

@@ -15,3 +15,6 @@ Data/AtomicEditor/Deployment/Web/AtomicPlayer.js
 Data/AtomicEditor/Deployment/IOS/AtomicPlayer.app/AtomicPlayer
 node_modules/*
 /.project
+Script/Haxe/*.hx
+Script/TypeScript/*.hx
+!Script/TypeScript/AtomicWork.d.ts

+ 0 - 0
Script/Haxe/.gitkeep


+ 0 - 8203
Script/Haxe/Atomic.hx

@@ -1,8203 +0,0 @@
-package atomic;
-
-@:native("Atomic")
-extern enum FrustumPlane {
-    PLANE_NEAR;
-    PLANE_LEFT;
-    PLANE_RIGHT;
-    PLANE_UP;
-    PLANE_DOWN;
-    PLANE_FAR;
-}
-@:native("Atomic")
-extern enum Intersection {
-    OUTSIDE;
-    INTERSECTS;
-    INSIDE;
-}
-@:native("Atomic")
-extern enum InterpolationMode {
-    BEZIER_CURVE;
-}
-@:native("Atomic")
-extern enum VariantType {
-    VAR_NONE;
-    VAR_INT;
-    VAR_BOOL;
-    VAR_FLOAT;
-    VAR_VECTOR2;
-    VAR_VECTOR3;
-    VAR_VECTOR4;
-    VAR_QUATERNION;
-    VAR_COLOR;
-    VAR_STRING;
-    VAR_BUFFER;
-    VAR_VOIDPTR;
-    VAR_RESOURCEREF;
-    VAR_RESOURCEREFLIST;
-    VAR_VARIANTVECTOR;
-    VAR_VARIANTMAP;
-    VAR_INTRECT;
-    VAR_INTVECTOR2;
-    VAR_PTR;
-    VAR_MATRIX3;
-    VAR_MATRIX3X4;
-    VAR_MATRIX4;
-    VAR_DOUBLE;
-    MAX_VAR_TYPES;
-}
-@:native("Atomic")
-extern enum WrapMode {
-    WM_LOOP;
-    WM_ONCE;
-    WM_CLAMP;
-}
-@:native("Atomic")
-extern enum CreateMode {
-    REPLICATED;
-    LOCAL;
-}
-@:native("Atomic")
-extern enum TransformSpace {
-    TS_LOCAL;
-    TS_PARENT;
-    TS_WORLD;
-}
-@:native("Atomic")
-extern enum LoadMode {
-    LOAD_RESOURCES_ONLY;
-    LOAD_SCENE;
-    LOAD_SCENE_AND_RESOURCES;
-}
-@:native("Atomic")
-extern enum InterpMethod {
-    IM_LINEAR;
-    IM_SPLINE;
-}
-@:native("Atomic")
-extern enum UpdateGeometryType {
-    UPDATE_NONE;
-    UPDATE_MAIN_THREAD;
-    UPDATE_WORKER_THREAD;
-}
-@:native("Atomic")
-extern enum PrimitiveType {
-    TRIANGLE_LIST;
-    LINE_LIST;
-    POINT_LIST;
-    TRIANGLE_STRIP;
-    LINE_STRIP;
-    TRIANGLE_FAN;
-}
-@:native("Atomic")
-extern enum GeometryType {
-    GEOM_STATIC;
-    GEOM_SKINNED;
-    GEOM_INSTANCED;
-    GEOM_BILLBOARD;
-    GEOM_STATIC_NOINSTANCING;
-    MAX_GEOMETRYTYPES;
-}
-@:native("Atomic")
-extern enum BlendMode {
-    BLEND_REPLACE;
-    BLEND_ADD;
-    BLEND_MULTIPLY;
-    BLEND_ALPHA;
-    BLEND_ADDALPHA;
-    BLEND_PREMULALPHA;
-    BLEND_INVDESTALPHA;
-    BLEND_SUBTRACT;
-    BLEND_SUBTRACTALPHA;
-    MAX_BLENDMODES;
-}
-@:native("Atomic")
-extern enum CompareMode {
-    CMP_ALWAYS;
-    CMP_EQUAL;
-    CMP_NOTEQUAL;
-    CMP_LESS;
-    CMP_LESSEQUAL;
-    CMP_GREATER;
-    CMP_GREATEREQUAL;
-    MAX_COMPAREMODES;
-}
-@:native("Atomic")
-extern enum CullMode {
-    CULL_NONE;
-    CULL_CCW;
-    CULL_CW;
-    MAX_CULLMODES;
-}
-@:native("Atomic")
-extern enum FillMode {
-    FILL_SOLID;
-    FILL_WIREFRAME;
-    FILL_POINT;
-}
-@:native("Atomic")
-extern enum StencilOp {
-    OP_KEEP;
-    OP_ZERO;
-    OP_REF;
-    OP_INCR;
-    OP_DECR;
-}
-@:native("Atomic")
-extern enum LockState {
-    LOCK_NONE;
-    LOCK_HARDWARE;
-    LOCK_SHADOW;
-    LOCK_SCRATCH;
-}
-@:native("Atomic")
-extern enum VertexElement {
-    ELEMENT_POSITION;
-    ELEMENT_NORMAL;
-    ELEMENT_COLOR;
-    ELEMENT_TEXCOORD1;
-    ELEMENT_TEXCOORD2;
-    ELEMENT_CUBETEXCOORD1;
-    ELEMENT_CUBETEXCOORD2;
-    ELEMENT_TANGENT;
-    ELEMENT_BLENDWEIGHTS;
-    ELEMENT_BLENDINDICES;
-    ELEMENT_INSTANCEMATRIX1;
-    ELEMENT_INSTANCEMATRIX2;
-    ELEMENT_INSTANCEMATRIX3;
-    MAX_VERTEX_ELEMENTS;
-}
-@:native("Atomic")
-extern enum TextureFilterMode {
-    FILTER_NEAREST;
-    FILTER_BILINEAR;
-    FILTER_TRILINEAR;
-    FILTER_ANISOTROPIC;
-    FILTER_DEFAULT;
-    MAX_FILTERMODES;
-}
-@:native("Atomic")
-extern enum TextureAddressMode {
-    ADDRESS_WRAP;
-    ADDRESS_MIRROR;
-    ADDRESS_CLAMP;
-    ADDRESS_BORDER;
-    MAX_ADDRESSMODES;
-}
-@:native("Atomic")
-extern enum TextureCoordinate {
-    COORD_U;
-    COORD_V;
-    COORD_W;
-    MAX_COORDS;
-}
-@:native("Atomic")
-extern enum TextureUsage {
-    TEXTURE_STATIC;
-    TEXTURE_DYNAMIC;
-    TEXTURE_RENDERTARGET;
-    TEXTURE_DEPTHSTENCIL;
-}
-@:native("Atomic")
-extern enum CubeMapFace {
-    FACE_POSITIVE_X;
-    FACE_NEGATIVE_X;
-    FACE_POSITIVE_Y;
-    FACE_NEGATIVE_Y;
-    FACE_POSITIVE_Z;
-    FACE_NEGATIVE_Z;
-    MAX_CUBEMAP_FACES;
-}
-@:native("Atomic")
-extern enum CubeMapLayout {
-    CML_HORIZONTAL;
-    CML_HORIZONTALNVIDIA;
-    CML_HORIZONTALCROSS;
-    CML_VERTICALCROSS;
-    CML_BLENDER;
-}
-@:native("Atomic")
-extern enum RenderSurfaceUpdateMode {
-    SURFACE_MANUALUPDATE;
-    SURFACE_UPDATEVISIBLE;
-    SURFACE_UPDATEALWAYS;
-}
-@:native("Atomic")
-extern enum ShaderType {
-    VS;
-    PS;
-}
-@:native("Atomic")
-extern enum ShaderParameterGroup {
-    SP_FRAME;
-    SP_CAMERA;
-    SP_ZONE;
-    SP_LIGHT;
-    SP_MATERIAL;
-    SP_OBJECT;
-    SP_CUSTOM;
-    MAX_SHADER_PARAMETER_GROUPS;
-}
-@:native("Atomic")
-extern enum TextureUnit {
-    TU_DIFFUSE;
-    TU_ALBEDOBUFFER;
-    TU_NORMAL;
-    TU_NORMALBUFFER;
-    TU_SPECULAR;
-    TU_EMISSIVE;
-    TU_ENVIRONMENT;
-    TU_VOLUMEMAP;
-    TU_CUSTOM1;
-    TU_CUSTOM2;
-    TU_LIGHTRAMP;
-    TU_LIGHTSHAPE;
-    TU_SHADOWMAP;
-    TU_FACESELECT;
-    TU_INDIRECTION;
-    TU_DEPTHBUFFER;
-    TU_LIGHTBUFFER;
-    TU_ZONE;
-    MAX_MATERIAL_TEXTURE_UNITS;
-    MAX_TEXTURE_UNITS;
-}
-@:native("Atomic")
-extern enum FaceCameraMode {
-    FC_NONE;
-    FC_ROTATE_XYZ;
-    FC_ROTATE_Y;
-    FC_LOOKAT_XYZ;
-    FC_LOOKAT_Y;
-}
-@:native("Atomic")
-extern enum LightType {
-    LIGHT_DIRECTIONAL;
-    LIGHT_SPOT;
-    LIGHT_POINT;
-}
-@:native("Atomic")
-extern enum RayQueryLevel {
-    RAY_AABB;
-    RAY_OBB;
-    RAY_TRIANGLE;
-    RAY_TRIANGLE_UV;
-}
-@:native("Atomic")
-extern enum LightVSVariation {
-    LVS_DIR;
-    LVS_SPOT;
-    LVS_POINT;
-    LVS_SHADOW;
-    LVS_SPOTSHADOW;
-    LVS_POINTSHADOW;
-    MAX_LIGHT_VS_VARIATIONS;
-}
-@:native("Atomic")
-extern enum VertexLightVSVariation {
-    VLVS_NOLIGHTS;
-    VLVS_1LIGHT;
-    VLVS_2LIGHTS;
-    VLVS_3LIGHTS;
-    VLVS_4LIGHTS;
-    MAX_VERTEXLIGHT_VS_VARIATIONS;
-}
-@:native("Atomic")
-extern enum LightPSVariation {
-    LPS_NONE;
-    LPS_SPOT;
-    LPS_POINT;
-    LPS_POINTMASK;
-    LPS_SPEC;
-    LPS_SPOTSPEC;
-    LPS_POINTSPEC;
-    LPS_POINTMASKSPEC;
-    LPS_SHADOW;
-    LPS_SPOTSHADOW;
-    LPS_POINTSHADOW;
-    LPS_POINTMASKSHADOW;
-    LPS_SHADOWSPEC;
-    LPS_SPOTSHADOWSPEC;
-    LPS_POINTSHADOWSPEC;
-    LPS_POINTMASKSHADOWSPEC;
-    MAX_LIGHT_PS_VARIATIONS;
-}
-@:native("Atomic")
-extern enum DeferredLightVSVariation {
-    DLVS_NONE;
-    DLVS_DIR;
-    DLVS_ORTHO;
-    DLVS_ORTHODIR;
-    MAX_DEFERRED_LIGHT_VS_VARIATIONS;
-}
-@:native("Atomic")
-extern enum DeferredLightPSVariation {
-    DLPS_NONE;
-    DLPS_SPOT;
-    DLPS_POINT;
-    DLPS_POINTMASK;
-    DLPS_SPEC;
-    DLPS_SPOTSPEC;
-    DLPS_POINTSPEC;
-    DLPS_POINTMASKSPEC;
-    DLPS_SHADOW;
-    DLPS_SPOTSHADOW;
-    DLPS_POINTSHADOW;
-    DLPS_POINTMASKSHADOW;
-    DLPS_SHADOWSPEC;
-    DLPS_SPOTSHADOWSPEC;
-    DLPS_POINTSHADOWSPEC;
-    DLPS_POINTMASKSHADOWSPEC;
-    DLPS_ORTHO;
-    DLPS_ORTHOSPOT;
-    DLPS_ORTHOPOINT;
-    DLPS_ORTHOPOINTMASK;
-    DLPS_ORTHOSPEC;
-    DLPS_ORTHOSPOTSPEC;
-    DLPS_ORTHOPOINTSPEC;
-    DLPS_ORTHOPOINTMASKSPEC;
-    DLPS_ORTHOSHADOW;
-    DLPS_ORTHOSPOTSHADOW;
-    DLPS_ORTHOPOINTSHADOW;
-    DLPS_ORTHOPOINTMASKSHADOW;
-    DLPS_ORTHOSHADOWSPEC;
-    DLPS_ORTHOSPOTSHADOWSPEC;
-    DLPS_ORTHOPOINTSHADOWSPEC;
-    DLPS_ORTHOPOINTMASKSHADOWSPEC;
-    MAX_DEFERRED_LIGHT_PS_VARIATIONS;
-}
-@:native("Atomic")
-extern enum RenderCommandType {
-    CMD_NONE;
-    CMD_CLEAR;
-    CMD_SCENEPASS;
-    CMD_QUAD;
-    CMD_FORWARDLIGHTS;
-    CMD_LIGHTVOLUMES;
-    CMD_RENDERUI;
-}
-@:native("Atomic")
-extern enum RenderCommandSortMode {
-    SORT_FRONTTOBACK;
-    SORT_BACKTOFRONT;
-}
-@:native("Atomic")
-extern enum RenderTargetSizeMode {
-    SIZE_ABSOLUTE;
-    SIZE_VIEWPORTDIVISOR;
-    SIZE_VIEWPORTMULTIPLIER;
-}
-@:native("Atomic")
-extern enum PassLightingMode {
-    LIGHTING_UNLIT;
-    LIGHTING_PERVERTEX;
-    LIGHTING_PERPIXEL;
-}
-@:native("Atomic")
-extern enum EmitterType {
-    EMITTER_SPHERE;
-    EMITTER_BOX;
-}
-@:native("Atomic")
-extern enum LoopMode2D {
-    LM_DEFAULT;
-    LM_FORCE_LOOPED;
-    LM_FORCE_CLAMPED;
-}
-@:native("Atomic")
-extern enum LightType2D {
-    LIGHT2D_DIRECTIONAL;
-    LIGHT2D_POINT;
-}
-@:native("Atomic")
-extern enum EmitterType2D {
-    EMITTER_TYPE_GRAVITY;
-    EMITTER_TYPE_RADIAL;
-}
-@:native("Atomic")
-extern enum BodyType2D {
-    BT_STATIC;
-    BT_DYNAMIC;
-    BT_KINEMATIC;
-}
-@:native("Atomic")
-extern enum Orientation2D {
-    O_ORTHOGONAL;
-    O_ISOMETRIC;
-    O_STAGGERED;
-}
-@:native("Atomic")
-extern enum TileMapLayerType2D {
-    LT_TILE_LAYER;
-    LT_OBJECT_GROUP;
-    LT_IMAGE_LAYER;
-    LT_INVALID;
-}
-@:native("Atomic")
-extern enum TileMapObjectType2D {
-    OT_RECTANGLE;
-    OT_ELLIPSE;
-    OT_POLYGON;
-    OT_POLYLINE;
-    OT_TILE;
-    OT_INVALID;
-}
-@:native("Atomic")
-extern enum ShapeType {
-    SHAPE_BOX;
-    SHAPE_SPHERE;
-    SHAPE_STATICPLANE;
-    SHAPE_CYLINDER;
-    SHAPE_CAPSULE;
-    SHAPE_CONE;
-    SHAPE_TRIANGLEMESH;
-    SHAPE_CONVEXHULL;
-    SHAPE_TERRAIN;
-}
-@:native("Atomic")
-extern enum ConstraintType {
-    CONSTRAINT_POINT;
-    CONSTRAINT_HINGE;
-    CONSTRAINT_SLIDER;
-    CONSTRAINT_CONETWIST;
-}
-@:native("Atomic")
-extern enum CollisionEventMode {
-    COLLISION_NEVER;
-    COLLISION_ACTIVE;
-    COLLISION_ALWAYS;
-}
-@:native("Atomic")
-extern enum CrowdTargetState {
-    CROWD_AGENT_TARGET_NONE;
-    CROWD_AGENT_TARGET_FAILED;
-    CROWD_AGENT_TARGET_VALID;
-    CROWD_AGENT_TARGET_REQUESTING;
-    CROWD_AGENT_TARGET_WAITINGFORQUEUE;
-    CROWD_AGENT_TARGET_WAITINGFORPATH;
-    CROWD_AGENT_TARGET_VELOCITY;
-}
-@:native("Atomic")
-extern enum CrowdAgentState {
-    CROWD_AGENT_INVALID;
-    CROWD_AGENT_READY;
-    CROWD_AGENT_TRAVERSINGLINK;
-}
-@:native("Atomic")
-extern enum NavigationQuality {
-    NAVIGATIONQUALITY_LOW;
-    NAVIGATIONQUALITY_MEDIUM;
-    NAVIGATIONQUALITY_HIGH;
-}
-@:native("Atomic")
-extern enum NavigationPushiness {
-    PUSHINESS_LOW;
-    PUSHINESS_MEDIUM;
-    PUSHINESS_HIGH;
-}
-@:native("Atomic")
-extern enum NavmeshPartitionType {
-    NAVMESH_PARTITION_WATERSHED;
-    NAVMESH_PARTITION_MONOTONE;
-}
-@:native("Atomic")
-extern enum MouseMode {
-    MM_ABSOLUTE;
-    MM_RELATIVE;
-    MM_WRAP;
-}
-@:native("Atomic")
-extern enum TEXT_ALIGN {
-    TEXT_ALIGN_LEFT;
-    TEXT_ALIGN_RIGHT;
-    TEXT_ALIGN_CENTER;
-}
-@:native("Atomic")
-extern enum UI_EDIT_TYPE {
-    UI_EDIT_TYPE_TEXT;
-    UI_EDIT_TYPE_SEARCH;
-    UI_EDIT_TYPE_PASSWORD;
-    UI_EDIT_TYPE_EMAIL;
-    UI_EDIT_TYPE_PHONE;
-    UI_EDIT_TYPE_URL;
-    UI_EDIT_TYPE_NUMBER;
-}
-@:native("Atomic")
-extern enum UI_AXIS {
-    UI_AXIS_X;
-    UI_AXIS_Y;
-}
-@:native("Atomic")
-extern enum UI_LAYOUT_SIZE {
-    UI_LAYOUT_SIZE_GRAVITY;
-    UI_LAYOUT_SIZE_PREFERRED;
-    UI_LAYOUT_SIZE_AVAILABLE;
-}
-@:native("Atomic")
-extern enum UI_LAYOUT_DISTRIBUTION {
-    UI_LAYOUT_DISTRIBUTION_PREFERRED;
-    UI_LAYOUT_DISTRIBUTION_AVAILABLE;
-    UI_LAYOUT_DISTRIBUTION_GRAVITY;
-}
-@:native("Atomic")
-extern enum UI_LAYOUT_POSITION {
-    UI_LAYOUT_POSITION_CENTER;
-    UI_LAYOUT_POSITION_LEFT_TOP;
-    UI_LAYOUT_POSITION_RIGHT_BOTTOM;
-    UI_LAYOUT_POSITION_GRAVITY;
-}
-@:native("Atomic")
-extern enum UI_LAYOUT_DISTRIBUTION_POSITION {
-    UI_LAYOUT_DISTRIBUTION_POSITION_CENTER;
-    UI_LAYOUT_DISTRIBUTION_POSITION_LEFT_TOP;
-    UI_LAYOUT_DISTRIBUTION_POSITION_RIGHT_BOTTOM;
-}
-@:native("Atomic")
-extern enum UI_MESSAGEWINDOW_SETTINGS {
-    UI_MESSAGEWINDOW_SETTINGS_OK;
-    UI_MESSAGEWINDOW_SETTINGS_OK_CANCEL;
-    UI_MESSAGEWINDOW_SETTINGS_YES_NO;
-}
-@:native("Atomic")
-extern enum UI_SIZE_DEP {
-    UI_SIZE_DEP_NONE;
-    UI_SIZE_DEP_WIDTH_DEPEND_ON_HEIGHT;
-    UI_SIZE_DEP_HEIGHT_DEPEND_ON_WIDTH;
-    UI_SIZE_DEP_BOTH;
-}
-@:native("Atomic")
-extern enum UI_SCROLL_MODE {
-    UI_SCROLL_MODE_X_Y;
-    UI_SCROLL_MODE_Y;
-    UI_SCROLL_MODE_Y_AUTO;
-    UI_SCROLL_MODE_X_AUTO_Y_AUTO;
-    UI_SCROLL_MODE_OFF;
-}
-@:native("Atomic")
-extern enum UI_TEXT_ALIGN {
-    UI_TEXT_ALIGN_LEFT;
-    UI_TEXT_ALIGN_RIGHT;
-    UI_TEXT_ALIGN_CENTER;
-}
-@:native("Atomic")
-extern enum UI_WIDGET_VISIBILITY {
-    UI_WIDGET_VISIBILITY_VISIBLE;
-    UI_WIDGET_VISIBILITY_INVISIBLE;
-    UI_WIDGET_VISIBILITY_GONE;
-}
-@:native("Atomic")
-extern enum UI_GRAVITY {
-    UI_GRAVITY_NONE;
-    UI_GRAVITY_LEFT;
-    UI_GRAVITY_RIGHT;
-    UI_GRAVITY_TOP;
-    UI_GRAVITY_BOTTOM;
-    UI_GRAVITY_LEFT_RIGHT;
-    UI_GRAVITY_TOP_BOTTOM;
-    UI_GRAVITY_ALL;
-    UI_GRAVITY_DEFAULT;
-}
-@:native("Atomic")
-extern enum UI_EVENT_TYPE {
-    UI_EVENT_TYPE_CLICK;
-    UI_EVENT_TYPE_LONG_CLICK;
-    UI_EVENT_TYPE_POINTER_DOWN;
-    UI_EVENT_TYPE_POINTER_UP;
-    UI_EVENT_TYPE_POINTER_MOVE;
-    UI_EVENT_TYPE_RIGHT_POINTER_DOWN;
-    UI_EVENT_TYPE_RIGHT_POINTER_UP;
-    UI_EVENT_TYPE_WHEEL;
-    UI_EVENT_TYPE_CHANGED;
-    UI_EVENT_TYPE_KEY_DOWN;
-    UI_EVENT_TYPE_KEY_UP;
-    UI_EVENT_TYPE_SHORTCUT;
-    UI_EVENT_TYPE_CONTEXT_MENU;
-    UI_EVENT_TYPE_FILE_DROP;
-    UI_EVENT_TYPE_TAB_CHANGED;
-    UI_EVENT_TYPE_CUSTOM;
-}
-@:native("Atomic")
-extern enum UI_WIDGET_Z_REL {
-    UI_WIDGET_Z_REL_BEFORE;
-    UI_WIDGET_Z_REL_AFTER;
-}
-@:native("Atomic")
-extern enum UI_WINDOW_SETTINGS {
-    UI_WINDOW_SETTINGS_NONE;
-    UI_WINDOW_SETTINGS_TITLEBAR;
-    UI_WINDOW_SETTINGS_RESIZABLE;
-    UI_WINDOW_SETTINGS_CLOSE_BUTTON;
-    UI_WINDOW_SETTINGS_CAN_ACTIVATE;
-    UI_WINDOW_SETTINGS_DEFAULT;
-}
-@:native("Atomic")
-extern enum CompressedFormat {
-    CF_NONE;
-    CF_RGBA;
-    CF_DXT1;
-    CF_DXT3;
-    CF_DXT5;
-    CF_ETC1;
-    CF_PVRTC_RGB_2BPP;
-    CF_PVRTC_RGBA_2BPP;
-    CF_PVRTC_RGB_4BPP;
-    CF_PVRTC_RGBA_4BPP;
-}
-@:native("Atomic")
-extern enum JSONValueType {
-    JSON_ANY;
-    JSON_OBJECT;
-    JSON_ARRAY;
-}
-@:native("Atomic")
-extern enum PListValueType {
-    PLVT_NONE;
-    PLVT_INT;
-    PLVT_BOOL;
-    PLVT_FLOAT;
-    PLVT_STRING;
-    PLVT_VALUEMAP;
-    PLVT_VALUEVECTOR;
-}
-@:native("Atomic")
-extern enum AsyncLoadState {
-    ASYNC_DONE;
-    ASYNC_QUEUED;
-    ASYNC_LOADING;
-    ASYNC_SUCCESS;
-    ASYNC_FAIL;
-}
-@:native("Atomic")
-extern enum ResourceRequest {
-    RESOURCE_CHECKEXISTS;
-    RESOURCE_GETFILE;
-}
-@:native("Atomic")
-extern enum ObserverPositionSendMode {
-    OPSM_NONE;
-    OPSM_POSITION;
-    OPSM_POSITION_ROTATION;
-}
-@:native("Atomic")
-extern enum HttpRequestState {
-    HTTP_INITIALIZING;
-    HTTP_ERROR;
-    HTTP_OPEN;
-    HTTP_CLOSED;
-}
-@:native("Atomic")
-extern enum FileMode {
-    FILE_READ;
-    FILE_WRITE;
-    FILE_READWRITE;
-}
-//Atomic Haxe Definitions
-
-extern class Atomic {
-
-    public static var engine : Engine;
-    public static var graphics: Graphics;
-    public static var renderer: Renderer;
-    public static var cache: ResourceCache;
-    public static var input: Input;
-    public static var fileSystem: FileSystem;
-    public static var network: Network;
-
-    public static var QUICKSORT_THRESHOLD: Int;
-    public static var CONVERSION_BUFFER_LENGTH: Int;
-    public static var MATRIX_CONVERSION_BUFFER_LENGTH: Int;
-
-
-    public static var NUM_FRUSTUM_PLANES: Int;
-    public static var NUM_FRUSTUM_VERTICES: Int;
-    public static var M_PI: Int;
-    public static var M_HALF_PI: Int;
-    public static var M_MIN_INT: Int;
-    public static var M_MAX_INT: Int;
-    public static var M_MIN_UNSIGNED: Int;
-    public static var M_MAX_UNSIGNED: Int;
-    public static var M_EPSILON: Int;
-    public static var M_LARGE_EPSILON: Int;
-    public static var M_MIN_NEARCLIP: Int;
-    public static var M_MAX_FOV: Int;
-    public static var M_LARGE_VALUE: Int;
-    public static var M_INFINITY: Int;
-    public static var M_DEGTORAD: Int;
-    public static var M_DEGTORAD_2: Int;
-    public static var M_RADTODEG: Int;
-
-
-    public static var AM_EDIT: Int;
-    public static var AM_FILE: Int;
-    public static var AM_NET: Int;
-    public static var AM_DEFAULT: Int;
-    public static var AM_LATESTDATA: Int;
-    public static var AM_NOEDIT: Int;
-    public static var AM_NODEID: Int;
-    public static var AM_COMPONENTID: Int;
-    public static var AM_NODEIDVECTOR: Int;
-
-
-    public static var USE_UPDATE: Int;
-    public static var USE_POSTUPDATE: Int;
-    public static var USE_FIXEDUPDATE: Int;
-    public static var USE_FIXEDPOSTUPDATE: Int;
-    public static var MAX_NETWORK_ATTRIBUTES: Int;
-    public static var FIRST_REPLICATED_ID: Int;
-    public static var LAST_REPLICATED_ID: Int;
-    public static var FIRST_LOCAL_ID: Int;
-    public static var LAST_LOCAL_ID: Int;
-    public static var SMOOTH_NONE: Int;
-    public static var SMOOTH_POSITION: Int;
-    public static var SMOOTH_ROTATION: Int;
-
-
-    public static var DEFAULT_NEARCLIP: Int;
-    public static var DEFAULT_FARCLIP: Int;
-    public static var DEFAULT_CAMERA_FOV: Int;
-    public static var DEFAULT_ORTHOSIZE: Int;
-    public static var VO_NONE: Int;
-    public static var VO_LOW_MATERIAL_QUALITY: Int;
-    public static var VO_DISABLE_SHADOWS: Int;
-    public static var VO_DISABLE_OCCLUSION: Int;
-    public static var DRAWABLE_GEOMETRY: Int;
-    public static var DRAWABLE_LIGHT: Int;
-    public static var DRAWABLE_ZONE: Int;
-    public static var DRAWABLE_GEOMETRY2D: Int;
-    public static var DRAWABLE_ANY: Int;
-    public static var DEFAULT_VIEWMASK: Int;
-    public static var DEFAULT_LIGHTMASK: Int;
-    public static var DEFAULT_SHADOWMASK: Int;
-    public static var DEFAULT_ZONEMASK: Int;
-    public static var MAX_VERTEX_LIGHTS: Int;
-    public static var ANIMATION_LOD_BASESCALE: Int;
-    public static var QUALITY_LOW: Int;
-    public static var QUALITY_MEDIUM: Int;
-    public static var QUALITY_HIGH: Int;
-    public static var QUALITY_MAX: Int;
-    public static var SHADOWQUALITY_LOW_16BIT: Int;
-    public static var SHADOWQUALITY_LOW_24BIT: Int;
-    public static var SHADOWQUALITY_HIGH_16BIT: Int;
-    public static var SHADOWQUALITY_HIGH_24BIT: Int;
-    public static var CLEAR_COLOR: Int;
-    public static var CLEAR_DEPTH: Int;
-    public static var CLEAR_STENCIL: Int;
-    public static var MASK_NONE: Int;
-    public static var MASK_POSITION: Int;
-    public static var MASK_NORMAL: Int;
-    public static var MASK_COLOR: Int;
-    public static var MASK_TEXCOORD1: Int;
-    public static var MASK_TEXCOORD2: Int;
-    public static var MASK_CUBETEXCOORD1: Int;
-    public static var MASK_CUBETEXCOORD2: Int;
-    public static var MASK_TANGENT: Int;
-    public static var MASK_BLENDWEIGHTS: Int;
-    public static var MASK_BLENDINDICES: Int;
-    public static var MASK_INSTANCEMATRIX1: Int;
-    public static var MASK_INSTANCEMATRIX2: Int;
-    public static var MASK_INSTANCEMATRIX3: Int;
-    public static var MASK_DEFAULT: Int;
-    public static var NO_ELEMENT: Int;
-    public static var MAX_RENDERTARGETS: Int;
-    public static var MAX_VERTEX_STREAMS: Int;
-    public static var MAX_CONSTANT_REGISTERS: Int;
-    public static var BITS_PER_COMPONENT: Int;
-    public static var SHADOW_MIN_QUANTIZE: Int;
-    public static var SHADOW_MIN_VIEW: Int;
-    public static var MAX_LIGHT_SPLITS: Int;
-    public static var MAX_CASCADE_SPLITS: Int;
-    public static var OCCLUSION_MIN_SIZE: Int;
-    public static var OCCLUSION_DEFAULT_MAX_TRIANGLES: Int;
-    public static var OCCLUSION_RELATIVE_BIAS: Int;
-    public static var OCCLUSION_FIXED_BIAS: Int;
-    public static var OCCLUSION_X_SCALE: Int;
-    public static var OCCLUSION_Z_SCALE: Int;
-    public static var NUM_OCTANTS: Int;
-    public static var ROOT_INDEX: Int;
-    public static var SHADOW_MIN_PIXELS: Int;
-    public static var INSTANCING_BUFFER_DEFAULT_SIZE: Int;
-    public static var MAX_VIEWPORT_TEXTURES: Int;
-    public static var MAX_TEXTURE_QUALITY_LEVELS: Int;
-
-
-    public static var CHANNEL_POSITION: Int;
-    public static var CHANNEL_ROTATION: Int;
-    public static var CHANNEL_SCALE: Int;
-    public static var MAX_BILLBOARDS: Int;
-    public static var DEFAULT_NUM_PARTICLES: Int;
-    public static var BONECOLLISION_NONE: Int;
-    public static var BONECOLLISION_SPHERE: Int;
-    public static var BONECOLLISION_BOX: Int;
-
-
-    public static var PIXEL_SIZE: Int;
-
-
-    public static var STREAM_BUFFER_LENGTH: Int;
-
-
-    public static var DEFAULT_MAX_NETWORK_ANGULAR_VELOCITY: Int;
-
-
-    public static var MOUSEB_LEFT: Int;
-    public static var MOUSEB_MIDDLE: Int;
-    public static var MOUSEB_RIGHT: Int;
-    public static var MOUSEB_X1: Int;
-    public static var MOUSEB_X2: Int;
-    public static var QUAL_SHIFT: Int;
-    public static var QUAL_CTRL: Int;
-    public static var QUAL_ALT: Int;
-    public static var QUAL_ANY: Int;
-    public static var KEY_A: Int;
-    public static var KEY_B: Int;
-    public static var KEY_C: Int;
-    public static var KEY_D: Int;
-    public static var KEY_E: Int;
-    public static var KEY_F: Int;
-    public static var KEY_G: Int;
-    public static var KEY_H: Int;
-    public static var KEY_I: Int;
-    public static var KEY_J: Int;
-    public static var KEY_K: Int;
-    public static var KEY_L: Int;
-    public static var KEY_M: Int;
-    public static var KEY_N: Int;
-    public static var KEY_O: Int;
-    public static var KEY_P: Int;
-    public static var KEY_Q: Int;
-    public static var KEY_R: Int;
-    public static var KEY_S: Int;
-    public static var KEY_T: Int;
-    public static var KEY_U: Int;
-    public static var KEY_V: Int;
-    public static var KEY_W: Int;
-    public static var KEY_X: Int;
-    public static var KEY_Y: Int;
-    public static var KEY_Z: Int;
-    public static var KEY_0: Int;
-    public static var KEY_1: Int;
-    public static var KEY_2: Int;
-    public static var KEY_3: Int;
-    public static var KEY_4: Int;
-    public static var KEY_5: Int;
-    public static var KEY_6: Int;
-    public static var KEY_7: Int;
-    public static var KEY_8: Int;
-    public static var KEY_9: Int;
-    public static var KEY_BACKSPACE: Int;
-    public static var KEY_TAB: Int;
-    public static var KEY_RETURN: Int;
-    public static var KEY_RETURN2: Int;
-    public static var KEY_KP_ENTER: Int;
-    public static var KEY_SHIFT: Int;
-    public static var KEY_CTRL: Int;
-    public static var KEY_ALT: Int;
-    public static var KEY_GUI: Int;
-    public static var KEY_PAUSE: Int;
-    public static var KEY_CAPSLOCK: Int;
-    public static var KEY_ESC: Int;
-    public static var KEY_SPACE: Int;
-    public static var KEY_PAGEUP: Int;
-    public static var KEY_PAGEDOWN: Int;
-    public static var KEY_END: Int;
-    public static var KEY_HOME: Int;
-    public static var KEY_LEFT: Int;
-    public static var KEY_UP: Int;
-    public static var KEY_RIGHT: Int;
-    public static var KEY_DOWN: Int;
-    public static var KEY_SELECT: Int;
-    public static var KEY_PRINTSCREEN: Int;
-    public static var KEY_INSERT: Int;
-    public static var KEY_DELETE: Int;
-    public static var KEY_LGUI: Int;
-    public static var KEY_RGUI: Int;
-    public static var KEY_APPLICATION: Int;
-    public static var KEY_KP_0: Int;
-    public static var KEY_KP_1: Int;
-    public static var KEY_KP_2: Int;
-    public static var KEY_KP_3: Int;
-    public static var KEY_KP_4: Int;
-    public static var KEY_KP_5: Int;
-    public static var KEY_KP_6: Int;
-    public static var KEY_KP_7: Int;
-    public static var KEY_KP_8: Int;
-    public static var KEY_KP_9: Int;
-    public static var KEY_KP_MULTIPLY: Int;
-    public static var KEY_KP_PLUS: Int;
-    public static var KEY_KP_MINUS: Int;
-    public static var KEY_KP_PERIOD: Int;
-    public static var KEY_KP_DIVIDE: Int;
-    public static var KEY_F1: Int;
-    public static var KEY_F2: Int;
-    public static var KEY_F3: Int;
-    public static var KEY_F4: Int;
-    public static var KEY_F5: Int;
-    public static var KEY_F6: Int;
-    public static var KEY_F7: Int;
-    public static var KEY_F8: Int;
-    public static var KEY_F9: Int;
-    public static var KEY_F10: Int;
-    public static var KEY_F11: Int;
-    public static var KEY_F12: Int;
-    public static var KEY_F13: Int;
-    public static var KEY_F14: Int;
-    public static var KEY_F15: Int;
-    public static var KEY_F16: Int;
-    public static var KEY_F17: Int;
-    public static var KEY_F18: Int;
-    public static var KEY_F19: Int;
-    public static var KEY_F20: Int;
-    public static var KEY_F21: Int;
-    public static var KEY_F22: Int;
-    public static var KEY_F23: Int;
-    public static var KEY_F24: Int;
-    public static var KEY_NUMLOCKCLEAR: Int;
-    public static var KEY_SCROLLLOCK: Int;
-    public static var KEY_LSHIFT: Int;
-    public static var KEY_RSHIFT: Int;
-    public static var KEY_LCTRL: Int;
-    public static var KEY_RCTRL: Int;
-    public static var KEY_LALT: Int;
-    public static var KEY_RALT: Int;
-    public static var SCANCODE_UNKNOWN: Int;
-    public static var SCANCODE_CTRL: Int;
-    public static var SCANCODE_SHIFT: Int;
-    public static var SCANCODE_ALT: Int;
-    public static var SCANCODE_GUI: Int;
-    public static var SCANCODE_A: Int;
-    public static var SCANCODE_B: Int;
-    public static var SCANCODE_C: Int;
-    public static var SCANCODE_D: Int;
-    public static var SCANCODE_E: Int;
-    public static var SCANCODE_F: Int;
-    public static var SCANCODE_G: Int;
-    public static var SCANCODE_H: Int;
-    public static var SCANCODE_I: Int;
-    public static var SCANCODE_J: Int;
-    public static var SCANCODE_K: Int;
-    public static var SCANCODE_L: Int;
-    public static var SCANCODE_M: Int;
-    public static var SCANCODE_N: Int;
-    public static var SCANCODE_O: Int;
-    public static var SCANCODE_P: Int;
-    public static var SCANCODE_Q: Int;
-    public static var SCANCODE_R: Int;
-    public static var SCANCODE_S: Int;
-    public static var SCANCODE_T: Int;
-    public static var SCANCODE_U: Int;
-    public static var SCANCODE_V: Int;
-    public static var SCANCODE_W: Int;
-    public static var SCANCODE_X: Int;
-    public static var SCANCODE_Y: Int;
-    public static var SCANCODE_Z: Int;
-    public static var SCANCODE_1: Int;
-    public static var SCANCODE_2: Int;
-    public static var SCANCODE_3: Int;
-    public static var SCANCODE_4: Int;
-    public static var SCANCODE_5: Int;
-    public static var SCANCODE_6: Int;
-    public static var SCANCODE_7: Int;
-    public static var SCANCODE_8: Int;
-    public static var SCANCODE_9: Int;
-    public static var SCANCODE_0: Int;
-    public static var SCANCODE_RETURN: Int;
-    public static var SCANCODE_ESCAPE: Int;
-    public static var SCANCODE_BACKSPACE: Int;
-    public static var SCANCODE_TAB: Int;
-    public static var SCANCODE_SPACE: Int;
-    public static var SCANCODE_MINUS: Int;
-    public static var SCANCODE_EQUALS: Int;
-    public static var SCANCODE_LEFTBRACKET: Int;
-    public static var SCANCODE_RIGHTBRACKET: Int;
-    public static var SCANCODE_BACKSLASH: Int;
-    public static var SCANCODE_NONUSHASH: Int;
-    public static var SCANCODE_SEMICOLON: Int;
-    public static var SCANCODE_APOSTROPHE: Int;
-    public static var SCANCODE_GRAVE: Int;
-    public static var SCANCODE_COMMA: Int;
-    public static var SCANCODE_PERIOD: Int;
-    public static var SCANCODE_SLASH: Int;
-    public static var SCANCODE_CAPSLOCK: Int;
-    public static var SCANCODE_F1: Int;
-    public static var SCANCODE_F2: Int;
-    public static var SCANCODE_F3: Int;
-    public static var SCANCODE_F4: Int;
-    public static var SCANCODE_F5: Int;
-    public static var SCANCODE_F6: Int;
-    public static var SCANCODE_F7: Int;
-    public static var SCANCODE_F8: Int;
-    public static var SCANCODE_F9: Int;
-    public static var SCANCODE_F10: Int;
-    public static var SCANCODE_F11: Int;
-    public static var SCANCODE_F12: Int;
-    public static var SCANCODE_PRINTSCREEN: Int;
-    public static var SCANCODE_SCROLLLOCK: Int;
-    public static var SCANCODE_PAUSE: Int;
-    public static var SCANCODE_INSERT: Int;
-    public static var SCANCODE_HOME: Int;
-    public static var SCANCODE_PAGEUP: Int;
-    public static var SCANCODE_DELETE: Int;
-    public static var SCANCODE_END: Int;
-    public static var SCANCODE_PAGEDOWN: Int;
-    public static var SCANCODE_RIGHT: Int;
-    public static var SCANCODE_LEFT: Int;
-    public static var SCANCODE_DOWN: Int;
-    public static var SCANCODE_UP: Int;
-    public static var SCANCODE_NUMLOCKCLEAR: Int;
-    public static var SCANCODE_KP_DIVIDE: Int;
-    public static var SCANCODE_KP_MULTIPLY: Int;
-    public static var SCANCODE_KP_MINUS: Int;
-    public static var SCANCODE_KP_PLUS: Int;
-    public static var SCANCODE_KP_ENTER: Int;
-    public static var SCANCODE_KP_1: Int;
-    public static var SCANCODE_KP_2: Int;
-    public static var SCANCODE_KP_3: Int;
-    public static var SCANCODE_KP_4: Int;
-    public static var SCANCODE_KP_5: Int;
-    public static var SCANCODE_KP_6: Int;
-    public static var SCANCODE_KP_7: Int;
-    public static var SCANCODE_KP_8: Int;
-    public static var SCANCODE_KP_9: Int;
-    public static var SCANCODE_KP_0: Int;
-    public static var SCANCODE_KP_PERIOD: Int;
-    public static var SCANCODE_NONUSBACKSLASH: Int;
-    public static var SCANCODE_APPLICATION: Int;
-    public static var SCANCODE_POWER: Int;
-    public static var SCANCODE_KP_EQUALS: Int;
-    public static var SCANCODE_F13: Int;
-    public static var SCANCODE_F14: Int;
-    public static var SCANCODE_F15: Int;
-    public static var SCANCODE_F16: Int;
-    public static var SCANCODE_F17: Int;
-    public static var SCANCODE_F18: Int;
-    public static var SCANCODE_F19: Int;
-    public static var SCANCODE_F20: Int;
-    public static var SCANCODE_F21: Int;
-    public static var SCANCODE_F22: Int;
-    public static var SCANCODE_F23: Int;
-    public static var SCANCODE_F24: Int;
-    public static var SCANCODE_EXECUTE: Int;
-    public static var SCANCODE_HELP: Int;
-    public static var SCANCODE_MENU: Int;
-    public static var SCANCODE_SELECT: Int;
-    public static var SCANCODE_STOP: Int;
-    public static var SCANCODE_AGAIN: Int;
-    public static var SCANCODE_UNDO: Int;
-    public static var SCANCODE_CUT: Int;
-    public static var SCANCODE_COPY: Int;
-    public static var SCANCODE_PASTE: Int;
-    public static var SCANCODE_FIND: Int;
-    public static var SCANCODE_MUTE: Int;
-    public static var SCANCODE_VOLUMEUP: Int;
-    public static var SCANCODE_VOLUMEDOWN: Int;
-    public static var SCANCODE_KP_COMMA: Int;
-    public static var SCANCODE_KP_EQUALSAS400: Int;
-    public static var SCANCODE_INTERNATIONAL1: Int;
-    public static var SCANCODE_INTERNATIONAL2: Int;
-    public static var SCANCODE_INTERNATIONAL3: Int;
-    public static var SCANCODE_INTERNATIONAL4: Int;
-    public static var SCANCODE_INTERNATIONAL5: Int;
-    public static var SCANCODE_INTERNATIONAL6: Int;
-    public static var SCANCODE_INTERNATIONAL7: Int;
-    public static var SCANCODE_INTERNATIONAL8: Int;
-    public static var SCANCODE_INTERNATIONAL9: Int;
-    public static var SCANCODE_LANG1: Int;
-    public static var SCANCODE_LANG2: Int;
-    public static var SCANCODE_LANG3: Int;
-    public static var SCANCODE_LANG4: Int;
-    public static var SCANCODE_LANG5: Int;
-    public static var SCANCODE_LANG6: Int;
-    public static var SCANCODE_LANG7: Int;
-    public static var SCANCODE_LANG8: Int;
-    public static var SCANCODE_LANG9: Int;
-    public static var SCANCODE_ALTERASE: Int;
-    public static var SCANCODE_SYSREQ: Int;
-    public static var SCANCODE_CANCEL: Int;
-    public static var SCANCODE_CLEAR: Int;
-    public static var SCANCODE_PRIOR: Int;
-    public static var SCANCODE_RETURN2: Int;
-    public static var SCANCODE_SEPARATOR: Int;
-    public static var SCANCODE_OUT: Int;
-    public static var SCANCODE_OPER: Int;
-    public static var SCANCODE_CLEARAGAIN: Int;
-    public static var SCANCODE_CRSEL: Int;
-    public static var SCANCODE_EXSEL: Int;
-    public static var SCANCODE_KP_00: Int;
-    public static var SCANCODE_KP_000: Int;
-    public static var SCANCODE_THOUSANDSSEPARATOR: Int;
-    public static var SCANCODE_DECIMALSEPARATOR: Int;
-    public static var SCANCODE_CURRENCYUNIT: Int;
-    public static var SCANCODE_CURRENCYSUBUNIT: Int;
-    public static var SCANCODE_KP_LEFTPAREN: Int;
-    public static var SCANCODE_KP_RIGHTPAREN: Int;
-    public static var SCANCODE_KP_LEFTBRACE: Int;
-    public static var SCANCODE_KP_RIGHTBRACE: Int;
-    public static var SCANCODE_KP_TAB: Int;
-    public static var SCANCODE_KP_BACKSPACE: Int;
-    public static var SCANCODE_KP_A: Int;
-    public static var SCANCODE_KP_B: Int;
-    public static var SCANCODE_KP_C: Int;
-    public static var SCANCODE_KP_D: Int;
-    public static var SCANCODE_KP_E: Int;
-    public static var SCANCODE_KP_F: Int;
-    public static var SCANCODE_KP_XOR: Int;
-    public static var SCANCODE_KP_POWER: Int;
-    public static var SCANCODE_KP_PERCENT: Int;
-    public static var SCANCODE_KP_LESS: Int;
-    public static var SCANCODE_KP_GREATER: Int;
-    public static var SCANCODE_KP_AMPERSAND: Int;
-    public static var SCANCODE_KP_DBLAMPERSAND: Int;
-    public static var SCANCODE_KP_VERTICALBAR: Int;
-    public static var SCANCODE_KP_DBLVERTICALBAR: Int;
-    public static var SCANCODE_KP_COLON: Int;
-    public static var SCANCODE_KP_HASH: Int;
-    public static var SCANCODE_KP_SPACE: Int;
-    public static var SCANCODE_KP_AT: Int;
-    public static var SCANCODE_KP_EXCLAM: Int;
-    public static var SCANCODE_KP_MEMSTORE: Int;
-    public static var SCANCODE_KP_MEMRECALL: Int;
-    public static var SCANCODE_KP_MEMCLEAR: Int;
-    public static var SCANCODE_KP_MEMADD: Int;
-    public static var SCANCODE_KP_MEMSUBTRACT: Int;
-    public static var SCANCODE_KP_MEMMULTIPLY: Int;
-    public static var SCANCODE_KP_MEMDIVIDE: Int;
-    public static var SCANCODE_KP_PLUSMINUS: Int;
-    public static var SCANCODE_KP_CLEAR: Int;
-    public static var SCANCODE_KP_CLEARENTRY: Int;
-    public static var SCANCODE_KP_BINARY: Int;
-    public static var SCANCODE_KP_OCTAL: Int;
-    public static var SCANCODE_KP_DECIMAL: Int;
-    public static var SCANCODE_KP_HEXADECIMAL: Int;
-    public static var SCANCODE_LCTRL: Int;
-    public static var SCANCODE_LSHIFT: Int;
-    public static var SCANCODE_LALT: Int;
-    public static var SCANCODE_LGUI: Int;
-    public static var SCANCODE_RCTRL: Int;
-    public static var SCANCODE_RSHIFT: Int;
-    public static var SCANCODE_RALT: Int;
-    public static var SCANCODE_RGUI: Int;
-    public static var SCANCODE_MODE: Int;
-    public static var SCANCODE_AUDIONEXT: Int;
-    public static var SCANCODE_AUDIOPREV: Int;
-    public static var SCANCODE_AUDIOSTOP: Int;
-    public static var SCANCODE_AUDIOPLAY: Int;
-    public static var SCANCODE_AUDIOMUTE: Int;
-    public static var SCANCODE_MEDIASELECT: Int;
-    public static var SCANCODE_WWW: Int;
-    public static var SCANCODE_MAIL: Int;
-    public static var SCANCODE_CALCULATOR: Int;
-    public static var SCANCODE_COMPUTER: Int;
-    public static var SCANCODE_AC_SEARCH: Int;
-    public static var SCANCODE_AC_HOME: Int;
-    public static var SCANCODE_AC_BACK: Int;
-    public static var SCANCODE_AC_FORWARD: Int;
-    public static var SCANCODE_AC_STOP: Int;
-    public static var SCANCODE_AC_REFRESH: Int;
-    public static var SCANCODE_AC_BOOKMARKS: Int;
-    public static var SCANCODE_BRIGHTNESSDOWN: Int;
-    public static var SCANCODE_BRIGHTNESSUP: Int;
-    public static var SCANCODE_DISPLAYSWITCH: Int;
-    public static var SCANCODE_KBDILLUMTOGGLE: Int;
-    public static var SCANCODE_KBDILLUMDOWN: Int;
-    public static var SCANCODE_KBDILLUMUP: Int;
-    public static var SCANCODE_EJECT: Int;
-    public static var SCANCODE_SLEEP: Int;
-    public static var SCANCODE_APP1: Int;
-    public static var SCANCODE_APP2: Int;
-    public static var HAT_CENTER: Int;
-    public static var HAT_UP: Int;
-    public static var HAT_RIGHT: Int;
-    public static var HAT_DOWN: Int;
-    public static var HAT_LEFT: Int;
-    public static var CONTROLLER_BUTTON_A: Int;
-    public static var CONTROLLER_BUTTON_B: Int;
-    public static var CONTROLLER_BUTTON_X: Int;
-    public static var CONTROLLER_BUTTON_Y: Int;
-    public static var CONTROLLER_BUTTON_BACK: Int;
-    public static var CONTROLLER_BUTTON_GUIDE: Int;
-    public static var CONTROLLER_BUTTON_START: Int;
-    public static var CONTROLLER_BUTTON_LEFTSTICK: Int;
-    public static var CONTROLLER_BUTTON_RIGHTSTICK: Int;
-    public static var CONTROLLER_BUTTON_LEFTSHOULDER: Int;
-    public static var CONTROLLER_BUTTON_RIGHTSHOULDER: Int;
-    public static var CONTROLLER_BUTTON_DPAD_UP: Int;
-    public static var CONTROLLER_BUTTON_DPAD_DOWN: Int;
-    public static var CONTROLLER_BUTTON_DPAD_LEFT: Int;
-    public static var CONTROLLER_BUTTON_DPAD_RIGHT: Int;
-    public static var CONTROLLER_AXIS_LEFTX: Int;
-    public static var CONTROLLER_AXIS_LEFTY: Int;
-    public static var CONTROLLER_AXIS_RIGHTX: Int;
-    public static var CONTROLLER_AXIS_RIGHTY: Int;
-    public static var CONTROLLER_AXIS_TRIGGERLEFT: Int;
-    public static var CONTROLLER_AXIS_TRIGGERRIGHT: Int;
-
-
-    public static var UI_VERTEX_SIZE: Int;
-
-
-    public static var COLOR_LUT_SIZE: Int;
-    public static var PRIORITY_LAST: Int;
-
-
-    public static var MSG_IDENTITY: Int;
-    public static var MSG_CONTROLS: Int;
-    public static var MSG_SCENELOADED: Int;
-    public static var MSG_REQUESTPACKAGE: Int;
-    public static var MSG_PACKAGEDATA: Int;
-    public static var MSG_LOADSCENE: Int;
-    public static var MSG_SCENECHECKSUMERROR: Int;
-    public static var MSG_CREATENODE: Int;
-    public static var MSG_NODEDELTAUPDATE: Int;
-    public static var MSG_NODELATESTDATA: Int;
-    public static var MSG_REMOVENODE: Int;
-    public static var MSG_CREATECOMPONENT: Int;
-    public static var MSG_COMPONENTDELTAUPDATE: Int;
-    public static var MSG_COMPONENTLATESTDATA: Int;
-    public static var MSG_REMOVECOMPONENT: Int;
-    public static var MSG_REMOTEEVENT: Int;
-    public static var MSG_REMOTENODEEVENT: Int;
-    public static var MSG_PACKAGEINFO: Int;
-    public static var CONTROLS_CONTENT_ID: Int;
-    public static var PACKAGE_FRAGMENT_SIZE: Int;
-
-
-    public static var SCAN_FILES: Int;
-    public static var SCAN_DIRS: Int;
-    public static var SCAN_HIDDEN: Int;
-    public static var LOG_RAW: Int;
-    public static var LOG_DEBUG: Int;
-    public static var LOG_INFO: Int;
-    public static var LOG_WARNING: Int;
-    public static var LOG_ERROR: Int;
-    public static var LOG_NONE: Int;
-
-
-}
-
-//----------------------------------------------------
-// MODULE: Container
-//----------------------------------------------------
-
-
-@:native("Atomic.RefCounted")
-extern class RefCounted {
-
-      // Construct. Allocate the reference count structure and set an initial self weak reference.
-    function new();
-
-      // Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting.
-    function addRef(): Void;
-      // Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting.
-    function releaseRef(): Void;
-      // Return reference count.
-    function refs(): Int;
-      // Return weak reference count.
-    function weakRefs(): Int;
-    function isObject(): Bool;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Math
-//----------------------------------------------------
-
-
-typedef BoundingBox = Array<Float>;
-typedef Color = Array<Float>;
-typedef Quaternion = Array<Float>;
-typedef Rect = Array<Float>;
-typedef IntRect = Array<Float>;
-typedef Vector2 = Array<Float>;
-typedef IntVector2 = Array<Float>;
-typedef Vector3 = Array<Float>;
-typedef Vector4 = Array<Float>;
-
-
-//----------------------------------------------------
-// MODULE: Core
-//----------------------------------------------------
-
-
-@:native("Atomic.Context")
-extern class Context extends RefCounted {
-
-    var eventSender: AObject;
-    var editorContext: Bool;
-
-      // Construct.
-    function new();
-
-      // Register a subsystem.
-    function registerSubsystem(subsystem: AObject): Void;
-      // Remove a subsystem.
-    function removeSubsystem(objectType: String): Void;
-      // Copy base class attributes to derived class.
-    function copyBaseAttributes(baseType: String, derivedType: String): Void;
-      // Return subsystem by type.
-    function getSubsystem(type: String): AObject;
-      // Return active event sender. Null outside event handling.
-    function getEventSender(): AObject;
-      // Return object type name from hash, or empty if unknown.
-    function getTypeName(objectType: String): String;
-      // Get whether an Editor Context
-    function getEditorContext(): Bool;
-      // Get whether an Editor Context
-    function setEditorContext(editor: Bool): Void;
-
-}
-
-@:native("Atomic.AObject")
-extern class AObject extends RefCounted {
-
-    var type: String;
-    var baseType: String;
-    var typeName: String;
-    var context: Context;
-    var eventSender: AObject;
-    var category: String;
-    var typeNameStatic: String;
-
-      // Construct.
-    function new();
-
-      // Return type hash.
-    function getType(): String;
-      // Return base class type hash.
-    function getBaseType(): String;
-      // Return type name.
-    function getTypeName(): String;
-      // Unsubscribe from a specific sender's events.
-    function unsubscribeFromEvents(sender: AObject): Void;
-      // Unsubscribe from all events.
-    function unsubscribeFromAllEvents(): Void;
-      // Return execution context.
-    function getContext(): Context;
-      // Return subsystem by type.
-    function getSubsystem(type: String): AObject;
-      // Return active event sender. Null outside event handling.
-    function getEventSender(): AObject;
-      // Return whether has subscribed to any event.
-    function hasEventHandlers(): Bool;
-      // Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered.
-    function getCategory(): String;
-    @:overload(function(): Bool{})
-    override function isObject(): Bool;
-    function getTypeNameStatic(): String;
-      function sendEvent(eventType:String, ?data:Dynamic):Void;
-      @:overload(function(sender:AObject, eventType:String, callback:Dynamic->Void):Void{})
-      function subscribeToEvent(eventType:String, callback:Dynamic->Void):Void;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Scene
-//----------------------------------------------------
-
-
-@:native("Atomic.Animatable")
-extern class Animatable extends Serializable {
-
-    var animationEnabled: Bool;
-    var objectAnimation: ObjectAnimation;
-
-      // Construct.
-    function new();
-
-      // Set animation enabled.
-    function setAnimationEnabled(enable: Bool): Void;
-      // Set object animation.
-    function setObjectAnimation(objectAnimation: ObjectAnimation): Void;
-      // Set attribute animation.
-    function setAttributeAnimation(name: String, attributeAnimation: ValueAnimation, ?wrapMode: WrapMode, ?speed: Float): Void;
-      // Set attribute animation wrap mode.
-    function setAttributeAnimationWrapMode(name: String, wrapMode: WrapMode): Void;
-      // Set attribute animation speed.
-    function setAttributeAnimationSpeed(name: String, speed: Float): Void;
-      // Return animation enabled.
-    function getAnimationEnabled(): Bool;
-      // Return object animation.
-    function getObjectAnimation(): ObjectAnimation;
-      // Return attribute animation.
-    function getAttributeAnimation(name: String): ValueAnimation;
-      // Return attribute animation wrap mode.
-    function getAttributeAnimationWrapMode(name: String): WrapMode;
-      // Return attribute animation speed.
-    function getAttributeAnimationSpeed(name: String): Float;
-
-}
-
-@:native("Atomic.Component")
-extern class Component extends Animatable {
-
-    var enabled: Bool;
-    var id: Int;
-    var node: Node;
-    var scene: Scene;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    function onSetEnabled(): Void;
-      // Mark for attribute check on the next network update.
-    @:overload(function(): Void{})
-    override function markNetworkUpdate(): Void;
-      // Visualize the component as debug geometry.
-    function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set enabled/disabled state.
-    function setEnabled(enable: Bool): Void;
-      // Remove from the scene node. If no other shared pointer references exist, causes immediate deletion.
-    function remove(): Void;
-      // Return ID.
-    function getID(): Int;
-      // Return scene node.
-    function getNode(): Node;
-      // Return the scene the node belongs to.
-    function getScene(): Scene;
-      // Return whether is enabled.
-    function isEnabled(): Bool;
-      // Return whether is effectively enabled (node is also enabled.)
-    function isEnabledEffective(): Bool;
-      // Return component in the same scene node by type. If there are several, returns the first.
-    function getComponent(type: String): Component;
-      // Prepare network update by comparing attributes and marking replication states dirty as necessary.
-    function prepareNetworkUpdate(): Void;
-
-}
-
-@:native("Atomic.Node")
-extern class Node extends Animatable {
-
-    var name: String;
-    var position: Vector3;
-    var position2D: Vector2;
-    var rotation: Quaternion;
-    var rotation2D: Float;
-    var direction: Vector3;
-    var scale: Vector3;
-    var scale2D: Vector2;
-    var worldPosition: Vector3;
-    var worldRotation: Quaternion;
-    var worldRotation2D: Float;
-    var worldDirection: Vector3;
-    var enabled: Bool;
-    var deepEnabled: Bool;
-    var enabledRecursive: Bool;
-    var parent: Node;
-    var id: Int;
-    var nameHash: String;
-    var scene: Scene;
-    var up: Vector3;
-    var right: Vector3;
-    var worldPosition2D: Vector2;
-    var worldUp: Vector3;
-    var worldRight: Vector3;
-    var worldScale: Vector3;
-    var worldScale2D: Vector2;
-    var numComponents: Int;
-    var numNetworkComponents: Int;
-    var netPositionAttr: Vector3;
-    var numPersistentChildren: Int;
-    var numPersistentComponents: Int;
-    var positionSilent: Vector3;
-    var rotationSilent: Quaternion;
-    var scaleSilent: Vector3;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately recursively to child nodes and components.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Return whether should save default-valued attributes into XML. Always save node transforms for readability, even if identity.
-    @:overload(function(): Bool{})
-    override function saveDefaultAttributes(): Bool;
-      // Mark for attribute check on the next network update.
-    @:overload(function(): Void{})
-    override function markNetworkUpdate(): Void;
-      // Set name of the scene node. Names are not required to be unique.
-    function setName(name: String): Void;
-      // Set position in parent space. If the scene node is on the root level (is child of the scene itself), this is same as world space.
-    function setPosition(position: Vector3): Void;
-      // Set position in parent space (for Atomic2D).
-    function setPosition2D(position: Vector2): Void;
-      // Set rotation in parent space.
-    function setRotation(rotation: Quaternion): Void;
-      // Set rotation in parent space (for Atomic2D).
-    function setRotation2D(rotation: Float): Void;
-      // Set forward direction in parent space. Positive Z axis equals identity rotation.
-    function setDirection(direction: Vector3): Void;
-      // Set scale in parent space.
-    function setScale(scale: Vector3): Void;
-      // Set scale in parent space (for Atomic2D).
-    function setScale2D(scale: Vector2): Void;
-      // Set position in world space.
-    function setWorldPosition(position: Vector3): Void;
-      // Set rotation in world space.
-    function setWorldRotation(rotation: Quaternion): Void;
-      // Set rotation in world space (for Atomic2D).
-    function setWorldRotation2D(rotation: Float): Void;
-      // Set forward direction in world space.
-    function setWorldDirection(direction: Vector3): Void;
-      // Move the scene node in the chosen transform space.
-    function translate(delta: Vector3, ?space: TransformSpace): Void;
-      // Move the scene node in the chosen transform space (for Atomic2D).
-    function translate2D(delta: Vector2, ?space: TransformSpace): Void;
-      // Rotate the scene node in the chosen transform space.
-    function rotate(delta: Quaternion, ?space: TransformSpace): Void;
-      // Rotate the scene node in the chosen transform space (for Atomic2D).
-    function rotate2D(delta: Float, ?space: TransformSpace): Void;
-      // Rotate around a point in the chosen transform space.
-    function rotateAround(point: Vector3, delta: Quaternion, ?space: TransformSpace): Void;
-      // Rotate around a point in the chosen transform space (for Atomic2D).
-    function rotateAround2D(point: Vector2, delta: Float, ?space: TransformSpace): Void;
-      // Rotate around the X axis.
-    function pitch(angle: Float, ?space: TransformSpace): Void;
-      // Rotate around the Y axis.
-    function yaw(angle: Float, ?space: TransformSpace): Void;
-      // Rotate around the Z axis.
-    function roll(angle: Float, ?space: TransformSpace): Void;
-      // Look at a target position in the chosen transform space. Note that the up vector is always specified in world space. Return true if successful, or false if resulted in an illegal rotation, in which case the current rotation remains.
-    function lookAt(target: Vector3, ?up: Vector3, ?space: TransformSpace): Bool;
-      // Set enabled/disabled state without recursion. Components in a disabled node become effectively disabled regardless of their own enable/disable state.
-    function setEnabled(enable: Bool): Void;
-      // Set enabled state on self and child nodes. Nodes' own enabled state is remembered (IsEnabledSelf) and can be restored.
-    function setDeepEnabled(enable: Bool): Void;
-      // Reset enabled state to the node's remembered state prior to calling SetDeepEnabled.
-    function resetDeepEnabled(): Void;
-      // Set enabled state on self and child nodes. Unlike SetDeepEnabled this does not remember the nodes' own enabled state, but overwrites it.
-    function setEnabledRecursive(enable: Bool): Void;
-      // Mark node and child nodes to need world transform recalculation. Notify listener components.
-    function markDirty(): Void;
-      // Create a child scene node (with specified ID if provided).
-    function createChild(?name: String, ?mode: CreateMode, ?id: Int): Node;
-      // Add a child scene node at a specific index. If index is not explicitly specified or is greater than current children size, append the new child at the end.
-    function addChild(node: Node, ?index: Int): Void;
-      // Remove a child scene node.
-    function removeChild(node: Node): Void;
-      // Remove all child scene nodes.
-    function removeAllChildren(): Void;
-      // Remove child scene nodes that match criteria.
-    function removeChildren(removeReplicated: Bool, removeLocal: Bool, recursive: Bool): Void;
-      // Create a component to this node (with specified ID if provided).
-    function createComponent(type: String, ?mode: CreateMode, ?id: Int): Component;
-      // Create a component to this node if it does not exist already.
-    function getOrCreateComponent(type: String, ?mode: CreateMode, ?id: Int): Component;
-      // Remove all components from this node.
-    function removeAllComponents(): Void;
-      // Remove components that match criteria.
-    function removeComponents(removeReplicated: Bool, removeLocal: Bool): Void;
-      // Clone scene node, components and child nodes. Return the clone.
-    function clone(?mode: CreateMode): Node;
-      // Remove from the parent node. If no other shared pointer references exist, causes immediate deletion.
-    function remove(): Void;
-      // Set parent scene node. Retains the world transform.
-    function setParent(parent: Node): Void;
-      // Add listener component that is notified of node being dirtied. Can either be in the same node or another.
-    function addListener(component: Component): Void;
-      // Remove listener component.
-    function removeListener(component: Component): Void;
-      // Return ID.
-    function getID(): Int;
-      // Return name.
-    function getName(): String;
-      // Return name hash.
-    function getNameHash(): String;
-      // Return parent scene node.
-    function getParent(): Node;
-      // Return scene.
-    function getScene(): Scene;
-      // Return whether is enabled. Disables nodes effectively disable all their components.
-    function isEnabled(): Bool;
-      // Returns the node's last own enabled state. May be different than the value returned by IsEnabled when SetDeepEnabled has been used.
-    function isEnabledSelf(): Bool;
-      // Return position in parent space.
-    function getPosition(): Vector3;
-      // Return position in parent space (for Atomic2D).
-    function getPosition2D(): Vector2;
-      // Return rotation in parent space.
-    function getRotation(): Quaternion;
-      // Return rotation in parent space (for Atomic2D).
-    function getRotation2D(): Float;
-      // Return forward direction in parent space. Positive Z axis equals identity rotation.
-    function getDirection(): Vector3;
-      // Return up direction in parent space. Positive Y axis equals identity rotation.
-    function getUp(): Vector3;
-      // Return right direction in parent space. Positive X axis equals identity rotation.
-    function getRight(): Vector3;
-      // Return scale in parent space.
-    function getScale(): Vector3;
-      // Return scale in parent space (for Atomic2D).
-    function getScale2D(): Vector2;
-      // Return position in world space.
-    function getWorldPosition(): Vector3;
-      // Return position in world space (for Atomic2D).
-    function getWorldPosition2D(): Vector2;
-      // Return rotation in world space.
-    function getWorldRotation(): Quaternion;
-      // Return rotation in world space (for Atomic2D).
-    function getWorldRotation2D(): Float;
-      // Return direction in world space.
-    function getWorldDirection(): Vector3;
-      // Return node's up vector in world space.
-    function getWorldUp(): Vector3;
-      // Return node's right vector in world space.
-    function getWorldRight(): Vector3;
-      // Return scale in world space.
-    function getWorldScale(): Vector3;
-      // Return scale in world space (for Atomic2D).
-    function getWorldScale2D(): Vector2;
-      // Convert a local space position or rotation to world space (for Atomic2D).
-    function localToWorld2D(vector: Vector2): Vector2;
-      // Convert a world space position or rotation to local space (for Atomic2D).
-    function worldToLocal2D(vector: Vector2): Vector2;
-      // Return whether transform has changed and world transform needs recalculation.
-    function isDirty(): Bool;
-      // Return number of child scene nodes.
-    function getNumChildren(?recursive: Bool): Int;
-      // Return child scene node by name.
-    function getChild(name: String, ?recursive: Bool): Node;
-      // Return number of components.
-    function getNumComponents(): Int;
-      // Return number of non-local components.
-    function getNumNetworkComponents(): Int;
-      // Return component by type. If there are several, returns the first.
-    function getComponent(type: String): Component;
-      // Return whether has a specific component.
-    function hasComponent(type: String): Bool;
-      // Set ID. Called by Scene.
-    function setID(id: Int): Void;
-      // Set scene. Called by Scene.
-    function setScene(scene: Scene): Void;
-      // Reset scene, ID and owner. Called by Scene.
-    function resetScene(): Void;
-      // Set network position attribute.
-    function setNetPositionAttr(value: Vector3): Void;
-      // Return network position attribute.
-    function getNetPositionAttr(): Vector3;
-      // Prepare network update by comparing attributes and marking replication states dirty as necessary.
-    function prepareNetworkUpdate(): Void;
-      // Mark node dirty in scene replication states.
-    function markReplicationDirty(): Void;
-      // Add a pre-created component.
-    function addComponent(component: Component, id: Int, mode: CreateMode): Void;
-      // Calculate number of non-temporary child nodes.
-    function getNumPersistentChildren(): Int;
-      // Calculate number of non-temporary components.
-    function getNumPersistentComponents(): Int;
-      // Set position in parent space silently without marking the node & child nodes dirty. Used by animation code.
-    function setPositionSilent(position: Vector3): Void;
-      // Set position in parent space silently without marking the node & child nodes dirty. Used by animation code.
-    function setRotationSilent(rotation: Quaternion): Void;
-      // Set scale in parent space silently without marking the node & child nodes dirty. Used by animation code.
-    function setScaleSilent(scale: Vector3): Void;
-      // Set local transform silently without marking the node & child nodes dirty. Used by animation code.
-    function setTransformSilent(position: Vector3, rotation: Quaternion, scale: Vector3): Void;
-      function saveXML(file:File):Bool;
-      function getChildrenWithName(name:String, ?recursive:Bool):Array<Node>;
-      function getChildrenWithComponent(componentType:String, ?recursive:Bool):Array<Node>;
-      function getComponents(?componentType:String, ?recursive:Bool):Array<Component>;
-      function getChildAtIndex(index:UInt):Node;
-      function createJSComponent(name:String, ?args:Dynamic):JSComponent;
-      function getJSComponent(name:String):JSComponent;
-      function createChildPrefab(childName:String, prefabPath:String):Node;
-      function loadPrefab(prefabPath:String):Bool;
-
-}
-
-@:native("Atomic.ObjectAnimation")
-extern class ObjectAnimation extends Resource {
-
-      // Construct.
-    function new();
-
-      // Add attribute animation, attribute name can in following format: "attribute" or "#0/#1/attribute" or ""#0/#1/@component#1/attribute.
-    function addAttributeAnimation(name: String, attributeAnimation: ValueAnimation, ?wrapMode: WrapMode, ?speed: Float): Void;
-      // Return attribute animation by name.
-    function getAttributeAnimation(name: String): ValueAnimation;
-      // Return attribute animation wrap mode by name.
-    function getAttributeAnimationWrapMode(name: String): WrapMode;
-      // Return attribute animation speed by name.
-    function getAttributeAnimationSpeed(name: String): Float;
-      // Return attribute animation info by name.
-    function getAttributeAnimationInfo(name: String): ValueAnimationInfo;
-
-}
-
-@:native("Atomic.PrefabComponent")
-extern class PrefabComponent extends Component {
-
-    var prefabGUID: String;
-
-      // Construct.
-    function new();
-
-    function setPrefabGUID(guid: String): Void;
-    function getPrefabGUID(): String;
-    function savePrefab(): Bool;
-    function undoPrefab(): Void;
-    function breakPrefab(): Void;
-
-}
-
-@:native("Atomic.Scene")
-extern class Scene extends Node {
-
-    var updateEnabled: Bool;
-    var timeScale: Float;
-    var elapsedTime: Float;
-    var smoothingConstant: Float;
-    var snapThreshold: Float;
-    var asyncLoadingMs: Int;
-    var asyncProgress: Float;
-    var asyncLoadMode: LoadMode;
-    var fileName: String;
-    var checksum: Int;
-    var varNamesAttr: String;
-
-      // Construct.
-    function new();
-
-      // Load from a binary file asynchronously. Return true if started successfully. The LOAD_RESOURCES_ONLY mode can also be used to preload resources from object prefab files.
-    function loadAsync(file: File, ?mode: LoadMode): Bool;
-      // Load from an XML file asynchronously. Return true if started successfully. The LOAD_RESOURCES_ONLY mode can also be used to preload resources from object prefab files.
-    function loadAsyncXML(file: File, ?mode: LoadMode): Bool;
-      // Stop asynchronous loading.
-    function stopAsyncLoading(): Void;
-      // Clear scene completely of either replicated, local or all nodes and components.
-    function clear(?clearReplicated: Bool, ?clearLocal: Bool): Void;
-      // Enable or disable scene update.
-    function setUpdateEnabled(enable: Bool): Void;
-      // Set update time scale. 1.0 = real time (default.)
-    function setTimeScale(scale: Float): Void;
-      // Set elapsed time in seconds. This can be used to prevent inaccuracy in the timer if the scene runs for a long time.
-    function setElapsedTime(time: Float): Void;
-      // Set network client motion smoothing constant.
-    function setSmoothingConstant(constant: Float): Void;
-      // Set network client motion smoothing snap threshold.
-    function setSnapThreshold(threshold: Float): Void;
-      // Set maximum milliseconds per frame to spend on async scene loading.
-    function setAsyncLoadingMs(ms: Int): Void;
-      // Clear required package files.
-    function clearRequiredPackageFiles(): Void;
-      // Register a node user variable hash reverse mapping (for editing.)
-    function registerVar(name: String): Void;
-      // Unregister a node user variable hash reverse mapping.
-    function unregisterVar(name: String): Void;
-      // Clear all registered node user variable hash reverse mappings.
-    function unregisterAllVars(): Void;
-      // Return node from the whole scene by ID, or null if not found.
-    function getNode(id: Int): Node;
-      // Return whether updates are enabled.
-    function isUpdateEnabled(): Bool;
-      // Return whether an asynchronous loading operation is in progress.
-    function isAsyncLoading(): Bool;
-      // Return asynchronous loading progress between 0.0 and 1.0, or 1.0 if not in progress.
-    function getAsyncProgress(): Float;
-      // Return the load mode of the current asynchronous loading operation.
-    function getAsyncLoadMode(): LoadMode;
-      // Return source file name.
-    function getFileName(): String;
-      // Return source file checksum.
-    function getChecksum(): Int;
-      // Return update time scale.
-    function getTimeScale(): Float;
-      // Return elapsed time in seconds.
-    function getElapsedTime(): Float;
-      // Return motion smoothing constant.
-    function getSmoothingConstant(): Float;
-      // Return motion smoothing snap threshold.
-    function getSnapThreshold(): Float;
-      // Return maximum milliseconds per frame to spend on async loading.
-    function getAsyncLoadingMs(): Int;
-      // Return a node user variable name, or empty if not registered.
-    function getVarName(hash: String): String;
-      // Update scene. Called by HandleUpdate.
-    function update(timeStep: Float): Void;
-      // Begin a threaded update. During threaded update components can choose to delay dirty processing.
-    function beginThreadedUpdate(): Void;
-      // End a threaded update. Notify components that marked themselves for delayed dirty processing.
-    function endThreadedUpdate(): Void;
-      // Add a component to the delayed dirty notify queue. Is thread-safe.
-    function delayedMarkedDirty(component: Component): Void;
-      // Return threaded update flag.
-    function isThreadedUpdate(): Bool;
-      // Get free node ID, either non-local or local.
-    function getFreeNodeID(mode: CreateMode): Int;
-      // Get free component ID, either non-local or local.
-    function getFreeComponentID(mode: CreateMode): Int;
-      // Node added. Assign scene pointer and add to ID map.
-    function nodeAdded(node: Node): Void;
-      // Node removed. Remove from ID map.
-    function nodeRemoved(node: Node): Void;
-      // Component added. Add to ID map.
-    function componentAdded(component: Component): Void;
-      // Component removed. Remove from ID map.
-    function componentRemoved(component: Component): Void;
-      // Set node user variable reverse mappings.
-    function setVarNamesAttr(value: String): Void;
-      // Return node user variable reverse mappings.
-    function getVarNamesAttr(): String;
-      // Prepare network update by comparing attributes and marking replication states dirty as necessary.
-    @:overload(function(): Void{})
-    override function prepareNetworkUpdate(): Void;
-      function getMainCamera():Camera;
-
-}
-
-@:native("Atomic.Serializable")
-extern class Serializable extends AObject {
-
-    var temporary: Bool;
-    var numAttributes: Int;
-    var numNetworkAttributes: Int;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    function applyAttributes(): Void;
-      // Return whether should save default-valued attributes into XML. Default false.
-    function saveDefaultAttributes(): Bool;
-      // Mark for attribute check on the next network update.
-    function markNetworkUpdate(): Void;
-      // Reset all editable attributes to their default values.
-    function resetToDefault(): Void;
-      // Remove instance's default values if they are set previously.
-    function removeInstanceDefault(): Void;
-      // Set temporary flag. Temporary objects will not be saved.
-    function setTemporary(enable: Bool): Void;
-      // Enable interception of an attribute from network updates. Intercepted attributes are sent as events instead of applying directly. This can be used to implement client side prediction.
-    function setInterceptNetworkUpdate(attributeName: String, enable: Bool): Void;
-      // Allocate network attribute state.
-    function allocateNetworkState(): Void;
-      // Return number of attributes.
-    function getNumAttributes(): Int;
-      // Return number of network replication attributes.
-    function getNumNetworkAttributes(): Int;
-      // Return whether is temporary.
-    function isTemporary(): Bool;
-      // Return whether an attribute's network updates are being intercepted.
-    function getInterceptNetworkUpdate(attributeName: String): Bool;
-
-}
-
-@:native("Atomic.SmoothedTransform")
-extern class SmoothedTransform extends Component {
-
-    var targetPosition: Vector3;
-    var targetRotation: Quaternion;
-    var targetWorldPosition: Vector3;
-    var targetWorldRotation: Quaternion;
-
-      // Construct.
-    function new();
-
-      // Update smoothing.
-    function update(constant: Float, squaredSnapThreshold: Float): Void;
-      // Set target position in parent space.
-    function setTargetPosition(position: Vector3): Void;
-      // Set target rotation in parent space.
-    function setTargetRotation(rotation: Quaternion): Void;
-      // Set target position in world space.
-    function setTargetWorldPosition(position: Vector3): Void;
-      // Set target rotation in world space.
-    function setTargetWorldRotation(rotation: Quaternion): Void;
-      // Return target position in parent space.
-    function getTargetPosition(): Vector3;
-      // Return target rotation in parent space.
-    function getTargetRotation(): Quaternion;
-      // Return target position in world space.
-    function getTargetWorldPosition(): Vector3;
-      // Return target rotation in world space.
-    function getTargetWorldRotation(): Quaternion;
-      // Return whether smoothing is in progress.
-    function isInProgress(): Bool;
-
-}
-
-@:native("Atomic.SplinePath")
-extern class SplinePath extends Component {
-
-    var interpolationMode: InterpolationMode;
-    var speed: Float;
-    var position: Vector3;
-    var controlledNode: Node;
-    var controlledIdAttr: Int;
-
-      // Construct an Empty SplinePath.
-    function new();
-
-      // Apply Attributes to the SplinePath.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Draw the Debug Geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Add a Node to the SplinePath as a Control Point.
-    function addControlPoint(point: Node, ?index: Int): Void;
-      // Remove a Node Control Point from the SplinePath.
-    function removeControlPoint(point: Node): Void;
-      // Clear the Control Points from the SplinePath.
-    function clearControlPoints(): Void;
-      // Set the Interpolation Mode.
-    function setInterpolationMode(interpolationMode: InterpolationMode): Void;
-      // Set the movement Speed.
-    function setSpeed(speed: Float): Void;
-      // Set the controlled Node's position on the SplinePath.
-    function setPosition(factor: Float): Void;
-      // Set the Node to be moved along the SplinePath.
-    function setControlledNode(controlled: Node): Void;
-      // Get the Interpolation Mode.
-    function getInterpolationMode(): InterpolationMode;
-      // Get the movement Speed.
-    function getSpeed(): Float;
-      // Get the parent Node's last position on the spline.
-    function getPosition(): Vector3;
-      // Get the controlled Node.
-    function getControlledNode(): Node;
-      // Get a point on the SplinePath from 0.f to 1.f where 0 is the start and 1 is the end.
-    function getPoint(factor: Float): Vector3;
-      // Move the controlled Node to the next position along the SplinePath based off the Speed value.
-    function move(timeStep: Float): Void;
-      // Reset movement along the path.
-    function reset(): Void;
-      // Returns whether the movement along the SplinePath is complete.
-    function isFinished(): Bool;
-      // Set Controlled Node ID attribute.
-    function setControlledIdAttr(value: Int): Void;
-      // Get Controlled Node ID attribute.
-    function getControlledIdAttr(): Int;
-
-}
-
-@:native("Atomic.ValueAnimation")
-extern class ValueAnimation extends Resource {
-
-    var interpolationMethod: InterpMethod;
-    var splineTension: Float;
-    var valueType: VariantType;
-    var beginTime: Float;
-    var endTime: Float;
-
-      // Construct.
-    function new();
-
-      // Set interpolation method.
-    function setInterpolationMethod(method: InterpMethod): Void;
-      // Set spline tension, should be between 0.0f and 1.0f, but this is not a must.
-    function setSplineTension(tension: Float): Void;
-      // Set value type.
-    function setValueType(valueType: VariantType): Void;
-      // Return animation is valid.
-    function isValid(): Bool;
-      // Return interpolation method.
-    function getInterpolationMethod(): InterpMethod;
-      // Return spline tension.
-    function getSplineTension(): Float;
-      // Return value type.
-    function getValueType(): VariantType;
-      // Return begin time.
-    function getBeginTime(): Float;
-      // Return end time.
-    function getEndTime(): Float;
-      // Has event frames.
-    function hasEventFrames(): Bool;
-
-}
-
-@:native("Atomic.ValueAnimationInfo")
-extern class ValueAnimationInfo extends RefCounted {
-
-    var wrapMode: WrapMode;
-    var speed: Float;
-    var target: AObject;
-    var animation: ValueAnimation;
-
-      // Construct without target object.
-    function new(animation: ValueAnimation, wrapMode: WrapMode, speed: Float);
-
-      // Update. Return true when the animation is finished. No-op when the target object is not defined.
-    function update(timeStep: Float): Bool;
-      // Set wrap mode.
-    function setWrapMode(wrapMode: WrapMode): Void;
-      // Set speed.
-    function setSpeed(speed: Float): Void;
-      // Return target object.
-    function getTarget(): AObject;
-      // Return animation.
-    function getAnimation(): ValueAnimation;
-      // Return wrap mode.
-    function getWrapMode(): WrapMode;
-      // Return speed.
-    function getSpeed(): Float;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Graphics
-//----------------------------------------------------
-
-
-@:native("Atomic.Camera")
-extern class Camera extends Component {
-
-    var nearClip: Float;
-    var farClip: Float;
-    var fov: Float;
-    var orthoSize: Float;
-    var aspectRatio: Float;
-    var fillMode: FillMode;
-    var zoom: Float;
-    var lodBias: Float;
-    var viewMask: Int;
-    var viewOverrideFlags: Int;
-    var orthographic: Bool;
-    var autoAspectRatio: Bool;
-    var projectionOffset: Vector2;
-    var useReflection: Bool;
-    var useClipping: Bool;
-    var flipVertical: Bool;
-    var halfViewSize: Float;
-    var reverseCulling: Bool;
-    var aspectRatioInternal: Float;
-    var orthoSizeAttr: Float;
-    var reflectionPlaneAttr: Vector4;
-    var clipPlaneAttr: Vector4;
-
-      // Construct.
-    function new();
-
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set near clip distance.
-    function setNearClip(nearClip: Float): Void;
-      // Set far clip distance.
-    function setFarClip(farClip: Float): Void;
-      // Set vertical field of view in degrees.
-    function setFov(fov: Float): Void;
-      // Set orthographic mode view uniform size.
-    function setOrthoSize(orthoSize: Float): Void;
-      // Set aspect ratio manually. Disables the auto aspect ratio -mode.
-    function setAspectRatio(aspectRatio: Float): Void;
-      // Set polygon fill mode to use when rendering a scene.
-    function setFillMode(mode: FillMode): Void;
-      // Set zoom.
-    function setZoom(zoom: Float): Void;
-      // Set LOD bias.
-    function setLodBias(bias: Float): Void;
-      // Set view mask. Will be and'ed with object's view mask to see if the object should be rendered.
-    function setViewMask(mask: Int): Void;
-      // Set view override flags.
-    function setViewOverrideFlags(flags: Int): Void;
-      // Set orthographic mode enabled/disabled.
-    function setOrthographic(enable: Bool): Void;
-      // Set automatic aspect ratio based on viewport dimensions. Enabled by default.
-    function setAutoAspectRatio(enable: Bool): Void;
-      // Set projection offset. It needs to be calculated as (offset in pixels) / (viewport dimensions.)
-    function setProjectionOffset(offset: Vector2): Void;
-      // Set reflection mode.
-    function setUseReflection(enable: Bool): Void;
-      // Set whether to use a custom clip plane.
-    function setUseClipping(enable: Bool): Void;
-      // Set vertical flipping mode. Called internally by View to resolve OpenGL / Direct3D9 rendertarget sampling differences.
-    function setFlipVertical(enable: Bool): Void;
-      // Return far clip distance.
-    function getFarClip(): Float;
-      // Return near clip distance.
-    function getNearClip(): Float;
-      // Return vertical field of view in degrees.
-    function getFov(): Float;
-      // Return orthographic mode size.
-    function getOrthoSize(): Float;
-      // Return aspect ratio.
-    function getAspectRatio(): Float;
-      // Return zoom.
-    function getZoom(): Float;
-      // Return LOD bias.
-    function getLodBias(): Float;
-      // Return view mask.
-    function getViewMask(): Int;
-      // Return view override flags.
-    function getViewOverrideFlags(): Int;
-      // Return fill mode.
-    function getFillMode(): FillMode;
-      // Return orthographic flag.
-    function isOrthographic(): Bool;
-      // Return auto aspect ratio flag.
-    function getAutoAspectRatio(): Bool;
-      // Return frustum near and far sizes.
-    function getFrustumSize(near: Vector3, far: Vector3): Void;
-      // Return half view size.
-    function getHalfViewSize(): Float;
-    function worldToScreenPoint(worldPos: Vector3): Vector2;
-    function screenToWorldPoint(screenPos: Vector3): Vector3;
-      // Return projection offset.
-    function getProjectionOffset(): Vector2;
-      // Return whether is using reflection.
-    function getUseReflection(): Bool;
-      // Return whether is using a custom clipping plane.
-    function getUseClipping(): Bool;
-      // Return vertical flipping mode.
-    function getFlipVertical(): Bool;
-      // Return whether to reverse culling; affected by vertical flipping and reflection.
-    function getReverseCulling(): Bool;
-      // Return distance to position. In orthographic mode uses only Z coordinate.
-    function getDistance(worldPos: Vector3): Float;
-      // Return squared distance to position. In orthographic mode uses only Z coordinate.
-    function getDistanceSquared(worldPos: Vector3): Float;
-      // Return a scene node's LOD scaled distance.
-    function getLodDistance(distance: Float, scale: Float, bias: Float): Float;
-      // Return a world rotation for facing a camera on certain axes based on the existing world rotation.
-    function getFaceCameraRotation(position: Vector3, rotation: Quaternion, mode: FaceCameraMode): Quaternion;
-      // Return if projection parameters are valid for rendering and raycasting.
-    function isProjectionValid(): Bool;
-      // Set aspect ratio without disabling the "auto aspect ratio" mode. Called internally by View.
-    function setAspectRatioInternal(aspectRatio: Float): Void;
-      // Set orthographic size attribute without forcing the aspect ratio.
-    function setOrthoSizeAttr(orthoSize: Float): Void;
-      // Set reflection plane attribute.
-    function setReflectionPlaneAttr(value: Vector4): Void;
-      // Return reflection plane attribute.
-    function getReflectionPlaneAttr(): Vector4;
-      // Set clipping plane attribute.
-    function setClipPlaneAttr(value: Vector4): Void;
-      // Return clipping plane attribute.
-    function getClipPlaneAttr(): Vector4;
-
-}
-
-@:native("Atomic.DebugRenderer")
-extern class DebugRenderer extends Component {
-
-    var view: Camera;
-
-      // Construct.
-    function new();
-
-      // Set the camera viewpoint. Call before rendering, or before adding geometry if you want to use culling.
-    function setView(camera: Camera): Void;
-      // Add a scene node represented as its coordinate axes.
-    function addNode(node: Node, ?scale: Float, ?depthTest: Bool): Void;
-      // Add a bounding box.
-    function addBoundingBox(box: BoundingBox, color: Color, ?depthTest: Bool): Void;
-      // Add a cylinder
-    function addCylinder(position: Vector3, radius: Float, height: Float, color: Color, ?depthTest: Bool): Void;
-      // Update vertex buffer and render all debug lines. The viewport and rendertarget should be set before.
-    function render(): Void;
-      // Check whether a bounding box is inside the view frustum.
-    function isInside(box: BoundingBox): Bool;
-      // Return whether has something to render.
-    function hasContent(): Bool;
-
-}
-
-@:native("Atomic.Drawable")
-extern class Drawable extends Component {
-
-    var updateGeometryType: UpdateGeometryType;
-    var numOccluderTriangles: Int;
-    var drawDistance: Float;
-    var shadowDistance: Float;
-    var lodBias: Float;
-    var viewMask: Int;
-    var lightMask: Int;
-    var shadowMask: Int;
-    var zoneMask: Int;
-    var maxLights: Int;
-    var castShadows: Bool;
-    var occluder: Bool;
-    var occludee: Bool;
-    var boundingBox: BoundingBox;
-    var worldBoundingBox: BoundingBox;
-    var drawableFlags: Dynamic;
-    var sortValue: Float;
-    var basePass: Int;
-    var zone: Zone;
-    var distance: Float;
-    var lodDistance: Float;
-    var firstLight: Light;
-    var minZ: Float;
-    var maxZ: Float;
-
-      // Construct.
-    function new(drawableFlags: Dynamic);
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-    function getUpdateGeometryType(): UpdateGeometryType;
-      // Return number of occlusion geometry triangles.
-    function getNumOccluderTriangles(): Int;
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set draw distance.
-    function setDrawDistance(distance: Float): Void;
-      // Set shadow draw distance.
-    function setShadowDistance(distance: Float): Void;
-      // Set LOD bias.
-    function setLodBias(bias: Float): Void;
-      // Set view mask. Is and'ed with camera's view mask to see if the object should be rendered.
-    function setViewMask(mask: Int): Void;
-      // Set light mask. Is and'ed with light's and zone's light mask to see if the object should be lit.
-    function setLightMask(mask: Int): Void;
-      // Set shadow mask. Is and'ed with light's light mask and zone's shadow mask to see if the object should be rendered to a shadow map.
-    function setShadowMask(mask: Int): Void;
-      // Set zone mask. Is and'ed with zone's zone mask to see if the object should belong to the zone.
-    function setZoneMask(mask: Int): Void;
-      // Set maximum number of per-pixel lights. Default 0 is unlimited.
-    function setMaxLights(num: Int): Void;
-      // Set shadowcaster flag.
-    function setCastShadows(enable: Bool): Void;
-      // Set occlusion flag.
-    function setOccluder(enable: Bool): Void;
-      // Set occludee flag.
-    function setOccludee(enable: Bool): Void;
-      // Mark for update and octree reinsertion. Update is automatically queued when the drawable's scene node moves or changes scale.
-    function markForUpdate(): Void;
-      // Return local space bounding box. May not be applicable or properly updated on all drawables.
-    function getBoundingBox(): BoundingBox;
-      // Return world-space bounding box.
-    function getWorldBoundingBox(): BoundingBox;
-      // Return drawable flags.
-    function getDrawableFlags(): Dynamic;
-      // Return draw distance.
-    function getDrawDistance(): Float;
-      // Return shadow draw distance.
-    function getShadowDistance(): Float;
-      // Return LOD bias.
-    function getLodBias(): Float;
-      // Return view mask.
-    function getViewMask(): Int;
-      // Return light mask.
-    function getLightMask(): Int;
-      // Return shadow mask.
-    function getShadowMask(): Int;
-      // Return zone mask.
-    function getZoneMask(): Int;
-      // Return maximum number of per-pixel lights.
-    function getMaxLights(): Int;
-      // Return shadowcaster flag.
-    function getCastShadows(): Bool;
-      // Return occluder flag.
-    function isOccluder(): Bool;
-      // Return occludee flag.
-    function isOccludee(): Bool;
-      // Set new zone. Zone assignment may optionally be temporary, meaning it needs to be re-evaluated on the next frame.
-    function setZone(zone: Zone, ?temporary: Bool): Void;
-      // Set sorting value.
-    function setSortValue(value: Float): Void;
-      // Set view-space depth bounds.
-    function setMinMaxZ(minZ: Float, maxZ: Float): Void;
-      // Mark in view without specifying a camera. Used for shadow casters.
-    function markInView(frameNumber: Int): Void;
-      // Sort and limit per-pixel lights to maximum allowed. Convert extra lights into vertex lights.
-    function limitLights(): Void;
-      // Sort and limit per-vertex lights to maximum allowed.
-    function limitVertexLights(removeConvertedLights: Bool): Void;
-      // Set base pass flag for a batch.
-    function setBasePass(batchIndex: Int): Void;
-      // Return current zone.
-    function getZone(): Zone;
-      // Return whether current zone is inconclusive or dirty due to the drawable moving.
-    function isZoneDirty(): Bool;
-      // Return distance from camera.
-    function getDistance(): Float;
-      // Return LOD scaled distance from camera.
-    function getLodDistance(): Float;
-      // Return sorting value.
-    function getSortValue(): Float;
-      // Return whether has a base pass.
-    function hasBasePass(batchIndex: Int): Bool;
-      // Return the first added per-pixel light.
-    function getFirstLight(): Light;
-      // Return the minimum view-space depth.
-    function getMinZ(): Float;
-      // Return the maximum view-space depth.
-    function getMaxZ(): Float;
-    function addLight(light: Light): Void;
-    function addVertexLight(light: Light): Void;
-
-}
-
-@:native("Atomic.Light")
-extern class Light extends Drawable {
-
-    var lightType: LightType;
-    var perVertex: Bool;
-    var color: Color;
-    var specularIntensity: Float;
-    var brightness: Float;
-    var range: Float;
-    var fov: Float;
-    var aspectRatio: Float;
-    var fadeDistance: Float;
-    var shadowFadeDistance: Float;
-    var shadowIntensity: Float;
-    var shadowResolution: Float;
-    var shadowNearFarRatio: Float;
-    var rampTexture: Texture;
-    var shapeTexture: Texture;
-    var effectiveColor: Color;
-    var effectiveSpecularIntensity: Float;
-    var numShadowSplits: Int;
-
-      // Construct.
-    function new();
-
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set light type.
-    function setLightType(type: LightType): Void;
-      // Set vertex lighting mode.
-    function setPerVertex(enable: Bool): Void;
-      // Set color.
-    function setColor(color: Color): Void;
-      // Set specular intensity. Zero disables specular calculations.
-    function setSpecularIntensity(intensity: Float): Void;
-      // Set light brightness multiplier. Both the color and specular intensity are multiplied with this to get final values for rendering.
-    function setBrightness(brightness: Float): Void;
-      // Set range.
-    function setRange(range: Float): Void;
-      // Set spotlight field of view.
-    function setFov(fov: Float): Void;
-      // Set spotlight aspect ratio.
-    function setAspectRatio(aspectRatio: Float): Void;
-      // Set fade out start distance.
-    function setFadeDistance(distance: Float): Void;
-      // Set shadow fade out start distance. Only has effect if shadow distance is also non-zero.
-    function setShadowFadeDistance(distance: Float): Void;
-      // Set shadow intensity between 0.0 - 1.0. 0.0 (the default) gives fully dark shadows.
-    function setShadowIntensity(intensity: Float): Void;
-      // Set shadow resolution between 0.25 - 1.0. Determines the shadow map to use.
-    function setShadowResolution(resolution: Float): Void;
-      // Set shadow camera near/far clip distance ratio.
-    function setShadowNearFarRatio(nearFarRatio: Float): Void;
-      // Set range attenuation texture.
-    function setRampTexture(texture: Texture): Void;
-      // Set spotlight attenuation texture.
-    function setShapeTexture(texture: Texture): Void;
-      // Return light type.
-    function getLightType(): LightType;
-      // Return vertex lighting mode.
-    function getPerVertex(): Bool;
-      // Return color.
-    function getColor(): Color;
-      // Return specular intensity.
-    function getSpecularIntensity(): Float;
-      // Return brightness multiplier.
-    function getBrightness(): Float;
-      // Return effective color, multiplied by brightness. Do not multiply the alpha so that can compare against the default black color to detect a light with no effect.
-    function getEffectiveColor(): Color;
-      // Return effective specular intensity, multiplied by absolute value of brightness.
-    function getEffectiveSpecularIntensity(): Float;
-      // Return range.
-    function getRange(): Float;
-      // Return spotlight field of view.
-    function getFov(): Float;
-      // Return spotlight aspect ratio.
-    function getAspectRatio(): Float;
-      // Return fade start distance.
-    function getFadeDistance(): Float;
-      // Return shadow fade start distance.
-    function getShadowFadeDistance(): Float;
-      // Return shadow intensity.
-    function getShadowIntensity(): Float;
-      // Return shadow resolution.
-    function getShadowResolution(): Float;
-      // Return shadow camera near/far clip distance ratio.
-    function getShadowNearFarRatio(): Float;
-      // Return range attenuation texture.
-    function getRampTexture(): Texture;
-      // Return spotlight attenuation texture.
-    function getShapeTexture(): Texture;
-      // Return number of shadow map cascade splits for a directional light, considering also graphics API limitations.
-    function getNumShadowSplits(): Int;
-      // Return whether light has negative (darkening) color.
-    function isNegative(): Bool;
-      // Return a divisor value based on intensity for calculating the sort value.
-    function getIntensityDivisor(?attenuation: Float): Float;
-      function getShadowCascade():Array<Float>;
-      function setShadowCascade(args:Array<Float>):Void;
-      function setShadowCascadeParameter(index:Int, value:Float):Void;
-
-}
-
-@:native("Atomic.Material")
-extern class Material extends Resource {
-
-    var numTechniques: Int;
-    var cullMode: CullMode;
-    var shadowCullMode: CullMode;
-    var fillMode: FillMode;
-    var scene: Scene;
-    var auxViewFrameNumber: Int;
-    var occlusion: Bool;
-    var specular: Bool;
-    var shaderParameterHash: Int;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Set number of techniques.
-    function setNumTechniques(num: Int): Void;
-      // Set technique.
-    function setTechnique(index: Int, tech: Technique, ?qualityLevel: Int, ?lodDistance: Float): Void;
-    function setShaderParameterAnimation(name: String, animation: ValueAnimation, ?wrapMode: WrapMode, ?speed: Float): Void;
-      // Set shader parameter animation wrap mode.
-    function setShaderParameterAnimationWrapMode(name: String, wrapMode: WrapMode): Void;
-      // Set shader parameter animation speed.
-    function setShaderParameterAnimationSpeed(name: String, speed: Float): Void;
-      // Set texture.
-    function setTexture(unit: TextureUnit, texture: Texture): Void;
-      // Set culling mode.
-    function setCullMode(mode: CullMode): Void;
-      // Set culling mode for shadows.
-    function setShadowCullMode(mode: CullMode): Void;
-      // Set polygon fill mode. Interacts with the camera's fill mode setting so that the "least filled" mode will be used.
-    function setFillMode(mode: FillMode): Void;
-      // Associate the material with a scene to ensure that shader parameter animation happens in sync with scene update, respecting the scene time scale. If no scene is set, the global update events will be used.
-    function setScene(scene: Scene): Void;
-      // Remove shader parameter.
-    function removeShaderParameter(name: String): Void;
-      // Reset all shader pointers.
-    function releaseShaders(): Void;
-      // Clone the material.
-    function clone(?cloneName: String): Material;
-      // Ensure that material techniques are listed in correct order.
-    function sortTechniques(): Void;
-      // Mark material for auxiliary view rendering.
-    function markForAuxView(frameNumber: Int): Void;
-      // Return number of techniques.
-    function getNumTechniques(): Int;
-      // Return technique by index.
-    function getTechnique(index: Int): Technique;
-      // Return pass by technique index and pass name.
-    function getPass(index: Int, passName: String): Pass;
-      // Return texture by unit.
-    function getTexture(unit: TextureUnit): Texture;
-      // Return shader parameter animation.
-    function getShaderParameterAnimation(name: String): ValueAnimation;
-      // Return shader parameter animation wrap mode.
-    function getShaderParameterAnimationWrapMode(name: String): WrapMode;
-      // Return shader parameter animation speed.
-    function getShaderParameterAnimationSpeed(name: String): Float;
-      // Return normal culling mode.
-    function getCullMode(): CullMode;
-      // Return culling mode for shadows.
-    function getShadowCullMode(): CullMode;
-      // Return polygon fill mode.
-    function getFillMode(): FillMode;
-      // Return last auxiliary view rendered frame number.
-    function getAuxViewFrameNumber(): Int;
-      // Return whether should render occlusion.
-    function getOcclusion(): Bool;
-      // Return whether should render specular.
-    function getSpecular(): Bool;
-      // Return the scene associated with the material for shader parameter animation updates.
-    function getScene(): Scene;
-      // Return shader parameter hash value. Used as an optimization to avoid setting shader parameters unnecessarily.
-    function getShaderParameterHash(): Int;
-      // Return name for texture unit.
-    function getTextureUnitName(unit: TextureUnit): String;
-
-}
-
-@:native("Atomic.Octree")
-extern class Octree extends Component {
-
-    var numLevels: Int;
-
-      // Construct.
-    function new();
-
-      // Set size and maximum subdivision levels. If octree is not empty, drawable objects will be temporarily moved to the root.
-    function setSize(box: BoundingBox, numLevels: Int): Void;
-      // Add a drawable manually.
-    function addManualDrawable(drawable: Drawable): Void;
-      // Remove a manually added drawable.
-    function removeManualDrawable(drawable: Drawable): Void;
-      // Return subdivision levels.
-    function getNumLevels(): Int;
-      // Mark drawable object as requiring an update and a reinsertion.
-    function queueUpdate(drawable: Drawable): Void;
-      // Cancel drawable object's update.
-    function cancelUpdate(drawable: Drawable): Void;
-
-}
-
-@:native("Atomic.Renderer")
-extern class Renderer extends AObject {
-
-    var numViewports: Int;
-    var hDRRendering: Bool;
-    var specularLighting: Bool;
-    var textureAnisotropy: Int;
-    var textureFilterMode: TextureFilterMode;
-    var textureQuality: Int;
-    var materialQuality: Int;
-    var drawShadows: Bool;
-    var shadowMapSize: Int;
-    var shadowQuality: Int;
-    var reuseShadowMaps: Bool;
-    var maxShadowMaps: Int;
-    var dynamicInstancing: Bool;
-    var minInstances: Int;
-    var maxSortedInstances: Int;
-    var maxOccluderTriangles: Int;
-    var occlusionBufferSize: Int;
-    var occluderSizeThreshold: Float;
-    var mobileShadowBiasMul: Float;
-    var mobileShadowBiasAdd: Float;
-    var defaultRenderPath: RenderPath;
-    var numViews: Int;
-    var numPrimitives: Int;
-    var numBatches: Int;
-    var defaultZone: Zone;
-    var defaultMaterial: Material;
-    var defaultLightRamp: Texture2D;
-    var defaultLightSpot: Texture2D;
-    var faceSelectCubeMap: TextureCube;
-    var indirectionCubeMap: TextureCube;
-    var shadowCamera: Camera;
-
-      // Construct.
-    function new();
-
-      // Set number of backbuffer viewports to render.
-    function setNumViewports(num: Int): Void;
-      // Set a backbuffer viewport.
-    function setViewport(index: Int, viewport: Viewport): Void;
-      // Set HDR rendering on/off.
-    function setHDRRendering(enable: Bool): Void;
-      // Set specular lighting on/off.
-    function setSpecularLighting(enable: Bool): Void;
-      // Set texture anisotropy.
-    function setTextureAnisotropy(level: Int): Void;
-      // Set texture filtering.
-    function setTextureFilterMode(mode: TextureFilterMode): Void;
-      // Set texture quality level. See the QUALITY constants in GraphicsDefs.h.
-    function setTextureQuality(quality: Int): Void;
-      // Set material quality level. See the QUALITY constants in GraphicsDefs.h.
-    function setMaterialQuality(quality: Int): Void;
-      // Set shadows on/off.
-    function setDrawShadows(enable: Bool): Void;
-      // Set shadow map resolution.
-    function setShadowMapSize(size: Int): Void;
-      // Set shadow quality mode. See the SHADOWQUALITY constants in GraphicsDefs.h.
-    function setShadowQuality(quality: Int): Void;
-      // Set reuse of shadow maps. Default is true. If disabled, also transparent geometry can be shadowed.
-    function setReuseShadowMaps(enable: Bool): Void;
-      // Set maximum number of shadow maps created for one resolution. Only has effect if reuse of shadow maps is disabled.
-    function setMaxShadowMaps(shadowMaps: Int): Void;
-      // Set dynamic instancing on/off.
-    function setDynamicInstancing(enable: Bool): Void;
-      // Set minimum number of instances required in a batch group to render as instanced.
-    function setMinInstances(instances: Int): Void;
-      // Set maximum number of sorted instances per batch group. If exceeded, instances are rendered unsorted.
-    function setMaxSortedInstances(instances: Int): Void;
-      // Set maximum number of occluder trianges.
-    function setMaxOccluderTriangles(triangles: Int): Void;
-      // Set occluder buffer width.
-    function setOcclusionBufferSize(size: Int): Void;
-      // Set required screen size (1.0 = full screen) for occluders.
-    function setOccluderSizeThreshold(screenSize: Float): Void;
-      // Set shadow depth bias multiplier for mobile platforms (OpenGL ES.) No effect on desktops. Default 2.
-    function setMobileShadowBiasMul(mul: Float): Void;
-      // Set shadow depth bias addition for mobile platforms (OpenGL ES.)  No effect on desktops. Default 0.0001.
-    function setMobileShadowBiasAdd(add: Float): Void;
-      // Force reload of shaders.
-    function reloadShaders(): Void;
-      // Return number of backbuffer viewports.
-    function getNumViewports(): Int;
-      // Return backbuffer viewport by index.
-    function getViewport(index: Int): Viewport;
-      // Return default renderpath.
-    function getDefaultRenderPath(): RenderPath;
-      // Return whether HDR rendering is enabled.
-    function getHDRRendering(): Bool;
-      // Return whether specular lighting is enabled.
-    function getSpecularLighting(): Bool;
-      // Return whether drawing shadows is enabled.
-    function getDrawShadows(): Bool;
-      // Return texture anisotropy.
-    function getTextureAnisotropy(): Int;
-      // Return texture filtering.
-    function getTextureFilterMode(): TextureFilterMode;
-      // Return texture quality level.
-    function getTextureQuality(): Int;
-      // Return material quality level.
-    function getMaterialQuality(): Int;
-      // Return shadow map resolution.
-    function getShadowMapSize(): Int;
-      // Return shadow quality.
-    function getShadowQuality(): Int;
-      // Return whether shadow maps are reused.
-    function getReuseShadowMaps(): Bool;
-      // Return maximum number of shadow maps per resolution.
-    function getMaxShadowMaps(): Int;
-      // Return whether dynamic instancing is in use.
-    function getDynamicInstancing(): Bool;
-      // Return minimum number of instances required in a batch group to render as instanced.
-    function getMinInstances(): Int;
-      // Return maximum number of sorted instances per batch group.
-    function getMaxSortedInstances(): Int;
-      // Return maximum number of occluder triangles.
-    function getMaxOccluderTriangles(): Int;
-      // Return occlusion buffer width.
-    function getOcclusionBufferSize(): Int;
-      // Return occluder screen size threshold.
-    function getOccluderSizeThreshold(): Float;
-      // Return shadow depth bias multiplier for mobile platforms.
-    function getMobileShadowBiasMul(): Float;
-      // Return shadow depth bias addition for mobile platforms.
-    function getMobileShadowBiasAdd(): Float;
-      // Return number of views rendered.
-    function getNumViews(): Int;
-      // Return number of primitives rendered.
-    function getNumPrimitives(): Int;
-      // Return number of batches rendered.
-    function getNumBatches(): Int;
-      // Return number of geometries rendered.
-    function getNumGeometries(?allViews: Bool): Int;
-      // Return number of lights rendered.
-    function getNumLights(?allViews: Bool): Int;
-      // Return number of shadow maps rendered.
-    function getNumShadowMaps(?allViews: Bool): Int;
-      // Return number of occluders rendered.
-    function getNumOccluders(?allViews: Bool): Int;
-      // Return the default zone.
-    function getDefaultZone(): Zone;
-      // Return the default material.
-    function getDefaultMaterial(): Material;
-      // Return the default range attenuation texture.
-    function getDefaultLightRamp(): Texture2D;
-      // Return the default spotlight attenuation texture.
-    function getDefaultLightSpot(): Texture2D;
-      // Return the shadowed pointlight face selection cube map.
-    function getFaceSelectCubeMap(): TextureCube;
-      // Return the shadowed pointlight indirection cube map.
-    function getIndirectionCubeMap(): TextureCube;
-      // Update for rendering. Called by HandleRenderUpdate().
-    function update(timeStep: Float): Void;
-      // Render. Called by Engine.
-    function render(): Void;
-      // Add debug geometry to the debug renderer.
-    function drawDebugGeometry(depthTest: Bool): Void;
-      // Queue a render surface's viewports for rendering. Called by the surface, or by View.
-    function queueRenderSurface(renderTarget: RenderSurface): Void;
-      // Queue a viewport for rendering. Null surface means backbuffer.
-    function queueViewport(renderTarget: RenderSurface, viewport: Viewport): Void;
-      // Allocate a shadow map. If shadow map reuse is disabled, a different map is returned each time.
-    function getShadowMap(light: Light, camera: Camera, viewWidth: Int, viewHeight: Int): Texture2D;
-      // Allocate a rendertarget or depth-stencil texture for deferred rendering or postprocessing. Should only be called during actual rendering, not before.
-    function getScreenBuffer(width: Int, height: Int, format: Int, cubemap: Bool, filtered: Bool, srgb: Bool, ?persistentKey: Int): Texture;
-      // Allocate a depth-stencil surface that does not need to be readable. Should only be called during actual rendering, not before.
-    function getDepthStencil(width: Int, height: Int): RenderSurface;
-      // Allocate a temporary shadow camera and a scene node for it. Is thread-safe.
-    function getShadowCamera(): Camera;
-      // Set cull mode while taking possible projection flipping into account.
-    function setCullMode(mode: CullMode, camera: Camera): Void;
-      // Ensure sufficient size of the instancing vertex buffer. Return true if successful.
-    function resizeInstancingBuffer(numInstances: Int): Bool;
-      // Save the screen buffer allocation status. Called by View.
-    function saveScreenBufferAllocations(): Void;
-      // Restore the screen buffer allocation status. Called by View.
-    function restoreScreenBufferAllocations(): Void;
-      // Optimize a light by scissor rectangle.
-    function optimizeLightByScissor(light: Light, camera: Camera): Void;
-      // Optimize a light by marking it to the stencil buffer and setting a stencil test.
-    function optimizeLightByStencil(light: Light, camera: Camera): Void;
-      // Return a scissor rectangle for a light.
-    function getLightScissor(light: Light, camera: Camera): Rect;
-
-}
-
-@:native("Atomic.RenderPath")
-extern class RenderPath extends RefCounted {
-
-    var numRenderTargets: Int;
-    var numCommands: Int;
-
-      // Construct.
-    function new();
-
-      // Clone the rendering path.
-    function clone(): RenderPath;
-      // Clear existing data and load from an XML file. Return true if successful.
-    function load(file: XMLFile): Bool;
-      // Append data from an XML file. Return true if successful.
-    function append(file: XMLFile): Bool;
-      // Enable/disable commands and rendertargets by tag.
-    function setEnabled(tag: String, active: Bool): Void;
-      // Toggle enabled state of commands and rendertargets by tag.
-    function toggleEnabled(tag: String): Void;
-      // Remove rendertargets by tag name.
-    function removeRenderTargets(tag: String): Void;
-      // Remove a command by index.
-    function removeCommand(index: Int): Void;
-      // Remove commands by tag name.
-    function removeCommands(tag: String): Void;
-      // Return number of rendertargets.
-    function getNumRenderTargets(): Int;
-      // Return number of commands.
-    function getNumCommands(): Int;
-
-}
-
-@:native("Atomic.Shader")
-extern class Shader extends Resource {
-
-    var timeStamp: Int;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Return a variation with defines.
-    function getVariation(type: ShaderType, defines: String): ShaderVariation;
-      // Return either vertex or pixel shader source code.
-    function getSourceCode(type: ShaderType): String;
-      // Return the latest timestamp of the shader code and its includes.
-    function getTimeStamp(): Int;
-
-}
-
-@:native("Atomic.ShaderPrecache")
-extern class ShaderPrecache extends AObject {
-
-      // Construct and begin collecting shader combinations. Load existing combinations from XML if the file exists.
-    function new(fileName: String);
-
-      // Collect a shader combination. Called by Graphics when shaders have been set.
-    function storeShaders(vs: ShaderVariation, ps: ShaderVariation): Void;
-
-}
-
-@:native("Atomic.Pass")
-extern class Pass extends RefCounted {
-
-    var blendMode: BlendMode;
-    var depthTestMode: CompareMode;
-    var lightingMode: PassLightingMode;
-    var depthWrite: Bool;
-    var alphaMask: Bool;
-    var isDesktop: Bool;
-    var vertexShader: String;
-    var pixelShader: String;
-    var vertexShaderDefines: String;
-    var pixelShaderDefines: String;
-    var name: String;
-    var index: Int;
-    var shadersLoadedFrameNumber: Int;
-
-      // Construct.
-    function new(passName: String);
-
-      // Set blend mode.
-    function setBlendMode(mode: BlendMode): Void;
-      // Set depth compare mode.
-    function setDepthTestMode(mode: CompareMode): Void;
-      // Set pass lighting mode, affects what shader variations will be attempted to be loaded.
-    function setLightingMode(mode: PassLightingMode): Void;
-      // Set depth write on/off.
-    function setDepthWrite(enable: Bool): Void;
-      // Set alpha masking hint. Completely opaque draw calls will be performed before alpha masked.
-    function setAlphaMask(enable: Bool): Void;
-      // Set whether requires desktop level hardware.
-    function setIsDesktop(enable: Bool): Void;
-      // Set vertex shader name.
-    function setVertexShader(name: String): Void;
-      // Set pixel shader name.
-    function setPixelShader(name: String): Void;
-      // Set vertex shader defines.
-    function setVertexShaderDefines(defines: String): Void;
-      // Set pixel shader defines.
-    function setPixelShaderDefines(defines: String): Void;
-      // Reset shader pointers.
-    function releaseShaders(): Void;
-      // Mark shaders loaded this frame.
-    function markShadersLoaded(frameNumber: Int): Void;
-      // Return pass name.
-    function getName(): String;
-      // Return pass index. This is used for optimal render-time pass queries that avoid map lookups.
-    function getIndex(): Int;
-      // Return blend mode.
-    function getBlendMode(): BlendMode;
-      // Return depth compare mode.
-    function getDepthTestMode(): CompareMode;
-      // Return pass lighting mode.
-    function getLightingMode(): PassLightingMode;
-      // Return last shaders loaded frame number.
-    function getShadersLoadedFrameNumber(): Int;
-      // Return depth write mode.
-    function getDepthWrite(): Bool;
-      // Return alpha masking hint.
-    function getAlphaMask(): Bool;
-      // Return vertex shader name.
-    function getVertexShader(): String;
-      // Return pixel shader name.
-    function getPixelShader(): String;
-      // Return vertex shader defines.
-    function getVertexShaderDefines(): String;
-      // Return pixel shader defines.
-    function getPixelShaderDefines(): String;
-
-}
-
-@:native("Atomic.Technique")
-extern class Technique extends Resource {
-
-    var isDesktop: Bool;
-    var numPasses: Int;
-
-      // Construct.
-    function new();
-
-      // Set whether requires desktop level hardware.
-    function setIsDesktop(enable: Bool): Void;
-      // Create a new pass.
-    function createPass(passName: String): Pass;
-      // Remove a pass.
-    function removePass(passName: String): Void;
-      // Reset shader pointers in all passes.
-    function releaseShaders(): Void;
-      // Return whether technique is supported by the current hardware.
-    function isSupported(): Bool;
-      // Return number of passes.
-    function getNumPasses(): Int;
-      // Return a pass type index by name. Allocate new if not used yet.
-    function getPassIndex(passName: String): Int;
-
-}
-
-@:native("Atomic.View")
-extern class View extends AObject {
-
-    var graphics: Graphics;
-    var renderer: Renderer;
-    var scene: Scene;
-    var octree: Octree;
-    var camera: Camera;
-    var renderTarget: RenderSurface;
-    var drawDebug: Bool;
-
-      // Construct.
-    function new();
-
-      // Define with rendertarget and viewport. Return true if successful.
-    function define(renderTarget: RenderSurface, viewport: Viewport): Bool;
-      // Render batches.
-    function render(): Void;
-      // Return graphics subsystem.
-    function getGraphics(): Graphics;
-      // Return renderer subsystem.
-    function getRenderer(): Renderer;
-      // Return scene.
-    function getScene(): Scene;
-      // Return octree.
-    function getOctree(): Octree;
-      // Return camera.
-    function getCamera(): Camera;
-      // Return the rendertarget. 0 if using the backbuffer.
-    function getRenderTarget(): RenderSurface;
-      // Return whether should draw debug geometry.
-    function getDrawDebug(): Bool;
-      // Set global (per-frame) shader parameters. Called by Batch and internally by View.
-    function setGlobalShaderParameters(): Void;
-      // Set camera-specific shader parameters. Called by Batch and internally by View.
-    function setCameraShaderParameters(camera: Camera, setProjectionMatrix: Bool): Void;
-      // Set G-buffer offset and inverse size shader parameters. Called by Batch and internally by View.
-    function setGBufferShaderParameters(texSize: IntVector2, viewRect: IntRect): Void;
-
-}
-
-@:native("Atomic.Viewport")
-extern class Viewport extends AObject {
-
-    var scene: Scene;
-    var camera: Camera;
-    var rect: IntRect;
-    var renderPath: RenderPath;
-    var drawDebug: Bool;
-    var view: View;
-    var width: Int;
-    var height: Int;
-
-      // Construct with a full rectangle.
-    function new(scene: Scene, camera: Camera, ?renderPath: RenderPath);
-
-      // Set scene.
-    function setScene(scene: Scene): Void;
-      // Set camera.
-    function setCamera(camera: Camera): Void;
-      // Set rectangle.
-    function setRect(rect: IntRect): Void;
-      // Set rendering path from an XML file.
-    function setRenderPath(file: XMLFile): Void;
-      // Set whether to render debug geometry. Default true.
-    function setDrawDebug(enable: Bool): Void;
-      // Return scene.
-    function getScene(): Scene;
-      // Return camera.
-    function getCamera(): Camera;
-      // Return the internal rendering structure. May be null if the viewport has not been rendered yet.
-    function getView(): View;
-      // Return rectangle.
-    function getRect(): IntRect;
-      // Return the viewport width
-    function getWidth(): Int;
-      // Return the viewport height
-    function getHeight(): Int;
-      // Return rendering path.
-    function getRenderPath(): RenderPath;
-      // Return whether to draw debug geometry.
-    function getDrawDebug(): Bool;
-    function worldToScreenPoint(worldPos: Vector3): IntVector2;
-    function screenToWorldPoint(x: Int, y: Int, depth: Float): Vector3;
-      // Allocate the view structure. Called by Renderer.
-    function allocateView(): Void;
-
-}
-
-@:native("Atomic.Zone")
-extern class Zone extends Drawable {
-
-    var ambientColor: Color;
-    var fogColor: Color;
-    var fogStart: Float;
-    var fogEnd: Float;
-    var fogHeight: Float;
-    var fogHeightScale: Float;
-    var priority: Int;
-    var heightFog: Bool;
-    var overide: Bool;
-    var ambientGradient: Bool;
-    var zoneTexture: Texture;
-    var ambientStartColor: Color;
-    var ambientEndColor: Color;
-
-      // Construct.
-    function new();
-
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set local-space bounding box. Will be used as an oriented bounding box to test whether objects or the camera are inside.
-    function setBoundingBox(box: BoundingBox): Void;
-      // Set ambient color
-    function setAmbientColor(color: Color): Void;
-      // Set fog color.
-    function setFogColor(color: Color): Void;
-      // Set fog start distance.
-    function setFogStart(start: Float): Void;
-      // Set fog end distance.
-    function setFogEnd(end: Float): Void;
-      // Set fog height distance relative to the scene node's world position. Effective only in height fog mode.
-    function setFogHeight(height: Float): Void;
-      // Set fog height scale. Effective only in height fog mode.
-    function setFogHeightScale(scale: Float): Void;
-      // Set zone priority. If an object or camera is inside several zones, the one with highest priority is used.
-    function setPriority(priority: Int): Void;
-      // Set height fog mode.
-    function setHeightFog(enable: Bool): Void;
-      // Set override mode. If camera is inside an override zone, that zone will be used for all rendered objects instead of their own zone.
-    function setOverride(enable: Bool): Void;
-      // Set ambient gradient mode. In gradient mode ambient color is interpolated from neighbor zones.
-    function setAmbientGradient(enable: Bool): Void;
-      // Set zone texture. This will be bound to the zone texture unit when rendering objects inside the zone. Note that the default shaders do not use it.
-    function setZoneTexture(texture: Texture): Void;
-      // Return zone's own ambient color, disregarding gradient mode.
-    function getAmbientColor(): Color;
-      // Return ambient start color. Not safe to call from worker threads due to possible octree query.
-    function getAmbientStartColor(): Color;
-      // Return ambient end color. Not safe to call from worker threads due to possible octree query.
-    function getAmbientEndColor(): Color;
-      // Return fog color.
-    function getFogColor(): Color;
-      // Return fog start distance.
-    function getFogStart(): Float;
-      // Return fog end distance.
-    function getFogEnd(): Float;
-      // Return fog height distance relative to the scene node's world position.
-    function getFogHeight(): Float;
-      // Return fog height scale.
-    function getFogHeightScale(): Float;
-      // Return zone priority.
-    function getPriority(): Int;
-      // Return whether height fog mode is enabled.
-    function getHeightFog(): Bool;
-      // Return whether override mode is enabled.
-    function getOverride(): Bool;
-      // Return whether ambient gradient mode is enabled.
-    function getAmbientGradient(): Bool;
-      // Return zone texture.
-    function getZoneTexture(): Texture;
-      // Check whether a point is inside.
-    function isInside(point: Vector3): Bool;
-
-}
-
-@:native("Atomic.Graphics")
-extern class Graphics extends AObject {
-
-    var windowTitle: String;
-    var windowIcon: Image;
-    var srgb: Bool;
-    var flushGPU: Bool;
-    var orientations: String;
-    var defaultTextureFilterMode: TextureFilterMode;
-    var textureAnisotropy: Int;
-    var viewport: IntRect;
-    var blendMode: BlendMode;
-    var colorWrite: Bool;
-    var cullMode: CullMode;
-    var depthTest: CompareMode;
-    var depthWrite: Bool;
-    var fillMode: FillMode;
-    var apiName: String;
-    var windowPosition: IntVector2;
-    var width: Int;
-    var height: Int;
-    var multiSample: Int;
-    var fullscreen: Bool;
-    var resizable: Bool;
-    var borderless: Bool;
-    var vSync: Bool;
-    var tripleBuffer: Bool;
-    var numPrimitives: Int;
-    var numBatches: Int;
-    var dummyColorFormat: Int;
-    var shadowMapFormat: Int;
-    var hiresShadowMapFormat: Int;
-    var instancingSupport: Bool;
-    var lightPrepassSupport: Bool;
-    var deferredSupport: Bool;
-    var hardwareShadowSupport: Bool;
-    var readableDepthSupport: Bool;
-    var sRGBSupport: Bool;
-    var sRGBWriteSupport: Bool;
-    var desktopResolution: IntVector2;
-    var vertexShader: ShaderVariation;
-    var pixelShader: ShaderVariation;
-    var depthStencil: RenderSurface;
-    var depthConstantBias: Float;
-    var depthSlopeScaledBias: Float;
-    var stencilTest: Bool;
-    var scissorTest: Bool;
-    var scissorRect: IntRect;
-    var stencilTestMode: CompareMode;
-    var stencilPass: StencilOp;
-    var stencilFail: StencilOp;
-    var stencilZFail: StencilOp;
-    var stencilRef: Int;
-    var stencilCompareMask: Int;
-    var stencilWriteMask: Int;
-    var useClipPlane: Bool;
-    var renderTargetDimensions: IntVector2;
-    var alphaFormat: Int;
-    var luminanceFormat: Int;
-    var luminanceAlphaFormat: Int;
-    var rGBFormat: Int;
-    var rGBAFormat: Int;
-    var rGBA16Format: Int;
-    var rGBAFloat16Format: Int;
-    var rGBAFloat32Format: Int;
-    var rG16Format: Int;
-    var rGFloat16Format: Int;
-    var rGFloat32Format: Int;
-    var float16Format: Int;
-    var float32Format: Int;
-    var linearDepthFormat: Int;
-    var depthStencilFormat: Int;
-    var readableDepthFormat: Int;
-    var pixelUVOffset: Vector2;
-    var maxBones: Int;
-
-      // Construct.
-    function new();
-
-      // Set window title.
-    function setWindowTitle(windowTitle: String): Void;
-      // Set window icon.
-    function setWindowIcon(windowIcon: Image): Void;
-      // Set window size.
-    function setWindowSize(width: Int, height: Int): Void;
-      // Center window.
-    function centerWindow(): Void;
-      // Bring the window to front with focus
-    function raiseWindow(): Void;
-      // Set whether the main window uses sRGB conversion on write.
-    function setSRGB(enable: Bool): Void;
-      // Set whether to flush the GPU command buffer to prevent multiple frames being queued and uneven frame timesteps. Default off, may decrease performance if enabled.
-    function setFlushGPU(enable: Bool): Void;
-      // Set allowed screen orientations as a space-separated list of "LandscapeLeft", "LandscapeRight", "Portrait" and "PortraitUpsideDown". Affects currently only iOS platform.
-    function setOrientations(orientations: String): Void;
-      // Toggle between full screen and windowed mode. Return true if successful.
-    function toggleFullscreen(): Bool;
-      // Close the window.
-    function close(): Void;
-      // Take a screenshot. Return true if successful.
-    function takeScreenShot(destImage: Image): Bool;
-      // Begin frame rendering. Return true if device available and can render.
-    function beginFrame(): Bool;
-      // End frame rendering and swap buffers.
-    function endFrame(): Void;
-      // Clear any or all of rendertarget, depth buffer and stencil buffer.
-    function clear(flags: Int, ?color: Color, ?depth: Float, ?stencil: Int): Void;
-      // Resolve multisampled backbuffer to a texture rendertarget. The texture's size should match the viewport size.
-    function resolveToTexture(destination: Texture2D, viewport: IntRect): Bool;
-      // Draw indexed, instanced geometry. An instancing vertex buffer must be set.
-    function drawInstanced(type: PrimitiveType, indexStart: Int, indexCount: Int, minVertex: Int, vertexCount: Int, instanceCount: Int): Void;
-      // Set shaders.
-    function setShaders(vs: ShaderVariation, ps: ShaderVariation): Void;
-      // Check whether a shader parameter exists on the currently set shaders.
-    function hasShaderParameter(param: String): Bool;
-      // Check whether the current pixel shader uses a texture unit.
-    function hasTextureUnit(unit: TextureUnit): Bool;
-      // Clear remembered shader parameter source group.
-    function clearParameterSource(group: ShaderParameterGroup): Void;
-      // Clear remembered shader parameter sources.
-    function clearParameterSources(): Void;
-      // Clear remembered transform shader parameter sources.
-    function clearTransformSources(): Void;
-      // Set texture.
-    function setTexture(index: Int, texture: Texture): Void;
-      // Set default texture filtering mode.
-    function setDefaultTextureFilterMode(mode: TextureFilterMode): Void;
-      // Set texture anisotropy.
-    function setTextureAnisotropy(level: Int): Void;
-      // Reset all rendertargets, depth-stencil surface and viewport.
-    function resetRenderTargets(): Void;
-      // Reset specific rendertarget.
-    function resetRenderTarget(index: Int): Void;
-      // Reset depth-stencil surface.
-    function resetDepthStencil(): Void;
-      // Set viewport.
-    function setViewport(rect: IntRect): Void;
-      // Set blending mode.
-    function setBlendMode(mode: BlendMode): Void;
-      // Set color write on/off.
-    function setColorWrite(enable: Bool): Void;
-      // Set hardware culling mode.
-    function setCullMode(mode: CullMode): Void;
-      // Set depth bias.
-    function setDepthBias(constantBias: Float, slopeScaledBias: Float): Void;
-      // Set depth compare.
-    function setDepthTest(mode: CompareMode): Void;
-      // Set depth write on/off.
-    function setDepthWrite(enable: Bool): Void;
-      // Set polygon fill mode.
-    function setFillMode(mode: FillMode): Void;
-      // Set stencil test.
-    function setStencilTest(enable: Bool, ?mode: CompareMode, ?pass: StencilOp, ?fail: StencilOp, ?zFail: StencilOp, ?stencilRef: Int, ?compareMask: Int, ?writeMask: Int): Void;
-      // Begin dumping shader variation names to an XML file for precaching.
-    function beginDumpShaders(fileName: String): Void;
-      // End dumping shader variations names.
-    function endDumpShaders(): Void;
-      // Return whether rendering initialized.
-    function isInitialized(): Bool;
-      // Return window title.
-    function getWindowTitle(): String;
-      // Return graphics API name.
-    function getApiName(): String;
-      // Return window position.
-    function getWindowPosition(): IntVector2;
-      // Return window width.
-    function getWidth(): Int;
-      // Return window height.
-    function getHeight(): Int;
-      // Return multisample mode (1 = no multisampling.)
-    function getMultiSample(): Int;
-      // Return whether window is fullscreen.
-    function getFullscreen(): Bool;
-      // Return whether window is resizable.
-    function getResizable(): Bool;
-      // Return whether window is borderless.
-    function getBorderless(): Bool;
-      // Return whether vertical sync is on.
-    function getVSync(): Bool;
-      // Return whether triple buffering is enabled.
-    function getTripleBuffer(): Bool;
-      // Return whether the main window is using sRGB conversion on write.
-    function getSRGB(): Bool;
-      // Return whether the GPU command buffer is flushed each frame.
-    function getFlushGPU(): Bool;
-      // Return allowed screen orientations.
-    function getOrientations(): String;
-      // Return whether Direct3D device is lost, and can not yet render. This happens during fullscreen resolution switching.
-    function isDeviceLost(): Bool;
-      // Return number of primitives drawn this frame.
-    function getNumPrimitives(): Int;
-      // Return number of batches drawn this frame.
-    function getNumBatches(): Int;
-      // Return dummy color texture format for shadow maps. Is "NULL" (consume no video memory) if supported.
-    function getDummyColorFormat(): Int;
-      // Return shadow map depth texture format, or 0 if not supported.
-    function getShadowMapFormat(): Int;
-      // Return 24-bit shadow map depth texture format, or 0 if not supported.
-    function getHiresShadowMapFormat(): Int;
-      // Return whether hardware instancing is supported..
-    function getInstancingSupport(): Bool;
-      // Return whether light pre-pass rendering is supported.
-    function getLightPrepassSupport(): Bool;
-      // Return whether deferred rendering is supported.
-    function getDeferredSupport(): Bool;
-      // Return whether shadow map depth compare is done in hardware.
-    function getHardwareShadowSupport(): Bool;
-      // Return whether a readable hardware depth format is available.
-    function getReadableDepthSupport(): Bool;
-      // Return whether sRGB conversion on texture sampling is supported.
-    function getSRGBSupport(): Bool;
-      // Return whether sRGB conversion on rendertarget writing is supported.
-    function getSRGBWriteSupport(): Bool;
-      // Return the desktop resolution.
-    function getDesktopResolution(): IntVector2;
-      // Return a shader variation by name and defines.
-    function getShader(type: ShaderType, name: String, ?defines: String): ShaderVariation;
-      // Return current vertex shader.
-    function getVertexShader(): ShaderVariation;
-      // Return current pixel shader.
-    function getPixelShader(): ShaderVariation;
-      // Return texture unit index by name.
-    function getTextureUnit(name: String): TextureUnit;
-      // Return texture unit name by index.
-    function getTextureUnitName(unit: TextureUnit): String;
-      // Return current texture by texture unit index.
-    function getTexture(index: Int): Texture;
-      // Return default texture filtering mode.
-    function getDefaultTextureFilterMode(): TextureFilterMode;
-      // Return current rendertarget by index.
-    function getRenderTarget(index: Int): RenderSurface;
-      // Return current depth-stencil surface.
-    function getDepthStencil(): RenderSurface;
-      // Return the viewport coordinates.
-    function getViewport(): IntRect;
-      // Return texture anisotropy.
-    function getTextureAnisotropy(): Int;
-      // Return blending mode.
-    function getBlendMode(): BlendMode;
-      // Return whether color write is enabled.
-    function getColorWrite(): Bool;
-      // Return hardware culling mode.
-    function getCullMode(): CullMode;
-      // Return depth constant bias.
-    function getDepthConstantBias(): Float;
-      // Return depth slope scaled bias.
-    function getDepthSlopeScaledBias(): Float;
-      // Return depth compare mode.
-    function getDepthTest(): CompareMode;
-      // Return whether depth write is enabled.
-    function getDepthWrite(): Bool;
-      // Return polygon fill mode.
-    function getFillMode(): FillMode;
-      // Return whether stencil test is enabled.
-    function getStencilTest(): Bool;
-      // Return whether scissor test is enabled.
-    function getScissorTest(): Bool;
-      // Return scissor rectangle coordinates.
-    function getScissorRect(): IntRect;
-      // Return stencil compare mode.
-    function getStencilTestMode(): CompareMode;
-      // Return stencil operation to do if stencil test passes.
-    function getStencilPass(): StencilOp;
-      // Return stencil operation to do if stencil test fails.
-    function getStencilFail(): StencilOp;
-      // Return stencil operation to do if depth compare fails.
-    function getStencilZFail(): StencilOp;
-      // Return stencil reference value.
-    function getStencilRef(): Int;
-      // Return stencil compare bitmask.
-    function getStencilCompareMask(): Int;
-      // Return stencil write bitmask.
-    function getStencilWriteMask(): Int;
-      // Return whether a custom clipping plane is in use.
-    function getUseClipPlane(): Bool;
-      // Return rendertarget width and height.
-    function getRenderTargetDimensions(): IntVector2;
-      // Window was resized through user interaction. Called by Input subsystem.
-    function windowResized(): Void;
-      // Window was moved through user interaction. Called by Input subsystem.
-    function windowMoved(): Void;
-      // Maximize the Window.
-    function maximize(): Void;
-      // Minimize the Window.
-    function minimize(): Void;
-      // Clean up too large scratch buffers.
-    function cleanupScratchBuffers(): Void;
-      // Clean up shader programs when a shader variation is released or destroyed.
-    function cleanupShaderPrograms(variation: ShaderVariation): Void;
-      // Return the API-specific alpha texture format.
-    function getAlphaFormat(): Int;
-      // Return the API-specific luminance texture format.
-    function getLuminanceFormat(): Int;
-      // Return the API-specific luminance alpha texture format.
-    function getLuminanceAlphaFormat(): Int;
-      // Return the API-specific RGB texture format.
-    function getRGBFormat(): Int;
-      // Return the API-specific RGBA texture format.
-    function getRGBAFormat(): Int;
-      // Return the API-specific RGBA 16-bit texture format.
-    function getRGBA16Format(): Int;
-      // Return the API-specific RGBA 16-bit float texture format.
-    function getRGBAFloat16Format(): Int;
-      // Return the API-specific RGBA 32-bit float texture format.
-    function getRGBAFloat32Format(): Int;
-      // Return the API-specific RG 16-bit texture format.
-    function getRG16Format(): Int;
-      // Return the API-specific RG 16-bit float texture format.
-    function getRGFloat16Format(): Int;
-      // Return the API-specific RG 32-bit float texture format.
-    function getRGFloat32Format(): Int;
-      // Return the API-specific single channel 16-bit float texture format.
-    function getFloat16Format(): Int;
-      // Return the API-specific single channel 32-bit float texture format.
-    function getFloat32Format(): Int;
-      // Return the API-specific linear depth texture format.
-    function getLinearDepthFormat(): Int;
-      // Return the API-specific hardware depth-stencil texture format.
-    function getDepthStencilFormat(): Int;
-      // Return the API-specific readable hardware depth format, or 0 if not supported.
-    function getReadableDepthFormat(): Int;
-      // Return UV offset required for pixel perfect rendering.
-    function getPixelUVOffset(): Vector2;
-      // Return maximum number of supported bones for skinning.
-    function getMaxBones(): Int;
-
-}
-
-@:native("Atomic.RenderSurface")
-extern class RenderSurface extends RefCounted {
-
-    var numViewports: Int;
-    var updateMode: RenderSurfaceUpdateMode;
-    var linkedRenderTarget: RenderSurface;
-    var linkedDepthStencil: RenderSurface;
-    var parentTexture: Texture;
-    var width: Int;
-    var height: Int;
-    var usage: TextureUsage;
-
-      // Construct with parent texture.
-    function new(parentTexture: Texture);
-
-      // Set number of viewports.
-    function setNumViewports(num: Int): Void;
-      // Set viewport.
-    function setViewport(index: Int, viewport: Viewport): Void;
-      // Set viewport update mode. Default is to update when visible.
-    function setUpdateMode(mode: RenderSurfaceUpdateMode): Void;
-      // Set linked color rendertarget.
-    function setLinkedRenderTarget(renderTarget: RenderSurface): Void;
-      // Set linked depth-stencil surface.
-    function setLinkedDepthStencil(depthStencil: RenderSurface): Void;
-      // Queue manual update of the viewport(s).
-    function queueUpdate(): Void;
-      // Release surface.
-    function release(): Void;
-      // Return parent texture.
-    function getParentTexture(): Texture;
-      // Return width.
-    function getWidth(): Int;
-      // Return height.
-    function getHeight(): Int;
-      // Return usage.
-    function getUsage(): TextureUsage;
-      // Return number of viewports.
-    function getNumViewports(): Int;
-      // Return viewport by index.
-    function getViewport(index: Int): Viewport;
-      // Return viewport update mode.
-    function getUpdateMode(): RenderSurfaceUpdateMode;
-      // Return linked color rendertarget.
-    function getLinkedRenderTarget(): RenderSurface;
-      // Return linked depth-stencil surface.
-    function getLinkedDepthStencil(): RenderSurface;
-      // Clear update flag. Called by Renderer.
-    function wasUpdated(): Void;
-
-}
-
-@:native("Atomic.ShaderVariation")
-extern class ShaderVariation extends RefCounted {
-
-    var name: String;
-    var defines: String;
-    var owner: Shader;
-    var shaderType: ShaderType;
-    var fullName: String;
-    var compilerOutput: String;
-
-      // Construct.
-    function new(owner: Shader, type: ShaderType);
-
-      // Release the shader.
-    function release(): Void;
-      // Compile the shader. Return true if successful.
-    function create(): Bool;
-      // Set name.
-    function setName(name: String): Void;
-      // Set defines.
-    function setDefines(defines: String): Void;
-      // Return the owner resource.
-    function getOwner(): Shader;
-      // Return shader type.
-    function getShaderType(): ShaderType;
-      // Return shader name.
-    function getName(): String;
-      // Return defines.
-    function getDefines(): String;
-      // Return full shader name.
-    function getFullName(): String;
-      // Return compile error/warning string.
-    function getCompilerOutput(): String;
-      // Return whether uses a parameter.
-    function hasParameter(param: String): Bool;
-      // Return whether uses a texture unit (only for pixel shaders.)
-    function hasTextureUnit(unit: TextureUnit): Bool;
-
-}
-
-@:native("Atomic.Texture")
-extern class Texture extends Resource {
-
-    var numLevels: Int;
-    var filterMode: TextureFilterMode;
-    var shadowCompare: Bool;
-    var borderColor: Color;
-    var srgb: Bool;
-    var backupTexture: Texture;
-    var format: Int;
-    var levels: Int;
-    var width: Int;
-    var height: Int;
-    var depth: Int;
-    var usage: TextureUsage;
-    var components: Int;
-    var parameters: XMLFile;
-
-      // Construct.
-    function new();
-
-      // Set number of requested mip levels. Needs to be called before setting size.
-    function setNumLevels(levels: Int): Void;
-      // Set filtering mode.
-    function setFilterMode(filter: TextureFilterMode): Void;
-      // Set addressing mode by texture coordinate.
-    function setAddressMode(coord: TextureCoordinate, address: TextureAddressMode): Void;
-      // Set shadow compare mode. No-op on D3D9.
-    function setShadowCompare(enable: Bool): Void;
-      // Set border color for border addressing mode.
-    function setBorderColor(color: Color): Void;
-      // Set sRGB sampling and writing mode.
-    function setSRGB(enable: Bool): Void;
-      // Set backup texture to use when rendering to this texture.
-    function setBackupTexture(texture: Texture): Void;
-      // Set mip levels to skip on a quality setting when loading. Ensures higher quality levels do not skip more.
-    function setMipsToSkip(quality: Int, mips: Int): Void;
-      // Return texture format.
-    function getFormat(): Int;
-      // Return whether the texture format is compressed.
-    function isCompressed(): Bool;
-      // Return number of mip levels.
-    function getLevels(): Int;
-      // Return width.
-    function getWidth(): Int;
-      // Return height.
-    function getHeight(): Int;
-      // Return height.
-    function getDepth(): Int;
-      // Return filtering mode.
-    function getFilterMode(): TextureFilterMode;
-      // Return addressing mode by texture coordinate.
-    function getAddressMode(coord: TextureCoordinate): TextureAddressMode;
-      // Return whether shadow compare is enabled. Always false on D3D9.
-    function getShadowCompare(): Bool;
-      // Return border color.
-    function getBorderColor(): Color;
-      // Return whether is using sRGB sampling and writing.
-    function getSRGB(): Bool;
-      // Return backup texture.
-    function getBackupTexture(): Texture;
-      // Return mip levels to skip on a quality setting when loading.
-    function getMipsToSkip(quality: Int): Int;
-      // Return mip level width, or 0 if level does not exist.
-    function getLevelWidth(level: Int): Int;
-      // Return mip level width, or 0 if level does not exist.
-    function getLevelHeight(level: Int): Int;
-      // Return mip level depth, or 0 if level does not exist.
-    function getLevelDepth(level: Int): Int;
-      // Return texture usage type.
-    function getUsage(): TextureUsage;
-      // Return data size in bytes for a pixel or block row.
-    function getRowDataSize(width: Int): Int;
-      // Return number of image components required to receive pixel data from GetData(), or 0 for compressed images.
-    function getComponents(): Int;
-      // Set additional parameters from an XML file.
-    function setParameters(xml: XMLFile): Void;
-
-}
-
-@:native("Atomic.Texture2D")
-extern class Texture2D extends Texture {
-
-    var renderSurface: RenderSurface;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Release default pool resources.
-    function onDeviceLost(): Void;
-      // Recreate default pool resources.
-    function onDeviceReset(): Void;
-      // Release texture.
-    function release(): Void;
-      // Set size, format and usage. Zero size will follow application window size. Return true if successful.
-    function setSize(width: Int, height: Int, format: Int, ?usage: TextureUsage): Bool;
-      // Return render surface.
-    function getRenderSurface(): RenderSurface;
-
-}
-
-@:native("Atomic.Texture3D")
-extern class Texture3D extends Texture {
-
-    var renderSurface: RenderSurface;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Release default pool resources.
-    function onDeviceLost(): Void;
-      // Recreate default pool resources.
-    function onDeviceReset(): Void;
-      // Release texture.
-    function release(): Void;
-      // Set size, format and usage. Zero size will follow application window size. Return true if successful.
-    function setSize(width: Int, height: Int, depth: Int, format: Int, ?usage: TextureUsage): Bool;
-      // Return render surface.
-    function getRenderSurface(): RenderSurface;
-
-}
-
-@:native("Atomic.TextureCube")
-extern class TextureCube extends Texture {
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Release default pool resources.
-    function onDeviceLost(): Void;
-      // ReCreate default pool resources.
-    function onDeviceReset(): Void;
-      // Release texture.
-    function release(): Void;
-      // Set size, format and usage. Return true if successful.
-    function setSize(size: Int, format: Int, ?usage: TextureUsage): Bool;
-      // Return render surface for one face.
-    function getRenderSurface(face: CubeMapFace): RenderSurface;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Atomic3D
-//----------------------------------------------------
-
-
-@:native("Atomic.AnimatedModel")
-extern class AnimatedModel extends StaticModel {
-
-    var animationLodBias: Float;
-    var updateInvisible: Bool;
-    var numAnimationStates: Int;
-    var numMorphs: Int;
-    var boneCreationEnabled: Bool;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-    @:overload(function(): UpdateGeometryType{})
-    override function getUpdateGeometryType(): UpdateGeometryType;
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set model.
-    @:overload(function(model: Model, ?createBones: Bool): Void{})
-    override function setModel(model: Model): Void;
-      // Add an animation.
-    function addAnimationState(animation: Animation): AnimationState;
-      // Remove all animations.
-    function removeAllAnimationStates(): Void;
-      // Set animation LOD bias.
-    function setAnimationLodBias(bias: Float): Void;
-      // Set whether to update animation and the bounding box when not visible. Recommended to enable for physically controlled models like ragdolls.
-    function setUpdateInvisible(enable: Bool): Void;
-      // Reset all vertex morphs to zero.
-    function resetMorphWeights(): Void;
-      // Return number of animation states.
-    function getNumAnimationStates(): Int;
-      // Return animation LOD bias.
-    function getAnimationLodBias(): Float;
-      // Return whether to update animation when not visible.
-    function getUpdateInvisible(): Bool;
-      // Return number of vertex morphs.
-    function getNumMorphs(): Int;
-      // Return whether is the master (first) animated model.
-    function isMaster(): Bool;
-      // Globally enable/disable bone creation, useful for when in the editor
-    function setBoneCreationEnabled(enabled: Bool): Void;
-
-}
-
-@:native("Atomic.Animation")
-extern class Animation extends Resource {
-
-    var animationName: String;
-    var length: Float;
-    var numTriggers: Int;
-    var animationNameHash: String;
-    var numTracks: Int;
-
-      // Construct.
-    function new();
-
-      // Set animation name.
-    function setAnimationName(name: String): Void;
-      // Set animation length.
-    function setLength(length: Float): Void;
-      // Remove a trigger point by index.
-    function removeTrigger(index: Int): Void;
-      // Remove all trigger points.
-    function removeAllTriggers(): Void;
-      // Resize trigger point vector.
-    function setNumTriggers(num: Int): Void;
-      // Return animation name.
-    function getAnimationName(): String;
-      // Return animation name hash.
-    function getAnimationNameHash(): String;
-      // Return animation length.
-    function getLength(): Float;
-      // Return number of animation tracks.
-    function getNumTracks(): Int;
-      // Return number of animation trigger points.
-    function getNumTriggers(): Int;
-
-}
-
-@:native("Atomic.AnimationController")
-extern class AnimationController extends Component {
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Update the animations. Is called from HandleScenePostUpdate().
-    function update(timeStep: Float): Void;
-      // Play an animation and set full target weight. Name must be the full resource name. Return true on success.
-    function play(name: String, layer: Dynamic, looped: Bool, ?fadeInTime: Float): Bool;
-      // Play an animation, set full target weight and fade out all other animations on the same layer. Name must be the full resource name. Return true on success.
-    function playExclusive(name: String, layer: Dynamic, looped: Bool, ?fadeTime: Float): Bool;
-      // Stop an animation. Zero fadetime is instant. Return true on success.
-    function stop(name: String, ?fadeOutTime: Float): Bool;
-      // Stop all animations on a specific layer. Zero fadetime is instant.
-    function stopLayer(layer: Dynamic, ?fadeOutTime: Float): Void;
-      // Stop all animations. Zero fadetime is instant.
-    function stopAll(?fadeTime: Float): Void;
-      // Fade animation to target weight. Return true on success.
-    function fade(name: String, targetWeight: Float, fadeTime: Float): Bool;
-      // Fade other animations on the same layer to target weight. Return true on success.
-    function fadeOthers(name: String, targetWeight: Float, fadeTime: Float): Bool;
-      // Set animation blending layer priority. Return true on success.
-    function setLayer(name: String, layer: Dynamic): Bool;
-      // Set animation start bone. Return true on success.
-    function setStartBone(name: String, startBoneName: String): Bool;
-      // Set animation time position. Return true on success.
-    function setTime(name: String, time: Float): Bool;
-      // Set animation weight. Return true on success.
-    function setWeight(name: String, weight: Float): Bool;
-      // Set animation looping. Return true on success.
-    function setLooped(name: String, enable: Bool): Bool;
-      // Set animation speed. Return true on success.
-    function setSpeed(name: String, speed: Float): Bool;
-      // Set animation autofade at end (non-looped animations only.) Zero time disables. Return true on success.
-    function setAutoFade(name: String, fadeOutTime: Float): Bool;
-      // Return whether an animation is active. Note that non-looping animations that are being clamped at the end also return true.
-    function isPlaying(name: String): Bool;
-      // Return whether an animation is fading in.
-    function isFadingIn(name: String): Bool;
-      // Return whether an animation is fading out.
-    function isFadingOut(name: String): Bool;
-      // Return whether an animation is at its end. Will return false if the animation is not active at all.
-    function isAtEnd(name: String): Bool;
-      // Return animation blending layer.
-    function getLayer(name: String): Dynamic;
-      // Return animation start bone name, or empty string if no such animation.
-    function getStartBoneName(name: String): String;
-      // Return animation time position.
-    function getTime(name: String): Float;
-      // Return animation weight.
-    function getWeight(name: String): Float;
-      // Return animation looping.
-    function isLooped(name: String): Bool;
-      // Return animation length.
-    function getLength(name: String): Float;
-      // Return animation speed.
-    function getSpeed(name: String): Float;
-      // Return animation fade target weight.
-    function getFadeTarget(name: String): Float;
-      // Return animation fade time.
-    function getFadeTime(name: String): Float;
-      // Return animation autofade time.
-    function getAutoFade(name: String): Float;
-    function addAnimationResource(animation: Animation): Void;
-    function removeAnimationResource(animation: Animation): Void;
-    function clearAnimationResources(): Void;
-
-}
-
-@:native("Atomic.AnimationState")
-extern class AnimationState extends RefCounted {
-
-    var looped: Bool;
-    var weight: Float;
-    var time: Float;
-    var layer: Dynamic;
-    var animation: Animation;
-    var model: AnimatedModel;
-    var node: Node;
-    var length: Float;
-
-      // Construct with animated model and animation pointers.
-    function new(model: AnimatedModel, animation: Animation);
-
-      // Set looping enabled/disabled.
-    function setLooped(looped: Bool): Void;
-      // Set blending weight.
-    function setWeight(weight: Float): Void;
-      // Set time position. Does not fire animation triggers.
-    function setTime(time: Float): Void;
-      // Modify blending weight.
-    function addWeight(delta: Float): Void;
-      // Modify time position. %Animation triggers will be fired.
-    function addTime(delta: Float): Void;
-      // Set blending layer.
-    function setLayer(layer: Dynamic): Void;
-      // Return animation.
-    function getAnimation(): Animation;
-      // Return animated model this state belongs to (model mode.)
-    function getModel(): AnimatedModel;
-      // Return root scene node this state controls (node hierarchy mode.)
-    function getNode(): Node;
-      // Return whether weight is nonzero.
-    function isEnabled(): Bool;
-      // Return whether looped.
-    function isLooped(): Bool;
-      // Return blending weight.
-    function getWeight(): Float;
-      // Return time position.
-    function getTime(): Float;
-      // Return animation length.
-    function getLength(): Float;
-      // Return blending layer.
-    function getLayer(): Dynamic;
-      // Apply the animation at the current time position.
-    function apply(): Void;
-
-}
-
-@:native("Atomic.BillboardSet")
-extern class BillboardSet extends Drawable {
-
-    var material: Material;
-    var numBillboards: Int;
-    var relative: Bool;
-    var scaled: Bool;
-    var sorted: Bool;
-    var faceCameraMode: FaceCameraMode;
-    var animationLodBias: Float;
-
-      // Construct.
-    function new();
-
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-    @:overload(function(): UpdateGeometryType{})
-    override function getUpdateGeometryType(): UpdateGeometryType;
-      // Set material.
-    function setMaterial(material: Material): Void;
-      // Set number of billboards.
-    function setNumBillboards(num: Int): Void;
-      // Set whether billboards are relative to the scene node. Default true.
-    function setRelative(enable: Bool): Void;
-      // Set whether scene node scale affects billboards' size. Default true.
-    function setScaled(enable: Bool): Void;
-      // Set whether billboards are sorted by distance. Default false.
-    function setSorted(enable: Bool): Void;
-      // Set how the billboards should rotate in relation to the camera. Default is to follow camera rotation on all axes (FC_ROTATE_XYZ.)
-    function setFaceCameraMode(mode: FaceCameraMode): Void;
-      // Set animation LOD bias.
-    function setAnimationLodBias(bias: Float): Void;
-      // Mark for bounding box and vertex buffer update. Call after modifying the billboards.
-    function commit(): Void;
-      // Return material.
-    function getMaterial(): Material;
-      // Return number of billboards.
-    function getNumBillboards(): Int;
-      // Return whether billboards are relative to the scene node.
-    function isRelative(): Bool;
-      // Return whether scene node scale affects billboards' size.
-    function isScaled(): Bool;
-      // Return whether billboards are sorted.
-    function isSorted(): Bool;
-      // Return how the billboards rotate in relation to the camera.
-    function getFaceCameraMode(): FaceCameraMode;
-      // Return animation LOD bias.
-    function getAnimationLodBias(): Float;
-
-}
-
-@:native("Atomic.CustomGeometry")
-extern class CustomGeometry extends Drawable {
-
-    var numGeometries: Int;
-    var dynamik: Bool;
-
-      // Construct.
-    function new();
-
-      // Return number of occlusion geometry triangles.
-    @:overload(function(): Int{})
-    override function getNumOccluderTriangles(): Int;
-      // Clear all geometries.
-    function clear(): Void;
-      // Set number of geometries.
-    function setNumGeometries(num: Int): Void;
-      // Set vertex buffer dynamic mode. A dynamic buffer should be faster to update frequently. Effective at the next Commit() call.
-    function setDynamic(enable: Bool): Void;
-      // Begin defining a geometry. Clears existing vertices in that index.
-    function beginGeometry(index: Int, type: PrimitiveType): Void;
-      // Define a vertex position. This begins a new vertex.
-    function defineVertex(position: Vector3): Void;
-      // Define a vertex normal.
-    function defineNormal(normal: Vector3): Void;
-      // Define a vertex color.
-    function defineColor(color: Color): Void;
-      // Define a vertex UV coordinate.
-    function defineTexCoord(texCoord: Vector2): Void;
-      // Define a vertex tangent.
-    function defineTangent(tangent: Vector4): Void;
-      // Set the primitive type, number of vertices and elements in a geometry, after which the vertices can be edited with GetVertex(). An alternative to BeginGeometry() / DefineVertex().
-    function defineGeometry(index: Int, type: PrimitiveType, numVertices: Int, hasNormals: Bool, hasColors: Bool, hasTexCoords: Bool, hasTangents: Bool): Void;
-      // Update vertex buffer and calculate the bounding box. Call after finishing defining geometry.
-    function commit(): Void;
-      // Return number of geometries.
-    function getNumGeometries(): Int;
-      // Return number of vertices in a geometry.
-    function getNumVertices(index: Int): Int;
-      // Return whether vertex buffer dynamic mode is enabled.
-    function isDynamic(): Bool;
-      // Return material by geometry index.
-    function getMaterial(?index: Int): Material;
-
-}
-
-@:native("Atomic.DecalSet")
-extern class DecalSet extends Drawable {
-
-    var material: Material;
-    var maxVertices: Int;
-    var maxIndices: Int;
-    var numDecals: Int;
-    var numVertices: Int;
-    var numIndices: Int;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-    @:overload(function(): UpdateGeometryType{})
-    override function getUpdateGeometryType(): UpdateGeometryType;
-      // Set material. The material should use a small negative depth bias to avoid Z-fighting.
-    function setMaterial(material: Material): Void;
-      // Set maximum number of decal vertices.
-    function setMaxVertices(num: Int): Void;
-      // Set maximum number of decal vertex indices.
-    function setMaxIndices(num: Int): Void;
-      // Add a decal at world coordinates, using a target drawable's geometry for reference. If the decal needs to move with the target, the decal component should be created to the target's node. Return true if successful.
-    function addDecal(target: Drawable, worldPosition: Vector3, worldRotation: Quaternion, size: Float, aspectRatio: Float, depth: Float, topLeftUV: Vector2, bottomRightUV: Vector2, ?timeToLive: Float, ?normalCutoff: Float, ?subGeometry: Int): Bool;
-      // Remove n oldest decals.
-    function removeDecals(num: Int): Void;
-      // Remove all decals.
-    function removeAllDecals(): Void;
-      // Return material.
-    function getMaterial(): Material;
-      // Return number of decals.
-    function getNumDecals(): Int;
-      // Retur number of vertices in the decals.
-    function getNumVertices(): Int;
-      // Retur number of vertex indices in the decals.
-    function getNumIndices(): Int;
-      // Return maximum number of decal vertices.
-    function getMaxVertices(): Int;
-      // Return maximum number of decal vertex indices.
-    function getMaxIndices(): Int;
-
-}
-
-@:native("Atomic.Model")
-extern class Model extends Resource {
-
-    var boundingBox: BoundingBox;
-    var numGeometries: Int;
-    var numMorphs: Int;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Set local-space bounding box.
-    function setBoundingBox(box: BoundingBox): Void;
-      // Set number of geometries.
-    function setNumGeometries(num: Int): Void;
-      // Set number of LOD levels in a geometry.
-    function setNumGeometryLodLevels(index: Int, num: Int): Bool;
-      // Set geometry center.
-    function setGeometryCenter(index: Int, center: Vector3): Bool;
-      // Clone the model. The geometry data is deep-copied and can be modified in the clone without affecting the original.
-    function clone(?cloneName: String): Model;
-      // Return bounding box.
-    function getBoundingBox(): BoundingBox;
-      // Return number of geometries.
-    function getNumGeometries(): Int;
-      // Return number of LOD levels in geometry.
-    function getNumGeometryLodLevels(index: Int): Int;
-      // Return geometry center by index.
-    function getGeometryCenter(index: Int): Vector3;
-      // Return number of vertex morphs.
-    function getNumMorphs(): Int;
-      // Return vertex buffer morph range start.
-    function getMorphRangeStart(bufferIndex: Int): Int;
-      // Return vertex buffer morph range vertex count.
-    function getMorphRangeCount(bufferIndex: Int): Int;
-
-}
-
-@:native("Atomic.ParticleEffect")
-extern class ParticleEffect extends Resource {
-
-    var material: Material;
-    var numParticles: Int;
-    var updateInvisible: Bool;
-    var relative: Bool;
-    var scaled: Bool;
-    var sorted: Bool;
-    var animationLodBias: Float;
-    var emitterType: EmitterType;
-    var emitterSize: Vector3;
-    var minDirection: Vector3;
-    var maxDirection: Vector3;
-    var constantForce: Vector3;
-    var dampingForce: Float;
-    var activeTime: Float;
-    var inactiveTime: Float;
-    var minEmissionRate: Float;
-    var maxEmissionRate: Float;
-    var minParticleSize: Vector2;
-    var maxParticleSize: Vector2;
-    var minTimeToLive: Float;
-    var maxTimeToLive: Float;
-    var minVelocity: Float;
-    var maxVelocity: Float;
-    var minRotation: Float;
-    var maxRotation: Float;
-    var minRotationSpeed: Float;
-    var maxRotationSpeed: Float;
-    var sizeAdd: Float;
-    var sizeMul: Float;
-    var numColorFrames: Int;
-    var numTextureFrames: Int;
-    var randomDirection: Vector3;
-    var randomSize: Vector2;
-    var randomVelocity: Float;
-    var randomTimeToLive: Float;
-    var randomRotationSpeed: Float;
-    var randomRotation: Float;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Set material.
-    function setMaterial(material: Material): Void;
-      // Set maximum number of particles.
-    function setNumParticles(num: Int): Void;
-      // Set whether to update when particles are not visible.
-    function setUpdateInvisible(enable: Bool): Void;
-      // Set whether billboards are relative to the scene node. Default true.
-    function setRelative(enable: Bool): Void;
-      // Set scaled.
-    function setScaled(enable: Bool): Void;
-      // Set sorted.
-    function setSorted(enable: Bool): Void;
-      // Set animation LOD bias.
-    function setAnimationLodBias(lodBias: Float): Void;
-      // Set emitter type.
-    function setEmitterType(type: EmitterType): Void;
-      // Set emitter size.
-    function setEmitterSize(size: Vector3): Void;
-      // Set negative direction limit.
-    function setMinDirection(direction: Vector3): Void;
-      // Set positive direction limit.
-    function setMaxDirection(direction: Vector3): Void;
-      // Set constant force acting on particles.
-    function setConstantForce(force: Vector3): Void;
-      // Set particle velocity damping force.
-    function setDampingForce(force: Float): Void;
-      // Set emission active period length (0 = infinite.)
-    function setActiveTime(time: Float): Void;
-      // Set emission inactive period length (0 = infinite.)
-    function setInactiveTime(time: Float): Void;
-      // Set minimum emission rate.
-    function setMinEmissionRate(rate: Float): Void;
-      // Set maximum emission rate.
-    function setMaxEmissionRate(rate: Float): Void;
-      // Set particle minimum size.
-    function setMinParticleSize(size: Vector2): Void;
-      // Set particle maximum size.
-    function setMaxParticleSize(size: Vector2): Void;
-      // Set particle minimum time to live.
-    function setMinTimeToLive(time: Float): Void;
-      // Set particle maximum time to live.
-    function setMaxTimeToLive(time: Float): Void;
-      // Set particle minimum velocity.
-    function setMinVelocity(velocity: Float): Void;
-      // Set particle maximum velocity.
-    function setMaxVelocity(velocity: Float): Void;
-      // Set particle minimum rotation.
-    function setMinRotation(rotation: Float): Void;
-      // Set particle maximum rotation.
-    function setMaxRotation(rotation: Float): Void;
-      // Set particle minimum rotation speed.
-    function setMinRotationSpeed(speed: Float): Void;
-      // Set particle maximum rotation speed.
-    function setMaxRotationSpeed(speed: Float): Void;
-      // Set particle size additive modifier.
-    function setSizeAdd(sizeAdd: Float): Void;
-      // Set particle size multiplicative modifier.
-    function setSizeMul(sizeMul: Float): Void;
-      // Add a color frame sorted in the correct position based on time.
-    function addColorTime(color: Color, time: Float): Void;
-      // Remove color frame at index
-    function removeColorFrame(index: Int): Void;
-      // Set number of color frames.
-    function setNumColorFrames(number: Int): Void;
-      // Sort the list of color frames based on time.
-    function sortColorFrames(): Void;
-      // Add a texture frame sorted in the correct position based on time.
-    function addTextureTime(uv: Rect, time: Float): Void;
-      // Remove texture frame at index
-    function removeTextureFrame(index: Int): Void;
-      // Set number of texture frames.
-    function setNumTextureFrames(number: Int): Void;
-      // Sort the list of texture frames based on time.
-    function sortTextureFrames(): Void;
-      // Return material.
-    function getMaterial(): Material;
-      // Return maximum number of particles.
-    function getNumParticles(): Int;
-      // Return whether to update when particles are not visible.
-    function getUpdateInvisible(): Bool;
-      // Return whether billboards are relative to the scene node.
-    function isRelative(): Bool;
-      // Return whether scene node scale affects billboards' size.
-    function isScaled(): Bool;
-      // Return whether billboards are sorted.
-    function isSorted(): Bool;
-      // Return animation Lod bias.
-    function getAnimationLodBias(): Float;
-      // Return emitter type.
-    function getEmitterType(): EmitterType;
-      // Return emitter size.
-    function getEmitterSize(): Vector3;
-      // Return negative direction limit.
-    function getMinDirection(): Vector3;
-      // Return positive direction limit.
-    function getMaxDirection(): Vector3;
-      // Return constant force acting on particles.
-    function getConstantForce(): Vector3;
-      // Return particle velocity damping force.
-    function getDampingForce(): Float;
-      // Return emission active period length (0 = infinite.)
-    function getActiveTime(): Float;
-      // Return emission inactive period length (0 = infinite.)
-    function getInactiveTime(): Float;
-      // Return minimum emission rate.
-    function getMinEmissionRate(): Float;
-      // Return maximum emission rate.
-    function getMaxEmissionRate(): Float;
-      // Return particle minimum size.
-    function getMinParticleSize(): Vector2;
-      // Return particle maximum size.
-    function getMaxParticleSize(): Vector2;
-      // Return particle minimum time to live.
-    function getMinTimeToLive(): Float;
-      // Return particle maximum time to live.
-    function getMaxTimeToLive(): Float;
-      // Return particle minimum velocity.
-    function getMinVelocity(): Float;
-      // Return particle maximum velocity.
-    function getMaxVelocity(): Float;
-      // Return particle minimum rotation.
-    function getMinRotation(): Float;
-      // Return particle maximum rotation.
-    function getMaxRotation(): Float;
-      // Return particle minimum rotation speed.
-    function getMinRotationSpeed(): Float;
-      // Return particle maximum rotation speed.
-    function getMaxRotationSpeed(): Float;
-      // Return particle size additive modifier.
-    function getSizeAdd(): Float;
-      // Return particle size multiplicative modifier.
-    function getSizeMul(): Float;
-      // Return number of color animation frames.
-    function getNumColorFrames(): Int;
-      // Return number of texture animation frames.
-    function getNumTextureFrames(): Int;
-      // Return random direction.
-    function getRandomDirection(): Vector3;
-      // Return random size.
-    function getRandomSize(): Vector2;
-      // Return random velocity.
-    function getRandomVelocity(): Float;
-      // Return random timetolive.
-    function getRandomTimeToLive(): Float;
-      // Return random rotationspeed.
-    function getRandomRotationSpeed(): Float;
-      // Return random rotation.
-    function getRandomRotation(): Float;
-
-}
-
-@:native("Atomic.ParticleEmitter")
-extern class ParticleEmitter extends BillboardSet {
-
-    var effect: ParticleEffect;
-    var numParticles: Int;
-    var emitting: Bool;
-    var serializeParticles: Bool;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set particle effect.
-    function setEffect(effect: ParticleEffect): Void;
-      // Set maximum number of particles.
-    function setNumParticles(num: Int): Void;
-      // Set whether should be emitting. If the state was changed, also resets the emission period timer.
-    function setEmitting(enable: Bool): Void;
-      // Set whether particles should be serialized. Default true, set false to reduce scene file size.
-    function setSerializeParticles(enable: Bool): Void;
-      // Reset the emission period timer.
-    function resetEmissionTimer(): Void;
-      // Remove all current particles.
-    function removeAllParticles(): Void;
-      // Reset the particle emitter completely. Removes current particles, sets emitting state on, and resets the emission timer.
-    function reset(): Void;
-      // Apply not continuously updated values such as the material, the number of particles and sorting mode from the particle effect. Call this if you change the effect programmatically.
-    function applyEffect(): Void;
-      // Return particle effect.
-    function getEffect(): ParticleEffect;
-      // Return maximum number of particles.
-    function getNumParticles(): Int;
-      // Return whether is currently emitting.
-    function isEmitting(): Bool;
-      // Return whether particles are to be serialized.
-    function getSerializeParticles(): Bool;
-
-}
-
-@:native("Atomic.Skybox")
-extern class Skybox extends StaticModel {
-
-      // Construct.
-    function new();
-
-
-}
-
-@:native("Atomic.StaticModel")
-extern class StaticModel extends Drawable {
-
-    var model: Model;
-    var material: Material;
-    var occlusionLodLevel: Int;
-    var numGeometries: Int;
-
-      // Construct.
-    function new();
-
-      // Return number of occlusion geometry triangles.
-    @:overload(function(): Int{})
-    override function getNumOccluderTriangles(): Int;
-      // Set model.
-    function setModel(model: Model): Void;
-      // Set material on all geometries.
-    function setMaterial(material: Material): Void;
-      // Set occlusion LOD level. By default (M_MAX_UNSIGNED) same as visible.
-    function setOcclusionLodLevel(level: Int): Void;
-      // Apply default materials from a material list file. If filename is empty (default), the model's resource name with extension .txt will be used.
-    function applyMaterialList(?fileName: String): Void;
-      // Return model.
-    function getModel(): Model;
-      // Return number of geometries.
-    function getNumGeometries(): Int;
-      // Return material by geometry index.
-    function getMaterial(?index: Int): Material;
-      // Return occlusion LOD level.
-    function getOcclusionLodLevel(): Int;
-      // Determines if the given world space point is within the model geometry.
-    function isInside(point: Vector3): Bool;
-      // Determines if the given local space point is within the model geometry.
-    function isInsideLocal(point: Vector3): Bool;
-      function setMaterialIndex(index:UInt, material:Material):Void;
-
-}
-
-@:native("Atomic.StaticModelGroup")
-extern class StaticModelGroup extends StaticModel {
-
-    var numInstanceNodes: Int;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Return number of occlusion geometry triangles.
-    @:overload(function(): Int{})
-    override function getNumOccluderTriangles(): Int;
-      // Add an instance scene node. It does not need any drawable components of its own.
-    function addInstanceNode(node: Node): Void;
-      // Remove an instance scene node.
-    function removeInstanceNode(node: Node): Void;
-      // Remove all instance scene nodes.
-    function removeAllInstanceNodes(): Void;
-      // Return number of instance nodes.
-    function getNumInstanceNodes(): Int;
-      // Return instance node by index.
-    function getInstanceNode(index: Int): Node;
-
-}
-
-@:native("Atomic.Terrain")
-extern class Terrain extends Component {
-
-    var patchSize: Int;
-    var spacing: Vector3;
-    var smoothing: Bool;
-    var material: Material;
-    var drawDistance: Float;
-    var shadowDistance: Float;
-    var lodBias: Float;
-    var viewMask: Int;
-    var lightMask: Int;
-    var shadowMask: Int;
-    var zoneMask: Int;
-    var maxLights: Int;
-    var castShadows: Bool;
-    var occluder: Bool;
-    var occludee: Bool;
-    var numVertices: IntVector2;
-    var numPatches: IntVector2;
-    var heightMap: Image;
-    var patchSizeAttr: Int;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set patch quads per side. Must be a power of two.
-    function setPatchSize(size: Int): Void;
-      // Set vertex (XZ) and height (Y) spacing.
-    function setSpacing(spacing: Vector3): Void;
-      // Set smoothing of heightmap.
-    function setSmoothing(enable: Bool): Void;
-      // Set heightmap image. Dimensions should be a power of two + 1. Uses 8-bit grayscale, or optionally red as MSB and green as LSB for 16-bit accuracy. Return true if successful.
-    function setHeightMap(image: Image): Bool;
-      // Set material.
-    function setMaterial(material: Material): Void;
-      // Set draw distance for patches.
-    function setDrawDistance(distance: Float): Void;
-      // Set shadow draw distance for patches.
-    function setShadowDistance(distance: Float): Void;
-      // Set LOD bias for patches. Affects which terrain LOD to display.
-    function setLodBias(bias: Float): Void;
-      // Set view mask for patches. Is and'ed with camera's view mask to see if the object should be rendered.
-    function setViewMask(mask: Int): Void;
-      // Set light mask for patches. Is and'ed with light's and zone's light mask to see if the object should be lit.
-    function setLightMask(mask: Int): Void;
-      // Set shadow mask for patches. Is and'ed with light's light mask and zone's shadow mask to see if the object should be rendered to a shadow map.
-    function setShadowMask(mask: Int): Void;
-      // Set zone mask for patches. Is and'ed with zone's zone mask to see if the object should belong to the zone.
-    function setZoneMask(mask: Int): Void;
-      // Set maximum number of per-pixel lights for patches. Default 0 is unlimited.
-    function setMaxLights(num: Int): Void;
-      // Set shadowcaster flag for patches.
-    function setCastShadows(enable: Bool): Void;
-      // Set occlusion flag for patches. Occlusion uses the coarsest LOD and may potentially be too aggressive, so use with caution.
-    function setOccluder(enable: Bool): Void;
-      // Set occludee flag for patches.
-    function setOccludee(enable: Bool): Void;
-      // Apply changes from the heightmap image.
-    function applyHeightMap(): Void;
-      // Return patch quads per side.
-    function getPatchSize(): Int;
-      // Return vertex and height spacing.
-    function getSpacing(): Vector3;
-      // Return heightmap size in vertices.
-    function getNumVertices(): IntVector2;
-      // Return heightmap size in patches.
-    function getNumPatches(): IntVector2;
-      // Return whether smoothing is in use.
-    function getSmoothing(): Bool;
-      // Return heightmap image.
-    function getHeightMap(): Image;
-      // Return material.
-    function getMaterial(): Material;
-      // Return height at world coordinates.
-    function getHeight(worldPosition: Vector3): Float;
-      // Return normal at world coordinates.
-    function getNormal(worldPosition: Vector3): Vector3;
-      // Convert world position to heightmap pixel position. Note that the internal height data representation is reversed vertically, but in the heightmap image north is at the top.
-    function worldToHeightMap(worldPosition: Vector3): IntVector2;
-      // Return draw distance.
-    function getDrawDistance(): Float;
-      // Return shadow draw distance.
-    function getShadowDistance(): Float;
-      // Return LOD bias.
-    function getLodBias(): Float;
-      // Return view mask.
-    function getViewMask(): Int;
-      // Return light mask.
-    function getLightMask(): Int;
-      // Return shadow mask.
-    function getShadowMask(): Int;
-      // Return zone mask.
-    function getZoneMask(): Int;
-      // Return maximum number of per-pixel lights.
-    function getMaxLights(): Int;
-      // Return visible flag.
-    function isVisible(): Bool;
-      // Return shadowcaster flag.
-    function getCastShadows(): Bool;
-      // Return occluder flag.
-    function isOccluder(): Bool;
-      // Return occludee flag.
-    function isOccludee(): Bool;
-      // Regenerate patch geometry.
-    function createPatchGeometry(patch: TerrainPatch): Void;
-      // Update patch based on LOD and neighbor LOD.
-    function updatePatchLod(patch: TerrainPatch): Void;
-      // Set patch size attribute.
-    function setPatchSizeAttr(value: Int): Void;
-
-}
-
-@:native("Atomic.TerrainPatch")
-extern class TerrainPatch extends Drawable {
-
-    var owner: Terrain;
-    var material: Material;
-    var coordinates: IntVector2;
-    var occlusionOffset: Float;
-    var northPatch: TerrainPatch;
-    var southPatch: TerrainPatch;
-    var westPatch: TerrainPatch;
-    var eastPatch: TerrainPatch;
-    var lodLevel: Int;
-
-      // Construct.
-    function new();
-
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-    @:overload(function(): UpdateGeometryType{})
-    override function getUpdateGeometryType(): UpdateGeometryType;
-      // Return number of occlusion geometry triangles.
-    @:overload(function(): Int{})
-    override function getNumOccluderTriangles(): Int;
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set owner terrain.
-    function setOwner(terrain: Terrain): Void;
-      // Set neighbor patches.
-    function setNeighbors(north: TerrainPatch, south: TerrainPatch, west: TerrainPatch, east: TerrainPatch): Void;
-      // Set material.
-    function setMaterial(material: Material): Void;
-      // Set local-space bounding box.
-    function setBoundingBox(box: BoundingBox): Void;
-      // Set patch coordinates.
-    function setCoordinates(coordinates: IntVector2): Void;
-      // Set vertical offset for occlusion geometry. Should be negative.
-    function setOcclusionOffset(offset: Float): Void;
-      // Reset to LOD level 0.
-    function resetLod(): Void;
-      // Return owner terrain.
-    function getOwner(): Terrain;
-      // Return north neighbor patch.
-    function getNorthPatch(): TerrainPatch;
-      // Return south neighbor patch.
-    function getSouthPatch(): TerrainPatch;
-      // Return west neighbor patch.
-    function getWestPatch(): TerrainPatch;
-      // Return east neighbor patch.
-    function getEastPatch(): TerrainPatch;
-      // Return patch coordinates.
-    function getCoordinates(): IntVector2;
-      // Return current LOD level.
-    function getLodLevel(): Int;
-      // Return vertical offset for occlusion geometry..
-    function getOcclusionOffset(): Float;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Atomic2D
-//----------------------------------------------------
-
-
-@:native("Atomic.AnimatedSprite2D")
-extern class AnimatedSprite2D extends StaticSprite2D {
-
-    var speed: Float;
-    var animationSet: AnimationSet2D;
-    var loopMode: LoopMode2D;
-    var animation: String;
-    var rootNode: Node;
-    var animationAttr: String;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set speed.
-    function setSpeed(speed: Float): Void;
-      // Set animation by name and loop mode.
-    function setAnimation(name: String, ?loopMode: LoopMode2D): Void;
-      // Set animation set.
-    function setAnimationSet(animationSet: AnimationSet2D): Void;
-      // Set loop mode.
-    function setLoopMode(loopMode: LoopMode2D): Void;
-      // Return speed.
-    function getSpeed(): Float;
-      // Return animation name.
-    function getAnimation(): String;
-      // Return animation.
-    function getAnimationSet(): AnimationSet2D;
-      // Return loop mode.
-    function getLoopMode(): LoopMode2D;
-      // Return root node.
-    function getRootNode(): Node;
-      // Set animation by name.
-    function setAnimationAttr(name: String): Void;
-
-}
-
-@:native("Atomic.Animation2D")
-extern class Animation2D extends RefCounted {
-
-    var name: String;
-    var length: Float;
-    var looped: Bool;
-    var animationSet: AnimationSet2D;
-    var numTracks: Int;
-
-      // Construct.
-    function new(animationSet: AnimationSet2D);
-
-      // Set name.
-    function setName(name: String): Void;
-      // Set length.
-    function setLength(length: Float): Void;
-      // Set looped.
-    function setLooped(looped: Bool): Void;
-      // Return animation set.
-    function getAnimationSet(): AnimationSet2D;
-      // Return name.
-    function getName(): String;
-      // Return length.
-    function getLength(): Float;
-      // Return looped.
-    function isLooped(): Bool;
-      // Return number of animation tracks.
-    function getNumTracks(): Int;
-
-}
-
-@:native("Atomic.AnimationSet2D")
-extern class AnimationSet2D extends Resource {
-
-    var numAnimations: Int;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Get number of animations.
-    function getNumAnimations(): Int;
-
-}
-
-@:native("Atomic.CollisionBox2D")
-extern class CollisionBox2D extends CollisionShape2D {
-
-    var size: Vector2;
-    var angle: Float;
-    var center: Vector2;
-
-      // Construct.
-    function new();
-
-      // Set size.
-    function setSize(size: Vector2): Void;
-      // Set angle.
-    function setAngle(angle: Float): Void;
-      // Return size.
-    function getSize(): Vector2;
-      // Return center.
-    function getCenter(): Vector2;
-      // Return angle.
-    function getAngle(): Float;
-
-}
-
-@:native("Atomic.CollisionChain2D")
-extern class CollisionChain2D extends CollisionShape2D {
-
-    var loop: Bool;
-    var vertexCount: Int;
-
-      // Construct.
-    function new();
-
-      // Set loop.
-    function setLoop(loop: Bool): Void;
-      // Set vertex count.
-    function setVertexCount(count: Int): Void;
-      // Set vertex.
-    function setVertex(index: Int, vertex: Vector2): Void;
-      // Return loop.
-    function getLoop(): Bool;
-      // Return vertex count.
-    function getVertexCount(): Int;
-      // Return vertex.
-    function getVertex(index: Int): Vector2;
-
-}
-
-@:native("Atomic.CollisionCircle2D")
-extern class CollisionCircle2D extends CollisionShape2D {
-
-    var radius: Float;
-    var center: Vector2;
-
-      // Construct.
-    function new();
-
-      // Set radius.
-    function setRadius(radius: Float): Void;
-      // Return radius.
-    function getRadius(): Float;
-      // Return center.
-    function getCenter(): Vector2;
-
-}
-
-@:native("Atomic.CollisionEdge2D")
-extern class CollisionEdge2D extends CollisionShape2D {
-
-    var vertex1: Vector2;
-    var vertex2: Vector2;
-
-      // Construct.
-    function new();
-
-      // Set vertex 1.
-    function setVertex1(vertex: Vector2): Void;
-      // Set vertex 2.
-    function setVertex2(vertex: Vector2): Void;
-      // Set vertices.
-    function setVertices(vertex1: Vector2, vertex2: Vector2): Void;
-      // Return vertex 1.
-    function getVertex1(): Vector2;
-      // Return vertex 2.
-    function getVertex2(): Vector2;
-
-}
-
-@:native("Atomic.CollisionPolygon2D")
-extern class CollisionPolygon2D extends CollisionShape2D {
-
-    var vertexCount: Int;
-
-      // Construct.
-    function new();
-
-      // Set vertex count.
-    function setVertexCount(count: Int): Void;
-      // Set vertex.
-    function setVertex(index: Int, vertex: Vector2): Void;
-      // Return vertex count.
-    function getVertexCount(): Int;
-      // Return vertex.
-    function getVertex(index: Int): Vector2;
-
-}
-
-@:native("Atomic.CollisionShape2D")
-extern class CollisionShape2D extends Component {
-
-    var trigger: Bool;
-    var categoryBits: Int;
-    var maskBits: Int;
-    var groupIndex: Int;
-    var density: Float;
-    var friction: Float;
-    var restitution: Float;
-    var mass: Float;
-    var inertia: Float;
-    var massCenter: Vector2;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set trigger.
-    function setTrigger(trigger: Bool): Void;
-      // Set filter category bits.
-    function setCategoryBits(categoryBits: Int): Void;
-      // Set filter mask bits.
-    function setMaskBits(maskBits: Int): Void;
-      // Set filter group index.
-    function setGroupIndex(groupIndex: Int): Void;
-      // Set density.
-    function setDensity(density: Float): Void;
-      // Set friction.
-    function setFriction(friction: Float): Void;
-      // Set restitution .
-    function setRestitution(restitution: Float): Void;
-      // Create fixture.
-    function createFixture(): Void;
-      // Release fixture.
-    function releaseFixture(): Void;
-      // Return trigger.
-    function isTrigger(): Bool;
-      // Return filter category bits.
-    function getCategoryBits(): Int;
-      // Return filter mask bits.
-    function getMaskBits(): Int;
-      // Return filter group index.
-    function getGroupIndex(): Int;
-      // Return density.
-    function getDensity(): Float;
-      // Return friction.
-    function getFriction(): Float;
-      // Return restitution.
-    function getRestitution(): Float;
-      // Return mass.
-    function getMass(): Float;
-      // Return inertia.
-    function getInertia(): Float;
-      // Return mass center.
-    function getMassCenter(): Vector2;
-
-}
-
-@:native("Atomic.Constraint2D")
-extern class Constraint2D extends Component {
-
-    var otherBody: RigidBody2D;
-    var collideConnected: Bool;
-    var attachedConstraint: Constraint2D;
-    var ownerBody: RigidBody2D;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Create Joint.
-    function createJoint(): Void;
-      // Release Joint.
-    function releaseJoint(): Void;
-      // Set other rigid body.
-    function setOtherBody(body: RigidBody2D): Void;
-      // Set collide connected.
-    function setCollideConnected(collideConnected: Bool): Void;
-      // Set attached constriant (for gear).
-    function setAttachedConstraint(constraint: Constraint2D): Void;
-      // Return owner body.
-    function getOwnerBody(): RigidBody2D;
-      // Return other body.
-    function getOtherBody(): RigidBody2D;
-      // Return collide connected.
-    function getCollideConnected(): Bool;
-      // Return attached constraint (for gear).
-    function getAttachedConstraint(): Constraint2D;
-
-}
-
-@:native("Atomic.ConstraintDistance2D")
-extern class ConstraintDistance2D extends Constraint2D {
-
-    var ownerBodyAnchor: Vector2;
-    var otherBodyAnchor: Vector2;
-    var frequencyHz: Float;
-    var dampingRatio: Float;
-
-      // Construct.
-    function new();
-
-      // Set owner body anchor.
-    function setOwnerBodyAnchor(anchor: Vector2): Void;
-      // Set other body anchor.
-    function setOtherBodyAnchor(anchor: Vector2): Void;
-      // Set frequency Hz.
-    function setFrequencyHz(frequencyHz: Float): Void;
-      // Set damping ratio.
-    function setDampingRatio(dampingRatio: Float): Void;
-      // Return owner body anchor.
-    function getOwnerBodyAnchor(): Vector2;
-      // Return other body anchor.
-    function getOtherBodyAnchor(): Vector2;
-      // Return frequency Hz.
-    function getFrequencyHz(): Float;
-      // Return damping ratio.
-    function getDampingRatio(): Float;
-
-}
-
-@:native("Atomic.ConstraintFriction2D")
-extern class ConstraintFriction2D extends Constraint2D {
-
-    var anchor: Vector2;
-    var maxForce: Float;
-    var maxTorque: Float;
-
-      // Construct.
-    function new();
-
-      // Set anchor.
-    function setAnchor(anchor: Vector2): Void;
-      // Set max force.
-    function setMaxForce(maxForce: Float): Void;
-      // Set max torque.
-    function setMaxTorque(maxTorque: Float): Void;
-      // Return anchor.
-    function getAnchor(): Vector2;
-      // Set max force.
-    function getMaxForce(): Float;
-      // Set max torque.
-    function getMaxTorque(): Float;
-
-}
-
-@:native("Atomic.ConstraintGear2D")
-extern class ConstraintGear2D extends Constraint2D {
-
-    var ownerConstraint: Constraint2D;
-    var otherConstraint: Constraint2D;
-    var ratio: Float;
-
-      // Construct.
-    function new();
-
-      // Set owner constraint.
-    function setOwnerConstraint(constraint: Constraint2D): Void;
-      // Set other constraint.
-    function setOtherConstraint(constraint: Constraint2D): Void;
-      // Set ratio.
-    function setRatio(ratio: Float): Void;
-      // Return owner constraint.
-    function getOwnerConstraint(): Constraint2D;
-      // Return other constraint.
-    function getOtherConstraint(): Constraint2D;
-      // Return ratio.
-    function getRatio(): Float;
-
-}
-
-@:native("Atomic.ConstraintMotor2D")
-extern class ConstraintMotor2D extends Constraint2D {
-
-    var linearOffset: Vector2;
-    var angularOffset: Float;
-    var maxForce: Float;
-    var maxTorque: Float;
-    var correctionFactor: Float;
-
-      // Construct.
-    function new();
-
-      // Set linear offset.
-    function setLinearOffset(linearOffset: Vector2): Void;
-      // Set angular offset.
-    function setAngularOffset(angularOffset: Float): Void;
-      // Set max force.
-    function setMaxForce(maxForce: Float): Void;
-      // Set max torque.
-    function setMaxTorque(maxTorque: Float): Void;
-      // Set correction factor.
-    function setCorrectionFactor(correctionFactor: Float): Void;
-      // Return linear offset.
-    function getLinearOffset(): Vector2;
-      // Return angular offset.
-    function getAngularOffset(): Float;
-      // Return max force.
-    function getMaxForce(): Float;
-      // Return max torque.
-    function getMaxTorque(): Float;
-      // Return correction factor.
-    function getCorrectionFactor(): Float;
-
-}
-
-@:native("Atomic.ConstraintMouse2D")
-extern class ConstraintMouse2D extends Constraint2D {
-
-    var target: Vector2;
-    var maxForce: Float;
-    var frequencyHz: Float;
-    var dampingRatio: Float;
-
-      // Construct.
-    function new();
-
-      // Set target.
-    function setTarget(target: Vector2): Void;
-      // Set max force.
-    function setMaxForce(maxForce: Float): Void;
-      // Set frequency Hz.
-    function setFrequencyHz(frequencyHz: Float): Void;
-      // Set damping ratio.
-    function setDampingRatio(dampingRatio: Float): Void;
-      // Return target.
-    function getTarget(): Vector2;
-      // Return max force.
-    function getMaxForce(): Float;
-      // Return frequency Hz.
-    function getFrequencyHz(): Float;
-      // Return damping ratio.
-    function getDampingRatio(): Float;
-
-}
-
-@:native("Atomic.ConstraintPrismatic2D")
-extern class ConstraintPrismatic2D extends Constraint2D {
-
-    var anchor: Vector2;
-    var axis: Vector2;
-    var enableLimit: Bool;
-    var lowerTranslation: Float;
-    var upperTranslation: Float;
-    var enableMotor: Bool;
-    var maxMotorForce: Float;
-    var motorSpeed: Float;
-
-      // Construct.
-    function new();
-
-      // Set anchor.
-    function setAnchor(anchor: Vector2): Void;
-      // Set axis.
-    function setAxis(axis: Vector2): Void;
-      // Set enable limit.
-    function setEnableLimit(enableLimit: Bool): Void;
-      // Set lower translation.
-    function setLowerTranslation(lowerTranslation: Float): Void;
-      // Set upper translation.
-    function setUpperTranslation(upperTranslation: Float): Void;
-      // Set enable motor.
-    function setEnableMotor(enableMotor: Bool): Void;
-      // Set maxmotor force.
-    function setMaxMotorForce(maxMotorForce: Float): Void;
-      // Set motor speed.
-    function setMotorSpeed(motorSpeed: Float): Void;
-      // Return anchor.
-    function getAnchor(): Vector2;
-      // Return axis.
-    function getAxis(): Vector2;
-      // Return enable limit.
-    function getEnableLimit(): Bool;
-      // Return lower translation.
-    function getLowerTranslation(): Float;
-      // Return upper translation.
-    function getUpperTranslation(): Float;
-      // Return enable motor.
-    function getEnableMotor(): Bool;
-      // Return maxmotor force.
-    function getMaxMotorForce(): Float;
-      // Return motor speed.
-    function getMotorSpeed(): Float;
-
-}
-
-@:native("Atomic.ConstraintPulley2D")
-extern class ConstraintPulley2D extends Constraint2D {
-
-    var ownerBodyGroundAnchor: Vector2;
-    var otherBodyGroundAnchor: Vector2;
-    var ownerBodyAnchor: Vector2;
-    var otherBodyAnchor: Vector2;
-    var ratio: Float;
-
-      // Construct.
-    function new();
-
-      // Set other body ground anchor point.
-    function setOwnerBodyGroundAnchor(groundAnchor: Vector2): Void;
-      // Set other body ground anchor point.
-    function setOtherBodyGroundAnchor(groundAnchor: Vector2): Void;
-      // Set owner body anchor point.
-    function setOwnerBodyAnchor(anchor: Vector2): Void;
-      // Set other body anchor point.
-    function setOtherBodyAnchor(anchor: Vector2): Void;
-      // Set ratio.
-    function setRatio(ratio: Float): Void;
-      // Return owner body ground anchor.
-    function getOwnerBodyGroundAnchor(): Vector2;
-      // return other body ground anchor.
-    function getOtherBodyGroundAnchor(): Vector2;
-      // Return owner body anchor.
-    function getOwnerBodyAnchor(): Vector2;
-      // Return other body anchor.
-    function getOtherBodyAnchor(): Vector2;
-      // Return ratio.
-    function getRatio(): Float;
-
-}
-
-@:native("Atomic.ConstraintRevolute2D")
-extern class ConstraintRevolute2D extends Constraint2D {
-
-    var anchor: Vector2;
-    var enableLimit: Bool;
-    var lowerAngle: Float;
-    var upperAngle: Float;
-    var enableMotor: Bool;
-    var motorSpeed: Float;
-    var maxMotorTorque: Float;
-
-      // Construct.
-    function new();
-
-      // Set anchor.
-    function setAnchor(anchor: Vector2): Void;
-      // Set enable limit.
-    function setEnableLimit(enableLimit: Bool): Void;
-      // Set lower angle.
-    function setLowerAngle(lowerAngle: Float): Void;
-      // Set upper angle.
-    function setUpperAngle(upperAngle: Float): Void;
-      // Set enable motor.
-    function setEnableMotor(enableMotor: Bool): Void;
-      // Set motor speed.
-    function setMotorSpeed(motorSpeed: Float): Void;
-      // Set max motor torque.
-    function setMaxMotorTorque(maxMotorTorque: Float): Void;
-      // Return anchor.
-    function getAnchor(): Vector2;
-      // Return enable limit.
-    function getEnableLimit(): Bool;
-      // Return lower angle.
-    function getLowerAngle(): Float;
-      // Return upper angle.
-    function getUpperAngle(): Float;
-      // Return enable motor.
-    function getEnableMotor(): Bool;
-      // Return motor speed.
-    function getMotorSpeed(): Float;
-      // Return max motor torque.
-    function getMaxMotorTorque(): Float;
-
-}
-
-@:native("Atomic.ConstraintRope2D")
-extern class ConstraintRope2D extends Constraint2D {
-
-    var ownerBodyAnchor: Vector2;
-    var otherBodyAnchor: Vector2;
-    var maxLength: Float;
-
-      // Construct.
-    function new();
-
-      // Set owner body anchor.
-    function setOwnerBodyAnchor(anchor: Vector2): Void;
-      // Set other body anchor.
-    function setOtherBodyAnchor(anchor: Vector2): Void;
-      // Set max length.
-    function setMaxLength(maxLength: Float): Void;
-      // Return owner body anchor.
-    function getOwnerBodyAnchor(): Vector2;
-      // Return other body anchor.
-    function getOtherBodyAnchor(): Vector2;
-      // Return max length.
-    function getMaxLength(): Float;
-
-}
-
-@:native("Atomic.ConstraintWeld2D")
-extern class ConstraintWeld2D extends Constraint2D {
-
-    var anchor: Vector2;
-    var frequencyHz: Float;
-    var dampingRatio: Float;
-
-      // Construct.
-    function new();
-
-      // Set anchor.
-    function setAnchor(anchor: Vector2): Void;
-      // Set frequency Hz.
-    function setFrequencyHz(frequencyHz: Float): Void;
-      // Set damping ratio.
-    function setDampingRatio(dampingRatio: Float): Void;
-      // Return anchor.
-    function getAnchor(): Vector2;
-      // Return frequency Hz.
-    function getFrequencyHz(): Float;
-      // Return damping ratio.
-    function getDampingRatio(): Float;
-
-}
-
-@:native("Atomic.ConstraintWheel2D")
-extern class ConstraintWheel2D extends Constraint2D {
-
-    var anchor: Vector2;
-    var axis: Vector2;
-    var enableMotor: Bool;
-    var maxMotorTorque: Float;
-    var motorSpeed: Float;
-    var frequencyHz: Float;
-    var dampingRatio: Float;
-
-      // Construct.
-    function new();
-
-      // Set anchor.
-    function setAnchor(anchor: Vector2): Void;
-      // Set axis.
-    function setAxis(axis: Vector2): Void;
-      // Set enable motor.
-    function setEnableMotor(enableMotor: Bool): Void;
-      // Set max motor torque.
-    function setMaxMotorTorque(maxMotorTorque: Float): Void;
-      // Set motor speed.
-    function setMotorSpeed(motorSpeed: Float): Void;
-      // Set frequency Hz.
-    function setFrequencyHz(frequencyHz: Float): Void;
-      // Set damping ratio.
-    function setDampingRatio(dampingRatio: Float): Void;
-      // Return anchor.
-    function getAnchor(): Vector2;
-      // Return axis.
-    function getAxis(): Vector2;
-      // Return enable motor.
-    function getEnableMotor(): Bool;
-      // Return maxMotor torque.
-    function getMaxMotorTorque(): Float;
-      // Return motor speed.
-    function getMotorSpeed(): Float;
-      // Return frequency Hz.
-    function getFrequencyHz(): Float;
-      // Return damping ratio.
-    function getDampingRatio(): Float;
-
-}
-
-@:native("Atomic.Drawable2D")
-extern class Drawable2D extends Drawable {
-
-    var layer: Int;
-    var orderInLayer: Int;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set layer.
-    function setLayer(layer: Int): Void;
-      // Set order in layer.
-    function setOrderInLayer(orderInLayer: Int): Void;
-      // Return layer.
-    function getLayer(): Int;
-      // Return order in layer.
-    function getOrderInLayer(): Int;
-
-}
-
-@:native("Atomic.Light2D")
-extern class Light2D extends Component {
-
-    var lightGroupID: Int;
-    var color: Color;
-    var numRays: Int;
-    var lightType: LightType2D;
-    var castShadows: Bool;
-    var softShadows: Bool;
-    var softShadowLength: Float;
-    var backtrace: Bool;
-
-      // Construct.
-    function new();
-
-    function setLightGroupID(id: Int): Void;
-    function getLightGroupID(): Int;
-    function getColor(): Color;
-    function setColor(color: Color): Void;
-    function updateVertices(): Void;
-    function setNumRays(numRays: Int): Void;
-    function getNumRays(): Int;
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-    function getLightType(): LightType2D;
-    function getCastShadows(): Bool;
-    function setCastShadows(castShadows: Bool): Void;
-    function getSoftShadows(): Bool;
-    function setSoftShadows(softShadows: Bool): Void;
-    function getSoftShadowLength(): Float;
-    function setSoftShadowLength(softShadowLength: Float): Void;
-    function getBacktrace(): Bool;
-    function setBacktrace(backtrace: Bool): Void;
-
-}
-
-@:native("Atomic.DirectionalLight2D")
-extern class DirectionalLight2D extends Light2D {
-
-    var direction: Float;
-
-      // Construct.
-    function new();
-
-    @:overload(function(): Void{})
-    override function updateVertices(): Void;
-    function getDirection(): Float;
-    function setDirection(direction: Float): Void;
-
-}
-
-@:native("Atomic.PositionalLight2D")
-extern class PositionalLight2D extends Light2D {
-
-      // Construct.
-    function new();
-
-    @:overload(function(): Void{})
-    override function updateVertices(): Void;
-
-}
-
-@:native("Atomic.PointLight2D")
-extern class PointLight2D extends PositionalLight2D {
-
-    var radius: Float;
-
-      // Construct.
-    function new();
-
-    @:overload(function(): Void{})
-    override function updateVertices(): Void;
-    function setRadius(radius: Float): Void;
-    function getRadius(): Float;
-
-}
-
-@:native("Atomic.Light2DGroup")
-extern class Light2DGroup extends Drawable2D {
-
-    var physicsWorld: PhysicsWorld2D;
-    var ambientColor: Color;
-    var lightGroupID: Int;
-    var frustumBox: BoundingBox;
-
-      // Construct.
-    function new();
-
-    function getPhysicsWorld(): PhysicsWorld2D;
-    function addLight2D(light: Light2D): Void;
-    function removeLight2D(light: Light2D): Void;
-    function setDirty(): Void;
-    function setAmbientColor(color: Color): Void;
-    function getAmbientColor(): Color;
-    function setLightGroupID(id: Int): Void;
-    function getLightGroupID(): Int;
-    function getFrustumBox(): BoundingBox;
-
-}
-
-@:native("Atomic.ParticleEffect2D")
-extern class ParticleEffect2D extends Resource {
-
-    var sprite: Sprite2D;
-    var sourcePositionVariance: Vector2;
-    var speed: Float;
-    var speedVariance: Float;
-    var particleLifeSpan: Float;
-    var particleLifespanVariance: Float;
-    var angle: Float;
-    var angleVariance: Float;
-    var gravity: Vector2;
-    var radialAcceleration: Float;
-    var tangentialAcceleration: Float;
-    var radialAccelVariance: Float;
-    var tangentialAccelVariance: Float;
-    var startColor: Color;
-    var startColorVariance: Color;
-    var finishColor: Color;
-    var finishColorVariance: Color;
-    var maxParticles: Int;
-    var startParticleSize: Float;
-    var startParticleSizeVariance: Float;
-    var finishParticleSize: Float;
-    var finishParticleSizeVariance: Float;
-    var duration: Float;
-    var emitterType: EmitterType2D;
-    var maxRadius: Float;
-    var maxRadiusVariance: Float;
-    var minRadius: Float;
-    var minRadiusVariance: Float;
-    var rotatePerSecond: Float;
-    var rotatePerSecondVariance: Float;
-    var blendMode: BlendMode;
-    var rotationStart: Float;
-    var rotationStartVariance: Float;
-    var rotationEnd: Float;
-    var rotationEndVariance: Float;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Set sprite.
-    function setSprite(sprite: Sprite2D): Void;
-      // Set source position variance.
-    function setSourcePositionVariance(sourcePositionVariance: Vector2): Void;
-      // Set speed.
-    function setSpeed(speed: Float): Void;
-      // Set speed variance.
-    function setSpeedVariance(speedVariance: Float): Void;
-      // Set particle lifespan.
-    function setParticleLifeSpan(particleLifeSpan: Float): Void;
-      // Set particle lifespan variance.
-    function setParticleLifespanVariance(particleLifespanVariance: Float): Void;
-      // Set angle.
-    function setAngle(angle: Float): Void;
-      // Set angle variance.
-    function setAngleVariance(angleVariance: Float): Void;
-      // Set gravity.
-    function setGravity(gravity: Vector2): Void;
-      // Set radial acceleration.
-    function setRadialAcceleration(radialAcceleration: Float): Void;
-      // Set tangential acceleration.
-    function setTangentialAcceleration(tangentialAcceleration: Float): Void;
-      // Set radial acceleration variance.
-    function setRadialAccelVariance(radialAccelVariance: Float): Void;
-      // Set tangential acceleration variance.
-    function setTangentialAccelVariance(tangentialAccelVariance: Float): Void;
-      // Set start color.
-    function setStartColor(startColor: Color): Void;
-      // Set start color variance.
-    function setStartColorVariance(startColorVariance: Color): Void;
-      // Set finish color.
-    function setFinishColor(finishColor: Color): Void;
-      // Set finish color variance.
-    function setFinishColorVariance(finishColorVariance: Color): Void;
-      // Set max particles.
-    function setMaxParticles(maxParticles: Int): Void;
-      // Set start particle size.
-    function setStartParticleSize(startParticleSize: Float): Void;
-      // Set start particle size variance.
-    function setStartParticleSizeVariance(startParticleSizeVariance: Float): Void;
-      // Set finish particle size.
-    function setFinishParticleSize(finishParticleSize: Float): Void;
-      // Set finish particle size variance.
-    function setFinishParticleSizeVariance(FinishParticleSizeVariance: Float): Void;
-      // Set duration.
-    function setDuration(duration: Float): Void;
-      // Set emitter type.
-    function setEmitterType(emitterType: EmitterType2D): Void;
-      // Set max radius.
-    function setMaxRadius(maxRadius: Float): Void;
-      // Set max radius variance.
-    function setMaxRadiusVariance(maxRadiusVariance: Float): Void;
-      // Set min radius.
-    function setMinRadius(minRadius: Float): Void;
-      // Set min radius variance.
-    function setMinRadiusVariance(minRadiusVariance: Float): Void;
-      // Set rotate per second.
-    function setRotatePerSecond(rotatePerSecond: Float): Void;
-      // Set rotate per second variance.
-    function setRotatePerSecondVariance(rotatePerSecondVariance: Float): Void;
-      // Set blend mode.
-    function setBlendMode(blendMode: BlendMode): Void;
-      // Set rotation start.
-    function setRotationStart(rotationStart: Float): Void;
-      // Set rotation start variance.
-    function setRotationStartVariance(rotationStartVariance: Float): Void;
-      // Set rotation end.
-    function setRotationEnd(rotationEnd: Float): Void;
-      // Set rotation end variance.
-    function setRotationEndVariance(rotationEndVariance: Float): Void;
-      // Return sprite.
-    function getSprite(): Sprite2D;
-      // Return source position variance.
-    function getSourcePositionVariance(): Vector2;
-      // Return speed.
-    function getSpeed(): Float;
-      // Return speed variance.
-    function getSpeedVariance(): Float;
-      // Return particle lifespan.
-    function getParticleLifeSpan(): Float;
-      // Return particle lifespan variance.
-    function getParticleLifespanVariance(): Float;
-      // Return angle.
-    function getAngle(): Float;
-      // Return angle variance.
-    function getAngleVariance(): Float;
-      // Return gravity.
-    function getGravity(): Vector2;
-      // Return radial acceleration.
-    function getRadialAcceleration(): Float;
-      // Return tangential acceleration.
-    function getTangentialAcceleration(): Float;
-      // Return radial acceleration variance.
-    function getRadialAccelVariance(): Float;
-      // Return tangential acceleration variance.
-    function getTangentialAccelVariance(): Float;
-      // Return start color.
-    function getStartColor(): Color;
-      // Return start color variance.
-    function getStartColorVariance(): Color;
-      // Return finish color.
-    function getFinishColor(): Color;
-      // Return finish color variance.
-    function getFinishColorVariance(): Color;
-      // Return max particles.
-    function getMaxParticles(): Int;
-      // Return start particle size.
-    function getStartParticleSize(): Float;
-      // Return start particle size variance.
-    function getStartParticleSizeVariance(): Float;
-      // Return finish particle size.
-    function getFinishParticleSize(): Float;
-      // Return finish particle size variance.
-    function getFinishParticleSizeVariance(): Float;
-      // Return duration.
-    function getDuration(): Float;
-      // Return emitter type.
-    function getEmitterType(): EmitterType2D;
-      // Return max radius.
-    function getMaxRadius(): Float;
-      // Return max radius variance.
-    function getMaxRadiusVariance(): Float;
-      // Return min radius.
-    function getMinRadius(): Float;
-      // Return min radius variance.
-    function getMinRadiusVariance(): Float;
-      // Return rotate per second.
-    function getRotatePerSecond(): Float;
-      // Return rotate per second variance.
-    function getRotatePerSecondVariance(): Float;
-      // Return blend mode.
-    function getBlendMode(): BlendMode;
-      // Return rotation start.
-    function getRotationStart(): Float;
-      // Return rotation start variance.
-    function getRotationStartVariance(): Float;
-      // Return rotation end.
-    function getRotationEnd(): Float;
-      // Return rotation end variance.
-    function getRotationEndVariance(): Float;
-
-}
-
-@:native("Atomic.ParticleEmitter2D")
-extern class ParticleEmitter2D extends Drawable2D {
-
-    var effect: ParticleEffect2D;
-    var sprite: Sprite2D;
-    var blendMode: BlendMode;
-    var maxParticles: Int;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set particle effect.
-    function setEffect(effect: ParticleEffect2D): Void;
-      // Set sprite.
-    function setSprite(sprite: Sprite2D): Void;
-      // Set blend mode.
-    function setBlendMode(blendMode: BlendMode): Void;
-      // Set max particles.
-    function setMaxParticles(maxParticles: Int): Void;
-      // Return particle effect.
-    function getEffect(): ParticleEffect2D;
-      // Return sprite.
-    function getSprite(): Sprite2D;
-      // Return blend mode.
-    function getBlendMode(): BlendMode;
-      // Return max particles.
-    function getMaxParticles(): Int;
-
-}
-
-@:native("Atomic.PhysicsWorld2D")
-extern class PhysicsWorld2D extends Component {
-
-    var drawShape: Bool;
-    var drawJoint: Bool;
-    var drawAabb: Bool;
-    var drawPair: Bool;
-    var drawCenterOfMass: Bool;
-    var allowSleeping: Bool;
-    var warmStarting: Bool;
-    var continuousPhysics: Bool;
-    var subStepping: Bool;
-    var gravity: Vector2;
-    var autoClearForces: Bool;
-    var velocityIterations: Int;
-    var positionIterations: Int;
-    var applyingTransforms: Bool;
-
-      // Construct.
-    function new();
-
-      // Step the simulation forward.
-    function update(timeStep: Float): Void;
-      // Add debug geometry to the debug renderer.
-    @:overload(function(): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set draw shape.
-    function setDrawShape(drawShape: Bool): Void;
-      // Set draw joint.
-    function setDrawJoint(drawJoint: Bool): Void;
-      // Set draw aabb.
-    function setDrawAabb(drawAabb: Bool): Void;
-      // Set draw pair.
-    function setDrawPair(drawPair: Bool): Void;
-      // Set draw center of mass.
-    function setDrawCenterOfMass(drawCenterOfMass: Bool): Void;
-      // Set allow sleeping.
-    function setAllowSleeping(enable: Bool): Void;
-      // Set warm starting.
-    function setWarmStarting(enable: Bool): Void;
-      // Set continuous physics.
-    function setContinuousPhysics(enable: Bool): Void;
-      // Set sub stepping.
-    function setSubStepping(enable: Bool): Void;
-      // Set gravity.
-    function setGravity(gravity: Vector2): Void;
-      // Set auto clear forces.
-    function setAutoClearForces(enable: Bool): Void;
-      // Set velocity iterations.
-    function setVelocityIterations(velocityIterations: Int): Void;
-      // Set position iterations.
-    function setPositionIterations(positionIterations: Int): Void;
-      // Add rigid body.
-    function addRigidBody(rigidBody: RigidBody2D): Void;
-      // Remove rigid body.
-    function removeRigidBody(rigidBody: RigidBody2D): Void;
-      // Return draw shape.
-    function getDrawShape(): Bool;
-      // Return draw joint.
-    function getDrawJoint(): Bool;
-      // Return draw aabb.
-    function getDrawAabb(): Bool;
-      // Return draw pair.
-    function getDrawPair(): Bool;
-      // Return draw center of mass.
-    function getDrawCenterOfMass(): Bool;
-      // Return allow sleeping.
-    function getAllowSleeping(): Bool;
-      // Return warm starting.
-    function getWarmStarting(): Bool;
-      // Return continuous physics.
-    function getContinuousPhysics(): Bool;
-      // Return sub stepping.
-    function getSubStepping(): Bool;
-      // Return auto clear forces.
-    function getAutoClearForces(): Bool;
-      // Return gravity.
-    function getGravity(): Vector2;
-      // Return velocity iterations.
-    function getVelocityIterations(): Int;
-      // Return position iterations.
-    function getPositionIterations(): Int;
-      // Set node dirtying to be disregarded.
-    function setApplyingTransforms(enable: Bool): Void;
-      // Return whether node dirtying should be disregarded.
-    function isApplyingTransforms(): Bool;
-
-}
-
-@:native("Atomic.RigidBody2D")
-extern class RigidBody2D extends Component {
-
-    var bodyType: BodyType2D;
-    var mass: Float;
-    var inertia: Float;
-    var massCenter: Vector2;
-    var useFixtureMass: Bool;
-    var linearDamping: Float;
-    var angularDamping: Float;
-    var allowSleep: Bool;
-    var fixedRotation: Bool;
-    var bullet: Bool;
-    var gravityScale: Float;
-    var awake: Bool;
-    var linearVelocity: Vector2;
-    var angularVelocity: Float;
-    var castShadows: Bool;
-
-      // Construct.
-    function new();
-
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set body type.
-    function setBodyType(bodyType: BodyType2D): Void;
-      // Set Mass.
-    function setMass(mass: Float): Void;
-      // Set inertia.
-    function setInertia(inertia: Float): Void;
-      // Set mass center.
-    function setMassCenter(center: Vector2): Void;
-      // Use fixture mass (default is true).
-    function setUseFixtureMass(useFixtureMass: Bool): Void;
-      // Set linear damping.
-    function setLinearDamping(linearDamping: Float): Void;
-      // Set angular damping.
-    function setAngularDamping(angularDamping: Float): Void;
-      // Set allow sleep.
-    function setAllowSleep(allowSleep: Bool): Void;
-      // Set fixed rotation.
-    function setFixedRotation(fixedRotation: Bool): Void;
-      // Set bullet.
-    function setBullet(bullet: Bool): Void;
-      // Set gravity scale.
-    function setGravityScale(gravityScale: Float): Void;
-      // Set awake.
-    function setAwake(awake: Bool): Void;
-      // Set linear velocity.
-    function setLinearVelocity(linearVelocity: Vector2): Void;
-      // Set angular velocity.
-    function setAngularVelocity(angularVelocity: Float): Void;
-      // Apply force.
-    function applyForce(force: Vector2, point: Vector2, wake: Bool): Void;
-      // Apply force to center.
-    function applyForceToCenter(force: Vector2, wake: Bool): Void;
-      // Apply Torque.
-    function applyTorque(torque: Float, wake: Bool): Void;
-      // Apply linear impulse.
-    function applyLinearImpulse(impulse: Vector2, point: Vector2, wake: Bool): Void;
-      // Apply angular impulse.
-    function applyAngularImpulse(impulse: Float, wake: Bool): Void;
-      // Create body.
-    function createBody(): Void;
-      // Release body.
-    function releaseBody(): Void;
-      // Apply world transform.
-    function applyWorldTransform(): Void;
-      // Add collision shape.
-    function addCollisionShape2D(collisionShape: CollisionShape2D): Void;
-      // Remove collision shape.
-    function removeCollisionShape2D(collisionShape: CollisionShape2D): Void;
-      // Add constraint.
-    function addConstraint2D(constraint: Constraint2D): Void;
-      // Remove constraint.
-    function removeConstraint2D(constraint: Constraint2D): Void;
-      // Return body type.
-    function getBodyType(): BodyType2D;
-      // Return Mass.
-    function getMass(): Float;
-      // Return inertia.
-    function getInertia(): Float;
-      // Return mass center.
-    function getMassCenter(): Vector2;
-      // Return use fixture mass.
-    function getUseFixtureMass(): Bool;
-      // Return linear damping.
-    function getLinearDamping(): Float;
-      // Return angular damping.
-    function getAngularDamping(): Float;
-      // Return allow sleep.
-    function isAllowSleep(): Bool;
-      // Return fixed rotation.
-    function isFixedRotation(): Bool;
-      // Return bullet.
-    function isBullet(): Bool;
-      // Return gravity scale.
-    function getGravityScale(): Float;
-      // Return awake.
-    function isAwake(): Bool;
-      // Return linear velocity.
-    function getLinearVelocity(): Vector2;
-      // Return angular velocity.
-    function getAngularVelocity(): Float;
-    function getCastShadows(): Bool;
-    function setCastShadows(castShadows: Bool): Void;
-
-}
-
-@:native("Atomic.Sprite2D")
-extern class Sprite2D extends Resource {
-
-    var texture: Texture2D;
-    var rectangle: IntRect;
-    var hotSpot: Vector2;
-    var offset: IntVector2;
-    var spriteSheet: SpriteSheet2D;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Set texture.
-    function setTexture(texture: Texture2D): Void;
-      // Set rectangle.
-    function setRectangle(rectangle: IntRect): Void;
-      // Set hot spot.
-    function setHotSpot(hotSpot: Vector2): Void;
-      // Set offset.
-    function setOffset(offset: IntVector2): Void;
-      // Set sprite sheet.
-    function setSpriteSheet(spriteSheet: SpriteSheet2D): Void;
-      // Return texture.
-    function getTexture(): Texture2D;
-      // Return rectangle.
-    function getRectangle(): IntRect;
-      // Return hot spot.
-    function getHotSpot(): Vector2;
-      // Return offset.
-    function getOffset(): IntVector2;
-      // Return sprite sheet.
-    function getSpriteSheet(): SpriteSheet2D;
-      // Return texture rectangle.
-    function getTextureRectangle(rect: Rect, ?flipX: Bool, ?flipY: Bool): Bool;
-
-}
-
-@:native("Atomic.SpriteSheet2D")
-extern class SpriteSheet2D extends Resource {
-
-    var texture: Texture2D;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Return texture.
-    function getTexture(): Texture2D;
-      // Return sprite.
-    function getSprite(name: String): Sprite2D;
-      // Define sprite.
-    function defineSprite(name: String, rectangle: IntRect, ?hotSpot: Vector2, ?offset: IntVector2): Void;
-
-}
-
-@:native("Atomic.StaticSprite2D")
-extern class StaticSprite2D extends Drawable2D {
-
-    var sprite: Sprite2D;
-    var blendMode: BlendMode;
-    var flipX: Bool;
-    var flipY: Bool;
-    var color: Color;
-    var alpha: Float;
-    var useHotSpot: Bool;
-    var hotSpot: Vector2;
-    var customMaterial: Material;
-
-      // Construct.
-    function new();
-
-      // Set sprite.
-    function setSprite(sprite: Sprite2D): Void;
-      // Set blend mode.
-    function setBlendMode(blendMode: BlendMode): Void;
-      // Set flip.
-    function setFlip(flipX: Bool, flipY: Bool): Void;
-      // Set flip X.
-    function setFlipX(flipX: Bool): Void;
-      // Set flip Y.
-    function setFlipY(flipY: Bool): Void;
-      // Set color.
-    function setColor(color: Color): Void;
-      // Set alpha.
-    function setAlpha(alpha: Float): Void;
-      // Set use hot spot.
-    function setUseHotSpot(useHotSpot: Bool): Void;
-      // Set hot spot.
-    function setHotSpot(hotspot: Vector2): Void;
-      // Set custom material.
-    function setCustomMaterial(customMaterial: Material): Void;
-      // Return sprite.
-    function getSprite(): Sprite2D;
-      // Return blend mode.
-    function getBlendMode(): BlendMode;
-      // Return flip X.
-    function getFlipX(): Bool;
-      // Return flip Y.
-    function getFlipY(): Bool;
-      // Return color.
-    function getColor(): Color;
-      // Return alpha.
-    function getAlpha(): Float;
-      // Return use hot spot.
-    function getUseHotSpot(): Bool;
-      // Return hot spot.
-    function getHotSpot(): Vector2;
-      // Return custom material.
-    function getCustomMaterial(): Material;
-
-}
-
-@:native("Atomic.TileMap2D")
-extern class TileMap2D extends Component {
-
-    var tmxFile: TmxFile2D;
-    var numLayers: Int;
-
-      // Construct.
-    function new();
-
-      // Set tmx file.
-    function setTmxFile(tmxFile: TmxFile2D): Void;
-      // Return tmx file.
-    function getTmxFile(): TmxFile2D;
-      // Return number of layers.
-    function getNumLayers(): Int;
-      // Return tile map layer at index.
-    function getLayer(index: Int): TileMapLayer2D;
-    function getLayerByName(name: String): TileMapLayer2D;
-      // Convert tile index to position.
-    function tileIndexToPosition(x: Int, y: Int): Vector2;
-
-}
-
-@:native("Atomic.PropertySet2D")
-extern class PropertySet2D extends RefCounted {
-
-    function new();
-
-      // Return has property.
-    function hasProperty(name: String): Bool;
-      // Return property value.
-    function getProperty(name: String): String;
-
-}
-
-@:native("Atomic.Tile2D")
-extern class Tile2D extends RefCounted {
-
-    var gid: Int;
-    var sprite: Sprite2D;
-    var objectGroup: TmxObjectGroup2D;
-
-      // Construct.
-    function new();
-
-      // Return gid.
-    function getGid(): Int;
-      // Return sprite.
-    function getSprite(): Sprite2D;
-      // Return Object Group.
-    function getObjectGroup(): TmxObjectGroup2D;
-      // Return has property.
-    function hasProperty(name: String): Bool;
-      // Return property.
-    function getProperty(name: String): String;
-
-}
-
-@:native("Atomic.TileMapObject2D")
-extern class TileMapObject2D extends RefCounted {
-
-    var objectType: TileMapObjectType2D;
-    var name: String;
-    var type: String;
-    var position: Vector2;
-    var size: Vector2;
-    var numPoints: Int;
-    var tileGid: Int;
-    var tileSprite: Sprite2D;
-
-    function new();
-
-      // Return type.
-    function getObjectType(): TileMapObjectType2D;
-      // Return name.
-    function getName(): String;
-      // Return type.
-    function getType(): String;
-      // Return position.
-    function getPosition(): Vector2;
-      // Return size (for rectangle and ellipse).
-    function getSize(): Vector2;
-      // Return number of points (use for script).
-    function getNumPoints(): Int;
-      // Return point at index (use for script).
-    function getPoint(index: Int): Vector2;
-      // Return tile Gid.
-    function getTileGid(): Int;
-      // Return tile sprite.
-    function getTileSprite(): Sprite2D;
-      // Return has property.
-    function hasProperty(name: String): Bool;
-      // Return property value.
-    function getProperty(name: String): String;
-    function validCollisionShape(): Bool;
-    function createCollisionShape(node: Node): CollisionShape2D;
-
-}
-
-@:native("Atomic.TileMapLayer2D")
-extern class TileMapLayer2D extends Component {
-
-    var drawOrder: Int;
-    var visible: Bool;
-    var tileMap: TileMap2D;
-    var tmxLayer: TmxLayer2D;
-    var layerType: TileMapLayerType2D;
-    var width: Int;
-    var height: Int;
-    var numObjects: Int;
-    var imageNode: Node;
-    var name: String;
-
-      // Construct.
-    function new();
-
-      // Add debug geometry to the debug renderer.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Initialize with tile map and tmx layer.
-    function initialize(tileMap: TileMap2D, tmxLayer: TmxLayer2D): Void;
-      // Set draw order
-    function setDrawOrder(drawOrder: Int): Void;
-      // Set visible.
-    function setVisible(visible: Bool): Void;
-      // Return tile map.
-    function getTileMap(): TileMap2D;
-      // Return tmx layer.
-    function getTmxLayer(): TmxLayer2D;
-      // Return draw order.
-    function getDrawOrder(): Int;
-      // Return visible.
-    function isVisible(): Bool;
-      // Return has property
-    function hasProperty(name: String): Bool;
-      // Return property.
-    function getProperty(name: String): String;
-      // Return layer type.
-    function getLayerType(): TileMapLayerType2D;
-      // Return width (for tile layer only).
-    function getWidth(): Int;
-      // Return height (for tile layer only).
-    function getHeight(): Int;
-      // Return tile node (for tile layer only).
-    function getTileNode(x: Int, y: Int): Node;
-      // Return tile (for tile layer only).
-    function getTile(x: Int, y: Int): Tile2D;
-      // Return number of tile map objects (for object group only).
-    function getNumObjects(): Int;
-      // Return tile map object (for object group only).
-    function getObject(index: Int): TileMapObject2D;
-      // Return object node (for object group only).
-    function getObjectNode(index: Int): Node;
-      // Return image node (for image layer only).
-    function getImageNode(): Node;
-    function getName(): String;
-
-}
-
-@:native("Atomic.TmxLayer2D")
-extern class TmxLayer2D extends RefCounted {
-
-    var tmxFile: TmxFile2D;
-    var type: TileMapLayerType2D;
-    var name: String;
-    var width: Int;
-    var height: Int;
-
-    function new(tmxFile: TmxFile2D, type: TileMapLayerType2D);
-
-      // Return tmx file.
-    function getTmxFile(): TmxFile2D;
-      // Return type.
-    function getType(): TileMapLayerType2D;
-      // Return name.
-    function getName(): String;
-      // Return width.
-    function getWidth(): Int;
-      // Return height.
-    function getHeight(): Int;
-      // Return is visible.
-    function isVisible(): Bool;
-      // Return has property (use for script).
-    function hasProperty(name: String): Bool;
-      // Return property value (use for script).
-    function getProperty(name: String): String;
-
-}
-
-@:native("Atomic.TmxTileLayer2D")
-extern class TmxTileLayer2D extends TmxLayer2D {
-
-    function new(tmxFile: TmxFile2D);
-
-      // Return tile.
-    function getTile(x: Int, y: Int): Tile2D;
-
-}
-
-@:native("Atomic.TmxObjectGroup2D")
-extern class TmxObjectGroup2D extends TmxLayer2D {
-
-    var numObjects: Int;
-
-    function new(tmxFile: TmxFile2D);
-
-      // Return number of objects.
-    function getNumObjects(): Int;
-      // Return tile map object at index.
-    function getObject(index: Int): TileMapObject2D;
-
-}
-
-@:native("Atomic.TmxImageLayer2D")
-extern class TmxImageLayer2D extends TmxLayer2D {
-
-    var position: Vector2;
-    var source: String;
-    var sprite: Sprite2D;
-
-    function new(tmxFile: TmxFile2D);
-
-      // Return position.
-    function getPosition(): Vector2;
-      // Return source.
-    function getSource(): String;
-      // Return sprite.
-    function getSprite(): Sprite2D;
-
-}
-
-@:native("Atomic.TmxFile2D")
-extern class TmxFile2D extends Resource {
-
-    var numLayers: Int;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    @:overload(function(): Bool{})
-    override function endLoad(): Bool;
-      // Return tile sprite by gid, if not exist return 0.
-    function getTileSprite(gid: Int): Sprite2D;
-      // Return tile property set by gid, if not exist return 0.
-    function getTilePropertySet(gid: Int): PropertySet2D;
-      // Return tile object group by gid, if not exist return 0.
-    function getTileObjectGroup(gid: Int): TmxObjectGroup2D;
-      // Return number of layers.
-    function getNumLayers(): Int;
-      // Return layer at index.
-    function getLayer(index: Int): TmxLayer2D;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Audio
-//----------------------------------------------------
-
-
-@:native("Atomic.Sound")
-extern class Sound extends Resource {
-
-    var size: Int;
-    var looped: Bool;
-    var length: Float;
-    var dataSize: Int;
-    var sampleSize: Int;
-    var frequency: Float;
-    var intFrequency: Int;
-
-      // Construct.
-    function new();
-
-      // Set sound size in bytes. Also resets the sound to be uncompressed and one-shot.
-    function setSize(dataSize: Int): Void;
-      // Set uncompressed sound data format.
-    function setFormat(frequency: Int, sixteenBit: Bool, stereo: Bool): Void;
-      // Set loop on/off. If loop is enabled, sets the full sound as loop range.
-    function setLooped(enable: Bool): Void;
-      // Define loop.
-    function setLoop(repeatOffset: Int, endOffset: Int): Void;
-      // Return length in seconds.
-    function getLength(): Float;
-      // Return total sound data size.
-    function getDataSize(): Int;
-      // Return sample size.
-    function getSampleSize(): Int;
-      // Return default frequency as a float.
-    function getFrequency(): Float;
-      // Return default frequency as an integer.
-    function getIntFrequency(): Int;
-      // Return whether is looped.
-    function isLooped(): Bool;
-      // Return whether data is sixteen bit.
-    function isSixteenBit(): Bool;
-      // Return whether data is stereo.
-    function isStereo(): Bool;
-      // Return whether is compressed.
-    function isCompressed(): Bool;
-      // Fix interpolation by copying data from loop start to loop end (looped), or adding silence (oneshot.) Called internally, does not normally need to be called, unless the sound data is modified manually on the fly.
-    function fixInterpolation(): Void;
-
-}
-
-@:native("Atomic.SoundSource")
-extern class SoundSource extends Component {
-
-    var soundType: String;
-    var frequency: Float;
-    var gain: Float;
-    var attenuation: Float;
-    var panning: Float;
-    var autoRemove: Bool;
-    var sound: Sound;
-    var timePosition: Float;
-    var positionAttr: Int;
-    var playingAttr: Bool;
-
-      // Construct.
-    function new();
-
-      // Play a sound.
-    function play(sound: Sound): Void;
-      // Stop playback.
-    function stop(): Void;
-      // Set sound type, determines the master gain group.
-    function setSoundType(type: String): Void;
-      // Set frequency.
-    function setFrequency(frequency: Float): Void;
-      // Set gain. 0.0 is silence, 1.0 is full volume.
-    function setGain(gain: Float): Void;
-      // Set attenuation. 1.0 is unaltered. Used for distance attenuated playback.
-    function setAttenuation(attenuation: Float): Void;
-      // Set stereo panning. -1.0 is full left and 1.0 is full right.
-    function setPanning(panning: Float): Void;
-      // Set whether sound source will be automatically removed from the scene node when playback stops.
-    function setAutoRemove(enable: Bool): Void;
-      // Return sound.
-    function setSound(sound: Sound): Void;
-      // Return sound.
-    function getSound(): Sound;
-      // Return sound type, determines the master gain group.
-    function getSoundType(): String;
-      // Return playback time position.
-    function getTimePosition(): Float;
-      // Return frequency.
-    function getFrequency(): Float;
-      // Return gain.
-    function getGain(): Float;
-      // Return attenuation.
-    function getAttenuation(): Float;
-      // Return stereo panning.
-    function getPanning(): Float;
-      // Return autoremove mode.
-    function getAutoRemove(): Bool;
-      // Return whether is playing.
-    function isPlaying(): Bool;
-      // Update the sound source. Perform subclass specific operations. Called by Audio.
-    function update(timeStep: Float): Void;
-      // Update the effective master gain. Called internally and by Audio when the master gain changes.
-    function updateMasterGain(): Void;
-      // Set sound position attribute.
-    function setPositionAttr(value: Int): Void;
-      // Set sound playing attribute
-    function setPlayingAttr(value: Bool): Void;
-      // Return sound position attribute.
-    function getPositionAttr(): Int;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Physics
-//----------------------------------------------------
-
-
-@:native("Atomic.CollisionShape")
-extern class CollisionShape extends Component {
-
-    var terrain: Int;
-    var shapeType: ShapeType;
-    var size: Vector3;
-    var position: Vector3;
-    var rotation: Quaternion;
-    var margin: Float;
-    var model: Model;
-    var lodLevel: Int;
-    var physicsWorld: PhysicsWorld;
-    var worldBoundingBox: BoundingBox;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set as a box.
-    function setBox(size: Vector3, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a sphere.
-    function setSphere(diameter: Float, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a static plane.
-    function setStaticPlane(?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a cylinder.
-    function setCylinder(diameter: Float, height: Float, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a capsule.
-    function setCapsule(diameter: Float, height: Float, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a cone.
-    function setCone(diameter: Float, height: Float, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a triangle mesh from Model. If you update a model's geometry and want to reapply the shape, call physicsWorld->RemoveCachedGeometry(model) first.
-    function setTriangleMesh(model: Model, ?lodLevel: Int, ?scale: Vector3, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a triangle mesh from CustomGeometry.
-    function setCustomTriangleMesh(custom: CustomGeometry, ?scale: Vector3, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a convex hull from Model.
-    function setConvexHull(model: Model, ?lodLevel: Int, ?scale: Vector3, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a convex hull from CustomGeometry.
-    function setCustomConvexHull(custom: CustomGeometry, ?scale: Vector3, ?position: Vector3, ?rotation: Quaternion): Void;
-      // Set as a terrain. Only works if the same scene node contains a Terrain component.
-    function setTerrain(?lodLevel: Int): Void;
-      // Set shape type.
-    function setShapeType(type: ShapeType): Void;
-      // Set shape size.
-    function setSize(size: Vector3): Void;
-      // Set offset position.
-    function setPosition(position: Vector3): Void;
-      // Set offset rotation.
-    function setRotation(rotation: Quaternion): Void;
-      // Set offset transform.
-    function setTransform(position: Vector3, rotation: Quaternion): Void;
-      // Set collision margin.
-    function setMargin(margin: Float): Void;
-      // Set triangle mesh / convex hull model.
-    function setModel(model: Model): Void;
-      // Set model LOD level.
-    function setLodLevel(lodLevel: Int): Void;
-      // Return physics world.
-    function getPhysicsWorld(): PhysicsWorld;
-      // Return shape type.
-    function getShapeType(): ShapeType;
-      // Return shape size.
-    function getSize(): Vector3;
-      // Return offset position.
-    function getPosition(): Vector3;
-      // Return offset rotation.
-    function getRotation(): Quaternion;
-      // Return collision margin.
-    function getMargin(): Float;
-      // Return triangle mesh / convex hull model.
-    function getModel(): Model;
-      // Return model LOD level.
-    function getLodLevel(): Int;
-      // Return world-space bounding box.
-    function getWorldBoundingBox(): BoundingBox;
-      // Update the new collision shape to the RigidBody.
-    function notifyRigidBody(?updateMass: Bool): Void;
-      // Release the collision shape.
-    function releaseShape(): Void;
-
-}
-
-@:native("Atomic.Constraint")
-extern class Constraint extends Component {
-
-    var constraintType: ConstraintType;
-    var otherBody: RigidBody;
-    var position: Vector3;
-    var rotation: Quaternion;
-    var axis: Vector3;
-    var otherPosition: Vector3;
-    var otherRotation: Quaternion;
-    var otherAxis: Vector3;
-    var worldPosition: Vector3;
-    var highLimit: Vector2;
-    var lowLimit: Vector2;
-    var erp: Float;
-    var cfm: Float;
-    var disableCollision: Bool;
-    var physicsWorld: PhysicsWorld;
-    var ownBody: RigidBody;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set constraint type and recreate the constraint.
-    function setConstraintType(type: ConstraintType): Void;
-      // Set other body to connect to. Set to null to connect to the static world.
-    function setOtherBody(body: RigidBody): Void;
-      // Set constraint position relative to own body.
-    function setPosition(position: Vector3): Void;
-      // Set constraint rotation relative to own body.
-    function setRotation(rotation: Quaternion): Void;
-      // Set constraint rotation relative to own body by specifying the axis.
-    function setAxis(axis: Vector3): Void;
-      // Set constraint position relative to the other body. If connected to the static world, is a world space position.
-    function setOtherPosition(position: Vector3): Void;
-      // Set constraint rotation relative to the other body. If connected to the static world, is a world space rotation.
-    function setOtherRotation(rotation: Quaternion): Void;
-      // Set constraint rotation relative to the other body by specifying the axis.
-    function setOtherAxis(axis: Vector3): Void;
-      // Set constraint world space position. Resets both own and other body relative position, ie. zeroes the constraint error.
-    function setWorldPosition(position: Vector3): Void;
-      // Set high limit. Interpretation is constraint type specific.
-    function setHighLimit(limit: Vector2): Void;
-      // Set low limit. Interpretation is constraint type specific.
-    function setLowLimit(limit: Vector2): Void;
-      // Set constraint error reduction parameter. Zero = leave to default.
-    function setERP(erp: Float): Void;
-      // Set constraint force mixing parameter. Zero = leave to default.
-    function setCFM(cfm: Float): Void;
-      // Set whether to disable collisions between connected bodies.
-    function setDisableCollision(disable: Bool): Void;
-      // Return physics world.
-    function getPhysicsWorld(): PhysicsWorld;
-      // Return constraint type.
-    function getConstraintType(): ConstraintType;
-      // Return rigid body in own scene node.
-    function getOwnBody(): RigidBody;
-      // Return the other rigid body. May be null if connected to the static world.
-    function getOtherBody(): RigidBody;
-      // Return constraint position relative to own body.
-    function getPosition(): Vector3;
-      // Return constraint rotation relative to own body.
-    function getRotation(): Quaternion;
-      // Return constraint position relative to other body.
-    function getOtherPosition(): Vector3;
-      // Return constraint rotation relative to other body.
-    function getOtherRotation(): Quaternion;
-      // Return constraint world position, calculated from own body.
-    function getWorldPosition(): Vector3;
-      // Return high limit.
-    function getHighLimit(): Vector2;
-      // Return low limit.
-    function getLowLimit(): Vector2;
-      // Return constraint error reduction parameter.
-    function getERP(): Float;
-      // Return constraint force mixing parameter.
-    function getCFM(): Float;
-      // Return whether collisions between connected bodies are disabled.
-    function getDisableCollision(): Bool;
-      // Release the constraint.
-    function releaseConstraint(): Void;
-      // Apply constraint frames.
-    function applyFrames(): Void;
-
-}
-
-@:native("Atomic.PhysicsWorld")
-extern class PhysicsWorld extends Component {
-
-    var fps: Int;
-    var gravity: Vector3;
-    var maxSubSteps: Int;
-    var numIterations: Int;
-    var interpolation: Bool;
-    var internalEdge: Bool;
-    var splitImpulse: Bool;
-    var maxNetworkAngularVelocity: Float;
-    var debugRenderer: DebugRenderer;
-    var debugDepthTest: Bool;
-    var applyingTransforms: Bool;
-
-      // Construct.
-    function new();
-
-      // Set debug draw flags.
-    function setDebugMode(debugMode: Int): Void;
-      // Return debug draw flags.
-    function getDebugMode(): Int;
-      // Step the simulation forward.
-    function update(timeStep: Float): Void;
-      // Refresh collisions only without updating dynamics.
-    function updateCollisions(): Void;
-      // Set simulation substeps per second.
-    function setFps(fps: Int): Void;
-      // Set gravity.
-    function setGravity(gravity: Vector3): Void;
-      // Set maximum number of physics substeps per frame. 0 (default) is unlimited. Positive values cap the amount. Use a negative value to enable an adaptive timestep. This may cause inconsistent physics behavior.
-    function setMaxSubSteps(num: Int): Void;
-      // Set number of constraint solver iterations.
-    function setNumIterations(num: Int): Void;
-      // Set whether to interpolate between simulation steps.
-    function setInterpolation(enable: Bool): Void;
-      // Set whether to use Bullet's internal edge utility for trimesh collisions. Disabled by default.
-    function setInternalEdge(enable: Bool): Void;
-      // Set split impulse collision mode. This is more accurate, but slower. Disabled by default.
-    function setSplitImpulse(enable: Bool): Void;
-      // Set maximum angular velocity for network replication.
-    function setMaxNetworkAngularVelocity(velocity: Float): Void;
-      // Invalidate cached collision geometry for a model.
-    function removeCachedGeometry(model: Model): Void;
-      // Return gravity.
-    function getGravity(): Vector3;
-      // Return maximum number of physics substeps per frame.
-    function getMaxSubSteps(): Int;
-      // Return number of constraint solver iterations.
-    function getNumIterations(): Int;
-      // Return whether interpolation between simulation steps is enabled.
-    function getInterpolation(): Bool;
-      // Return whether Bullet's internal edge utility for trimesh collisions is enabled.
-    function getInternalEdge(): Bool;
-      // Return whether split impulse collision mode is enabled.
-    function getSplitImpulse(): Bool;
-      // Return simulation steps per second.
-    function getFps(): Int;
-      // Return maximum angular velocity for network replication.
-    function getMaxNetworkAngularVelocity(): Float;
-      // Add a rigid body to keep track of. Called by RigidBody.
-    function addRigidBody(body: RigidBody): Void;
-      // Remove a rigid body. Called by RigidBody.
-    function removeRigidBody(body: RigidBody): Void;
-      // Add a collision shape to keep track of. Called by CollisionShape.
-    function addCollisionShape(shape: CollisionShape): Void;
-      // Remove a collision shape. Called by CollisionShape.
-    function removeCollisionShape(shape: CollisionShape): Void;
-      // Add a constraint to keep track of. Called by Constraint.
-    function addConstraint(joint: Constraint): Void;
-      // Remove a constraint. Called by Constraint.
-    function removeConstraint(joint: Constraint): Void;
-      // Set debug renderer to use. Called both by PhysicsWorld itself and physics components.
-    function setDebugRenderer(debug: DebugRenderer): Void;
-      // Set debug geometry depth test mode. Called both by PhysicsWorld itself and physics components.
-    function setDebugDepthTest(enable: Bool): Void;
-      // Clean up the geometry cache.
-    function cleanupGeometryCache(): Void;
-      // Set node dirtying to be disregarded.
-    function setApplyingTransforms(enable: Bool): Void;
-      // Return whether node dirtying should be disregarded.
-    function isApplyingTransforms(): Bool;
-
-}
-
-@:native("Atomic.RigidBody")
-extern class RigidBody extends Component {
-
-    var mass: Float;
-    var position: Vector3;
-    var rotation: Quaternion;
-    var linearVelocity: Vector3;
-    var linearFactor: Vector3;
-    var linearRestThreshold: Float;
-    var linearDamping: Float;
-    var angularVelocity: Vector3;
-    var angularFactor: Vector3;
-    var angularRestThreshold: Float;
-    var angularDamping: Float;
-    var friction: Float;
-    var anisotropicFriction: Vector3;
-    var rollingFriction: Float;
-    var restitution: Float;
-    var contactProcessingThreshold: Float;
-    var ccdRadius: Float;
-    var ccdMotionThreshold: Float;
-    var useGravity: Bool;
-    var gravityOverride: Vector3;
-    var kinematic: Bool;
-    var trigger: Bool;
-    var collisionLayer: Int;
-    var collisionMask: Int;
-    var collisionEventMode: CollisionEventMode;
-    var physicsWorld: PhysicsWorld;
-    var centerOfMass: Vector3;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Handle enabled/disabled state change.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set mass. Zero mass makes the body static.
-    function setMass(mass: Float): Void;
-      // Set rigid body position in world space.
-    function setPosition(position: Vector3): Void;
-      // Set rigid body rotation in world space.
-    function setRotation(rotation: Quaternion): Void;
-      // Set rigid body position and rotation in world space as an atomic operation.
-    function setTransform(position: Vector3, rotation: Quaternion): Void;
-      // Set linear velocity.
-    function setLinearVelocity(velocity: Vector3): Void;
-      // Set linear degrees of freedom. Use 1 to enable an axis or 0 to disable. Default is all axes enabled (1, 1, 1).
-    function setLinearFactor(factor: Vector3): Void;
-      // Set linear velocity deactivation threshold.
-    function setLinearRestThreshold(threshold: Float): Void;
-      // Set linear velocity damping factor.
-    function setLinearDamping(damping: Float): Void;
-      // Set angular velocity.
-    function setAngularVelocity(angularVelocity: Vector3): Void;
-      // Set angular degrees of freedom. Use 1 to enable an axis or 0 to disable. Default is all axes enabled (1, 1, 1).
-    function setAngularFactor(factor: Vector3): Void;
-      // Set angular velocity deactivation threshold.
-    function setAngularRestThreshold(threshold: Float): Void;
-      // Set angular velocity damping factor.
-    function setAngularDamping(factor: Float): Void;
-      // Set friction coefficient.
-    function setFriction(friction: Float): Void;
-      // Set anisotropic friction.
-    function setAnisotropicFriction(friction: Vector3): Void;
-      // Set rolling friction coefficient.
-    function setRollingFriction(friction: Float): Void;
-      // Set restitution coefficient.
-    function setRestitution(restitution: Float): Void;
-      // Set contact processing threshold.
-    function setContactProcessingThreshold(threshold: Float): Void;
-      // Set continuous collision detection swept sphere radius.
-    function setCcdRadius(radius: Float): Void;
-      // Set continuous collision detection motion-per-simulation-step threshold. 0 disables, which is the default.
-    function setCcdMotionThreshold(threshold: Float): Void;
-      // Set whether gravity is applied to rigid body.
-    function setUseGravity(enable: Bool): Void;
-      // Set gravity override. If zero, uses physics world's gravity.
-    function setGravityOverride(gravity: Vector3): Void;
-      // Set rigid body kinematic mode. In kinematic mode forces are not applied to the rigid body.
-    function setKinematic(enable: Bool): Void;
-      // Set rigid body trigger mode. In trigger mode collisions are reported but do not apply forces.
-    function setTrigger(enable: Bool): Void;
-      // Set collision layer.
-    function setCollisionLayer(layer: Int): Void;
-      // Set collision mask.
-    function setCollisionMask(mask: Int): Void;
-      // Set collision group and mask.
-    function setCollisionLayerAndMask(layer: Int, mask: Int): Void;
-      // Set collision event signaling mode. Default is to signal when rigid bodies are active.
-    function setCollisionEventMode(mode: CollisionEventMode): Void;
-      // Apply torque.
-    function applyTorque(torque: Vector3): Void;
-      // Apply impulse to center of mass.
-    function applyImpulse(impulse: Vector3): Void;
-      // Apply torque impulse.
-    function applyTorqueImpulse(torque: Vector3): Void;
-      // Reset accumulated forces.
-    function resetForces(): Void;
-      // Activate rigid body if it was resting.
-    function activate(): Void;
-      // Readd rigid body to the physics world to clean up internal state like stale contacts.
-    function reAddBodyToWorld(): Void;
-      // Disable mass update. Call this to optimize performance when adding or editing multiple collision shapes in the same node.
-    function disableMassUpdate(): Void;
-      // Re-enable mass update and recalculate the mass/inertia by calling UpdateMass(). Call when collision shape changes are finished.
-    function enableMassUpdate(): Void;
-      // Return physics world.
-    function getPhysicsWorld(): PhysicsWorld;
-      // Return mass.
-    function getMass(): Float;
-      // Return rigid body position in world space.
-    function getPosition(): Vector3;
-      // Return rigid body rotation in world space.
-    function getRotation(): Quaternion;
-      // Return linear velocity.
-    function getLinearVelocity(): Vector3;
-      // Return linear degrees of freedom.
-    function getLinearFactor(): Vector3;
-      // Return linear velocity at local point.
-    function getVelocityAtPoint(position: Vector3): Vector3;
-      // Return linear velocity deactivation threshold.
-    function getLinearRestThreshold(): Float;
-      // Return linear velocity damping factor.
-    function getLinearDamping(): Float;
-      // Return angular velocity.
-    function getAngularVelocity(): Vector3;
-      // Return angular degrees of freedom.
-    function getAngularFactor(): Vector3;
-      // Return angular velocity deactivation threshold.
-    function getAngularRestThreshold(): Float;
-      // Return angular velocity damping factor.
-    function getAngularDamping(): Float;
-      // Return friction coefficient.
-    function getFriction(): Float;
-      // Return anisotropic friction.
-    function getAnisotropicFriction(): Vector3;
-      // Return rolling friction coefficient.
-    function getRollingFriction(): Float;
-      // Return restitution coefficient.
-    function getRestitution(): Float;
-      // Return contact processing threshold.
-    function getContactProcessingThreshold(): Float;
-      // Return continuous collision detection swept sphere radius.
-    function getCcdRadius(): Float;
-      // Return continuous collision detection motion-per-simulation-step threshold.
-    function getCcdMotionThreshold(): Float;
-      // Return whether rigid body uses gravity.
-    function getUseGravity(): Bool;
-      // Return gravity override. If zero (default), uses the physics world's gravity.
-    function getGravityOverride(): Vector3;
-      // Return center of mass offset.
-    function getCenterOfMass(): Vector3;
-      // Return kinematic mode flag.
-    function isKinematic(): Bool;
-      // Return whether this RigidBody is acting as a trigger.
-    function isTrigger(): Bool;
-      // Return whether rigid body is active (not sleeping.)
-    function isActive(): Bool;
-      // Return collision layer.
-    function getCollisionLayer(): Int;
-      // Return collision mask.
-    function getCollisionMask(): Int;
-      // Return collision event signaling mode.
-    function getCollisionEventMode(): CollisionEventMode;
-      // Apply new world transform after a simulation step. Called internally.
-    function applyWorldTransform(newWorldPosition: Vector3, newWorldRotation: Quaternion): Void;
-      // Update mass and inertia to the Bullet rigid body.
-    function updateMass(): Void;
-      // Update gravity parameters to the Bullet rigid body.
-    function updateGravity(): Void;
-      // Add a constraint that refers to this rigid body.
-    function addConstraint(constraint: Constraint): Void;
-      // Remove a constraint that refers to this rigid body.
-    function removeConstraint(constraint: Constraint): Void;
-      // Remove the rigid body.
-    function releaseBody(): Void;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Navigation
-//----------------------------------------------------
-
-
-@:native("Atomic.Navigable")
-extern class Navigable extends Component {
-
-    var recursive: Bool;
-
-      // Construct.
-    function new();
-
-      // Set whether geometry is automatically collected from child nodes. Default true.
-    function setRecursive(enable: Bool): Void;
-      // Return whether geometry is automatically collected from child nodes.
-    function isRecursive(): Bool;
-
-}
-
-@:native("Atomic.NavigationMesh")
-extern class NavigationMesh extends Component {
-
-    var tileSize: Int;
-    var cellSize: Float;
-    var cellHeight: Float;
-    var agentHeight: Float;
-    var agentRadius: Float;
-    var agentMaxClimb: Float;
-    var agentMaxSlope: Float;
-    var regionMinSize: Float;
-    var regionMergeSize: Float;
-    var edgeMaxLength: Float;
-    var edgeMaxError: Float;
-    var detailSampleDistance: Float;
-    var detailSampleMaxError: Float;
-    var padding: Vector3;
-    var randomPoint: Vector3;
-    var meshName: String;
-    var boundingBox: BoundingBox;
-    var worldBoundingBox: BoundingBox;
-    var numTiles: IntVector2;
-    var partitionType: NavmeshPartitionType;
-    var drawOffMeshConnections: Bool;
-    var drawNavAreas: Bool;
-
-      // Construct.
-    function new();
-
-      // Set tile size.
-    function setTileSize(size: Int): Void;
-      // Set cell size.
-    function setCellSize(size: Float): Void;
-      // Set cell height.
-    function setCellHeight(height: Float): Void;
-      // Set navigation agent height.
-    function setAgentHeight(height: Float): Void;
-      // Set navigation agent radius.
-    function setAgentRadius(radius: Float): Void;
-      // Set navigation agent max vertical climb.
-    function setAgentMaxClimb(maxClimb: Float): Void;
-      // Set navigation agent max slope.
-    function setAgentMaxSlope(maxSlope: Float): Void;
-      // Set region minimum size.
-    function setRegionMinSize(size: Float): Void;
-      // Set region merge size.
-    function setRegionMergeSize(size: Float): Void;
-      // Set edge max length.
-    function setEdgeMaxLength(length: Float): Void;
-      // Set edge max error.
-    function setEdgeMaxError(error: Float): Void;
-      // Set detail sampling distance.
-    function setDetailSampleDistance(distance: Float): Void;
-      // Set detail sampling maximum error.
-    function setDetailSampleMaxError(error: Float): Void;
-      // Set padding of the navigation mesh bounding box. Having enough padding allows to add geometry on the extremities of the navigation mesh when doing partial rebuilds.
-    function setPadding(padding: Vector3): Void;
-      // Set the cost of an area.
-    function setAreaCost(areaID: Int, cost: Float): Void;
-      // Find the nearest point on the navigation mesh to a given point. Extens specifies how far out from the specified point to check along each axis.
-    function findNearestPoint(point: Vector3, ?extents: Vector3): Vector3;
-      // Try to move along the surface from one point to another.
-    function moveAlongSurface(start: Vector3, end: Vector3, ?extents: Vector3, ?maxVisited: Int): Vector3;
-      // Return a random point on the navigation mesh.
-    function getRandomPoint(): Vector3;
-      // Return a random point on the navigation mesh within a circle. The circle radius is only a guideline and in practice the returned point may be further away.
-    function getRandomPointInCircle(center: Vector3, radius: Float, ?extents: Vector3): Vector3;
-      // Return distance to wall from a point. Maximum search radius must be specified.
-    function getDistanceToWall(point: Vector3, radius: Float, ?extents: Vector3): Float;
-      // Perform a walkability raycast on the navigation mesh between start and end and return the point where a wall was hit, or the end point if no walls.
-    function raycast(start: Vector3, end: Vector3, ?extents: Vector3): Vector3;
-      // Return the given name of this navigation mesh.
-    function getMeshName(): String;
-      // Set the name of this navigation mesh.
-    function setMeshName(newName: String): Void;
-      // Return tile size.
-    function getTileSize(): Int;
-      // Return cell size.
-    function getCellSize(): Float;
-      // Return cell height.
-    function getCellHeight(): Float;
-      // Return navigation agent height.
-    function getAgentHeight(): Float;
-      // Return navigation agent radius.
-    function getAgentRadius(): Float;
-      // Return navigation agent max vertical climb.
-    function getAgentMaxClimb(): Float;
-      // Return navigation agent max slope.
-    function getAgentMaxSlope(): Float;
-      // Return region minimum size.
-    function getRegionMinSize(): Float;
-      // Return region merge size.
-    function getRegionMergeSize(): Float;
-      // Return edge max length.
-    function getEdgeMaxLength(): Float;
-      // Return edge max error.
-    function getEdgeMaxError(): Float;
-      // Return detail sampling distance.
-    function getDetailSampleDistance(): Float;
-      // Return detail sampling maximum error.
-    function getDetailSampleMaxError(): Float;
-      // Return navigation mesh bounding box padding.
-    function getPadding(): Vector3;
-      // Get the current cost of an area
-    function getAreaCost(areaID: Int): Float;
-      // Return whether has been initialized with valid navigation data.
-    function isInitialized(): Bool;
-      // Return local space bounding box of the navigation mesh.
-    function getBoundingBox(): BoundingBox;
-      // Return world space bounding box of the navigation mesh.
-    function getWorldBoundingBox(): BoundingBox;
-      // Return number of tiles.
-    function getNumTiles(): IntVector2;
-      // Set the partition type used for polygon generation.
-    function setPartitionType(aType: NavmeshPartitionType): Void;
-      // Return Partition Type.
-    function getPartitionType(): NavmeshPartitionType;
-      // Draw debug geometry for OffMeshConnection components.
-    function setDrawOffMeshConnections(enable: Bool): Void;
-      // Return whether to draw OffMeshConnection components.
-    function getDrawOffMeshConnections(): Bool;
-      // Draw debug geometry for NavArea components.
-    function setDrawNavAreas(enable: Bool): Void;
-      // Return whether to draw NavArea components.
-    function getDrawNavAreas(): Bool;
-
-}
-
-@:native("Atomic.OffMeshConnection")
-extern class OffMeshConnection extends Component {
-
-    var endPoint: Node;
-    var radius: Float;
-    var bidirectional: Bool;
-    var mask: Int;
-    var areaID: Int;
-
-      // Construct.
-    function new();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-      // Visualize the component as debug geometry.
-    @:overload(function(debug: DebugRenderer, depthTest: Bool): Void{})
-    override function drawDebugGeometry(debug: DebugRenderer, depthTest: Bool): Void;
-      // Set endpoint node.
-    function setEndPoint(node: Node): Void;
-      // Set radius.
-    function setRadius(radius: Float): Void;
-      // Set bidirectional flag. Default true.
-    function setBidirectional(enabled: Bool): Void;
-      // Set a user assigned mask
-    function setMask(newMask: Int): Void;
-      // Sets the assigned area Id for the connection
-    function setAreaID(newAreaID: Int): Void;
-      // Return endpoint node.
-    function getEndPoint(): Node;
-      // Return radius.
-    function getRadius(): Float;
-      // Return whether is bidirectional.
-    function isBidirectional(): Bool;
-      // Return the user assigned mask
-    function getMask(): Int;
-      // Return the user assigned area ID
-    function getAreaID(): Int;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Input
-//----------------------------------------------------
-
-
-@:native("Atomic.Input")
-extern class Input extends AObject {
-
-    var toggleFullscreen: Bool;
-    var mouseGrabbed: Bool;
-    var mouseMode: MouseMode;
-    var screenKeyboardVisible: Bool;
-    var touchEmulation: Bool;
-    var qualifiers: Int;
-    var mousePosition: IntVector2;
-    var mouseMove: IntVector2;
-    var mouseMoveX: Int;
-    var mouseMoveY: Int;
-    var mouseMoveWheel: Int;
-    var numTouches: Int;
-    var numJoysticks: Int;
-    var screenKeyboardSupport: Bool;
-
-      // Construct.
-    function new();
-
-      // Poll for window messages. Called by HandleBeginFrame().
-    function update(): Void;
-      // Set whether ALT-ENTER fullscreen toggle is enabled.
-    function setToggleFullscreen(enable: Bool): Void;
-      // Set whether the operating system mouse cursor is visible. When not visible (default), is kept centered to prevent leaving the window. Mouse visibility event can be suppressed-- this also recalls any unsuppressed SetMouseVisible which can be returned by ResetMouseVisible().
-    function setMouseVisible(enable: Bool, ?suppressEvent: Bool): Void;
-      // Reset last mouse visibility that was not suppressed in SetMouseVisible.
-    function resetMouseVisible(): Void;
-      // Set whether the mouse is currently being grabbed by an operation.
-    function setMouseGrabbed(grab: Bool): Void;
-    function setMouseMode(mode: MouseMode): Void;
-      // Show or hide on-screen keyboard on platforms that support it. When shown, keypresses from it are delivered as key events.
-    function setScreenKeyboardVisible(enable: Bool): Void;
-      // Set touch emulation by mouse. Only available on desktop platforms. When enabled, actual mouse events are no longer sent and the mouse cursor is forced visible.
-    function setTouchEmulation(enable: Bool): Void;
-      // Begin recording a touch gesture. Return true if successful. The E_GESTURERECORDED event (which contains the ID for the new gesture) will be sent when recording finishes.
-    function recordGesture(): Bool;
-      // Remove an in-memory gesture by ID. Return true if was found.
-    function removeGesture(gestureID: Int): Bool;
-      // Remove all in-memory gestures.
-    function removeAllGestures(): Void;
-      // Return keycode from key name.
-    function getKeyFromName(name: String): Int;
-      // Return keycode from scancode.
-    function getKeyFromScancode(scancode: Int): Int;
-      // Return name of key from keycode.
-    function getKeyName(key: Int): String;
-      // Return scancode from keycode.
-    function getScancodeFromKey(key: Int): Int;
-      // Return scancode from key name.
-    function getScancodeFromName(name: String): Int;
-      // Return name of key from scancode.
-    function getScancodeName(scancode: Int): String;
-      // Check if a key is held down.
-    function getKeyDown(key: Int): Bool;
-      // Check if a key has been pressed on this frame.
-    function getKeyPress(key: Int): Bool;
-      // Check if a key is held down by scancode.
-    function getScancodeDown(scancode: Int): Bool;
-      // Check if a key has been pressed on this frame by scancode.
-    function getScancodePress(scancode: Int): Bool;
-      // Check if a mouse button is held down.
-    function getMouseButtonDown(button: Int): Bool;
-      // Check if a mouse button has been pressed on this frame.
-    function getMouseButtonPress(button: Int): Bool;
-      // Check if a qualifier key is held down.
-    function getQualifierDown(qualifier: Int): Bool;
-      // Check if a qualifier key has been pressed on this frame.
-    function getQualifierPress(qualifier: Int): Bool;
-      // Return the currently held down qualifiers.
-    function getQualifiers(): Int;
-      // Return mouse position within window. Should only be used with a visible mouse cursor.
-    function getMousePosition(): IntVector2;
-      // Return mouse movement since last frame.
-    function getMouseMove(): IntVector2;
-      // Return horizontal mouse movement since last frame.
-    function getMouseMoveX(): Int;
-      // Return vertical mouse movement since last frame.
-    function getMouseMoveY(): Int;
-      // Return mouse wheel movement since last frame.
-    function getMouseMoveWheel(): Int;
-      // Return number of active finger touches.
-    function getNumTouches(): Int;
-      // Return number of connected joysticks.
-    function getNumJoysticks(): Int;
-      // Return whether fullscreen toggle is enabled.
-    function getToggleFullscreen(): Bool;
-      // Return whether on-screen keyboard is supported.
-    function getScreenKeyboardSupport(): Bool;
-      // Return whether on-screen keyboard is being shown.
-    function isScreenKeyboardVisible(): Bool;
-      // Return whether touch emulation is enabled.
-    function getTouchEmulation(): Bool;
-      // Return whether the operating system mouse cursor is visible.
-    function isMouseVisible(): Bool;
-      // Return whether the mouse is currently being grabbed by an operation.
-    function isMouseGrabbed(): Bool;
-      // Return the mouse mode.
-    function getMouseMode(): MouseMode;
-      // Return whether application window has input focus.
-    function hasFocus(): Bool;
-      // Return whether application window is minimized.
-    function isMinimized(): Bool;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: UI
-//----------------------------------------------------
-
-
-@:native("Atomic.UIButton")
-extern class UIButton extends UIWidget {
-
-    var squeezable: Bool;
-
-    function new(?createWidget: Bool);
-
-    function setSqueezable(value: Bool): Void;
-
-}
-
-@:native("Atomic.UICheckBox")
-extern class UICheckBox extends UIWidget {
-
-    function new(?createWidget: Bool);
-
-
-}
-
-@:native("Atomic.UIClickLabel")
-extern class UIClickLabel extends UIWidget {
-
-    function new(?createWidget: Bool);
-
-
-}
-
-@:native("Atomic.UIContainer")
-extern class UIContainer extends UIWidget {
-
-    function new(?createWidget: Bool);
-
-
-}
-
-@:native("Atomic.UIDimmer")
-extern class UIDimmer extends UIWidget {
-
-    function new(?createWidget: Bool);
-
-
-}
-
-@:native("Atomic.UIDragObject")
-extern class UIDragObject extends AObject {
-
-    var text: String;
-    var icon: String;
-    var object: AObject;
-    var filenames: Array<String>;
-
-      // Construct.
-    function new(?object: AObject, ?text: String, ?icon: String);
-
-    function getText(): String;
-    function getIcon(): String;
-    function getObject(): AObject;
-    function getFilenames(): Array<String>;
-    function setText(text: String): Void;
-    function setIcon(icon: String): Void;
-    function setObject(object: AObject): Void;
-    function addFilename(filename: String): Void;
-
-}
-
-@:native("Atomic.UIEditField")
-extern class UIEditField extends UIWidget {
-
-    var textAlign: TEXT_ALIGN;
-    var editType: UI_EDIT_TYPE;
-    var readOnly: Bool;
-    var wrapping: Bool;
-
-    function new(?createWidget: Bool);
-
-    function appendText(text: String): Void;
-    function setTextAlign(align: TEXT_ALIGN): Void;
-    function setEditType(type: UI_EDIT_TYPE): Void;
-    function setReadOnly(readonly: Bool): Void;
-    function scrollTo(x: Int, y: Int): Void;
-    function setWrapping(wrap: Bool): Void;
-    function getWrapping(): Bool;
-
-}
-
-@:native("Atomic.UIFontDescription")
-extern class UIFontDescription extends AObject {
-
-    var id: String;
-    var size: Int;
-
-    function new();
-
-    function setId(id: String): Void;
-    function setSize(size: Int): Void;
-
-}
-
-@:native("Atomic.UIImageWidget")
-extern class UIImageWidget extends UIWidget {
-
-    var image: String;
-
-    function new(?createWidget: Bool);
-
-    function setImage(imagePath: String): Void;
-
-}
-
-@:native("Atomic.UIInlineSelect")
-extern class UIInlineSelect extends UIWidget {
-
-    var editFieldLayoutParams: UILayoutParams;
-
-    function new(?createWidget: Bool);
-
-    function setLimits(minimum: Float, maximum: Float): Void;
-    function setEditFieldLayoutParams(params: UILayoutParams): Void;
-
-}
-
-@:native("Atomic.UILayoutParams")
-extern class UILayoutParams extends AObject {
-
-    var width: Int;
-    var height: Int;
-    var minWidth: Int;
-    var minHeight: Int;
-    var maxWidth: Int;
-    var maxHeight: Int;
-
-    function new();
-
-    function setWidth(width: Int): Void;
-    function setHeight(height: Int): Void;
-    function setMinWidth(width: Int): Void;
-    function setMinHeight(height: Int): Void;
-    function setMaxWidth(width: Int): Void;
-    function setMaxHeight(height: Int): Void;
-
-}
-
-@:native("Atomic.UILayout")
-extern class UILayout extends UIWidget {
-
-    var spacing: Int;
-    var axis: UI_AXIS;
-    var layoutSize: UI_LAYOUT_SIZE;
-    var layoutPosition: UI_LAYOUT_POSITION;
-    var layoutDistribution: UI_LAYOUT_DISTRIBUTION;
-    var layoutDistributionPosition: UI_LAYOUT_DISTRIBUTION_POSITION;
-
-    function new(?axis: UI_AXIS, ?createWidget: Bool);
-
-    function setSpacing(spacing: Int): Void;
-    function setAxis(axis: UI_AXIS): Void;
-    function setLayoutSize(size: UI_LAYOUT_SIZE): Void;
-    function setLayoutPosition(position: UI_LAYOUT_POSITION): Void;
-    function setLayoutDistribution(distribution: UI_LAYOUT_DISTRIBUTION): Void;
-    function setLayoutDistributionPosition(distribution_pos: UI_LAYOUT_DISTRIBUTION_POSITION): Void;
-
-}
-
-@:native("Atomic.UIListView")
-extern class UIListView extends UIWidget {
-
-    var hoverItemID: String;
-    var selectedItemID: String;
-    var rootList: UISelectList;
-
-      // Construct.
-    function new(?createWidget: Bool);
-
-    function addRootItem(text: String, icon: String, id: String): Int;
-    function addChildItem(parentItemID: Int, text: String, icon: String, id: String): Int;
-    function setItemText(id: String, text: String): Void;
-    function setItemTextSkin(id: String, skin: String): Void;
-    function setItemIcon(id: String, icon: String): Void;
-    function deleteItemByID(id: String): Void;
-    function setExpanded(itemID: Int, value: Bool): Void;
-    function deleteAllItems(): Void;
-    function selectItemByID(id: String): Void;
-    function getHoverItemID(): String;
-    function getSelectedItemID(): String;
-    function getRootList(): UISelectList;
-
-}
-
-@:native("Atomic.UIMenuItem")
-extern class UIMenuItem extends UISelectItem {
-
-    function new(?str: String, ?id: String, ?shortcut: String, ?skinBg: String);
-
-
-}
-
-@:native("Atomic.UIMenuItemSource")
-extern class UIMenuItemSource extends UISelectItemSource {
-
-    function new();
-
-
-}
-
-@:native("Atomic.UIMenuWindow")
-extern class UIMenuWindow extends UIWidget {
-
-    function new(target: UIWidget, id: String);
-
-    function show(source: UISelectItemSource, ?x: Int, ?y: Int): Void;
-    function close(): Void;
-
-}
-
-@:native("Atomic.UIMessageWindow")
-extern class UIMessageWindow extends UIWindow {
-
-    function new(target: UIWidget, id: String, ?createWidget: Bool);
-
-    function show(title: String, message: String, settings: UI_MESSAGEWINDOW_SETTINGS, dimmer: Bool, width: Int, height: Int): Void;
-
-}
-
-@:native("Atomic.UIPreferredSize")
-extern class UIPreferredSize extends RefCounted {
-
-    var minWidth: Int;
-    var minHeight: Int;
-    var maxWidth: Int;
-    var maxHeight: Int;
-    var prefWidth: Int;
-    var prefHeight: Int;
-    var sizeDep: UI_SIZE_DEP;
-
-    function new(?w: Int, ?h: Int);
-
-    function getMinWidth(): Int;
-    function getMinHeight(): Int;
-    function getMaxWidth(): Int;
-    function getMaxHeight(): Int;
-    function getPrefWidth(): Int;
-    function getPrefHeight(): Int;
-    function getSizeDep(): UI_SIZE_DEP;
-    function setMinWidth(w: Int): Void;
-    function setMinHeight(h: Int): Void;
-    function setMaxWidth(w: Int): Void;
-    function setMaxHeight(h: Int): Void;
-    function setPrefWidth(w: Int): Void;
-    function setPrefHeight(h: Int): Void;
-    function setSizeDep(dep: UI_SIZE_DEP): Void;
-
-}
-
-@:native("Atomic.UISceneView")
-extern class UISceneView extends UIWidget {
-
-    var format: Int;
-    var autoUpdate: Bool;
-    var scene: Scene;
-    var cameraNode: Node;
-    var renderTexture: Texture2D;
-    var depthTexture: Texture2D;
-    var viewport: Viewport;
-    var size: IntVector2;
-
-    function new(?createWidget: Bool);
-
-      // React to resize.
-    function onResize(newSize: IntVector2): Void;
-      // Define the scene and camera to use in rendering. When ownScene is true the View3D will take ownership of them with shared pointers.
-    function setView(scene: Scene, camera: Camera): Void;
-      // Set render texture pixel format. Default is RGB.
-    function setFormat(format: Int): Void;
-      // Set render target auto update mode. Default is true.
-    function setAutoUpdate(enable: Bool): Void;
-      // Queue manual update on the render texture.
-    function queueUpdate(): Void;
-      // Return render texture pixel format.
-    function getFormat(): Int;
-      // Return whether render target updates automatically.
-    function getAutoUpdate(): Bool;
-      // Return scene.
-    function getScene(): Scene;
-      // Return camera scene node.
-    function getCameraNode(): Node;
-      // Return render texture.
-    function getRenderTexture(): Texture2D;
-      // Return depth stencil texture.
-    function getDepthTexture(): Texture2D;
-      // Return viewport.
-    function getViewport(): Viewport;
-    function setResizeRequired(): Void;
-    function getSize(): IntVector2;
-
-}
-
-@:native("Atomic.UIScrollContainer")
-extern class UIScrollContainer extends UIWidget {
-
-    var scrollMode: UI_SCROLL_MODE;
-    var adaptToContentSize: Bool;
-    var adaptContentSize: Bool;
-
-    function new(?createWidget: Bool);
-
-    function setScrollMode(mode: UI_SCROLL_MODE): Void;
-    function getScrollMode(): UI_SCROLL_MODE;
-      // Set to true if the preferred size of this container should adapt to the preferred size of the content. This is disabled by default.
-    function setAdaptToContentSize(adapt: Bool): Void;
-    function getAdaptToContentSize(): Bool;
-      // Set to true if the content should adapt to the available size of this container when it's larger than the preferred size. */
-    function setAdaptContentSize(adapt: Bool): Void;
-    function getAdaptContentSize(): Bool;
-
-}
-
-@:native("Atomic.UISection")
-extern class UISection extends UIWidget {
-
-    function new(?createWidget: Bool);
-
-
-}
-
-@:native("Atomic.UISelectItem")
-extern class UISelectItem extends AObject {
-
-    var string: String;
-    var id: String;
-    var skinImage: String;
-    var subSource: UISelectItemSource;
-
-    function new(?str: String, ?id: String, ?skinImage: String);
-
-    function setString(str: String): Void;
-    function setID(id: String): Void;
-    function setSkinImage(skinImage: String): Void;
-    function setSubSource(subSource: UISelectItemSource): Void;
-
-}
-
-@:native("Atomic.UISelectItemSource")
-extern class UISelectItemSource extends AObject {
-
-    function new();
-
-    function addItem(item: UISelectItem): Void;
-    function clear(): Void;
-
-}
-
-@:native("Atomic.UISelectList")
-extern class UISelectList extends UIWidget {
-
-    var filter: String;
-    var source: UISelectItemSource;
-    var hoverItemID: String;
-    var selectedItemID: String;
-
-    function new(?createWidget: Bool);
-
-    function setFilter(filter: String): Void;
-    function setSource(source: UISelectItemSource): Void;
-    function invalidateList(): Void;
-    @:overload(function(value: Int): Void{})
-    override function setValue(value: Float): Void;
-    @:overload(function(): Int{})
-    override function getValue(): Int;
-    function getHoverItemID(): String;
-    function getSelectedItemID(): String;
-
-}
-
-@:native("Atomic.UISeparator")
-extern class UISeparator extends UIWidget {
-
-    function new(?createWidget: Bool);
-
-
-}
-
-@:native("Atomic.UISkinImage")
-extern class UISkinImage extends UIWidget {
-
-    function new(bitmapID: String, ?createWidget: Bool);
-
-
-}
-
-@:native("Atomic.UITabContainer")
-extern class UITabContainer extends UIWidget {
-
-    var numPages: Int;
-    var currentPage: Int;
-    var currentPageWidget: UIWidget;
-
-    function new(?createWidget: Bool);
-
-    function getNumPages(): Int;
-    function setCurrentPage(page: Int): Void;
-    function getCurrentPageWidget(): UIWidget;
-
-}
-
-@:native("Atomic.UITextField")
-extern class UITextField extends UIWidget {
-
-    var textAlign: UI_TEXT_ALIGN;
-
-    function new(?createWidget: Bool);
-
-    function setTextAlign(align: UI_TEXT_ALIGN): Void;
-
-}
-
-@:native("Atomic.UITextureWidget")
-extern class UITextureWidget extends UIWidget {
-
-    var texture: Texture;
-
-    function new(?createWidget: Bool);
-
-    function setTexture(texture: Texture): Void;
-    function getTexture(): Texture;
-
-}
-
-@:native("Atomic.UIView")
-extern class UIView extends UIWidget {
-
-    function new();
-
-
-}
-
-@:native("Atomic.UIWidget")
-extern class UIWidget extends AObject {
-
-    var id: String;
-    var parent: UIWidget;
-    var contentRoot: UIWidget;
-    var rect: IntRect;
-    var preferredSize: UIPreferredSize;
-    var text: String;
-    var skinBg: String;
-    var layoutParams: UILayoutParams;
-    var fontDescription: UIFontDescription;
-    var gravity: UI_GRAVITY;
-    var value: Float;
-    var focus: Bool;
-    var visibility: UI_WIDGET_VISIBILITY;
-    var stateRaw: Int;
-    var dragObject: UIDragObject;
-    var firstChild: UIWidget;
-    var next: UIWidget;
-    var isFocusable: Bool;
-    var view: UIView;
-
-    function new(?createWidget: Bool);
-
-    function load(filename: String): Bool;
-    function getId(): String;
-    function getParent(): UIWidget;
-    function getContentRoot(): UIWidget;
-    function getRect(): IntRect;
-    function getPreferredSize(): UIPreferredSize;
-    function getText(): String;
-    function setRect(r: IntRect): Void;
-    function setSize(width: Int, height: Int): Void;
-    function setPosition(x: Int, y: Int): Void;
-    function setText(text: String): Void;
-    function setSkinBg(id: String): Void;
-    function setLayoutParams(params: UILayoutParams): Void;
-    function setFontDescription(fd: UIFontDescription): Void;
-    function removeChild(child: UIWidget, ?cleanup: Bool): Void;
-    function deleteAllChildren(): Void;
-    function setId(id: String): Void;
-    function center(): Void;
-    function setGravity(gravity: UI_GRAVITY): Void;
-    function setValue(value: Float): Void;
-    function getValue(): Float;
-    function setFocus(): Void;
-    function getFocus(): Bool;
-      // Set focus to first widget which accepts it
-    function setFocusRecursive(): Void;
-    function onFocusChanged(focused: Bool): Void;
-    function setState(state: Int, on: Bool): Void;
-    function getState(state: Int): Bool;
-    function setVisibility(visibility: UI_WIDGET_VISIBILITY): Void;
-    function getVisibility(): UI_WIDGET_VISIBILITY;
-    function setStateRaw(state: Int): Void;
-    function getStateRaw(): Int;
-    function invalidate(): Void;
-    function die(): Void;
-    function setDragObject(object: UIDragObject): Void;
-    function getDragObject(): UIDragObject;
-    function getFirstChild(): UIWidget;
-    function getNext(): UIWidget;
-    function isAncestorOf(widget: UIWidget): Bool;
-    function setIsFocusable(value: Bool): Void;
-    function getWidget(id: String): UIWidget;
-    function getView(): UIView;
-    function addChild(child: UIWidget): Void;
-      // This takes a relative Z and insert the child before or after the given reference widget.*/
-    function addChildRelative(child: UIWidget, z: UI_WIDGET_Z_REL, reference: UIWidget): Void;
-
-}
-
-@:native("Atomic.UIWindow")
-extern class UIWindow extends UIWidget {
-
-    var settings: UI_WINDOW_SETTINGS;
-
-    function new(?createWidget: Bool);
-
-    function getSettings(): UI_WINDOW_SETTINGS;
-    function setSettings(settings: UI_WINDOW_SETTINGS): Void;
-    function resizeToFitContent(): Void;
-    @:overload(function(child: UIWidget): Void{})
-    override function addChild(child: UIWidget): Void;
-    function close(): Void;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Resource
-//----------------------------------------------------
-
-
-@:native("Atomic.Image")
-extern class Image extends Resource {
-
-    var width: Int;
-    var height: Int;
-    var depth: Int;
-    var components: Int;
-    var compressedFormat: CompressedFormat;
-    var numCompressedLevels: Int;
-    var nextLevel: Image;
-
-      // Construct empty.
-    function new();
-
-      // Flip image horizontally. Return true if successful.
-    function flipHorizontal(): Bool;
-      // Flip image vertically. Return true if successful.
-    function flipVertical(): Bool;
-      // Resize image by bilinear resampling. Return true if successful.
-    function resize(width: Int, height: Int): Bool;
-      // Clear the image with a color.
-    function clear(color: Color): Void;
-      // Clear the image with an integer color. R component is in the 8 lowest bits.
-    function clearInt(uintColor: Int): Void;
-      // Save in BMP format. Return true if successful.
-    function saveBMP(fileName: String): Bool;
-      // Save in PNG format. Return true if successful.
-    function savePNG(fileName: String): Bool;
-      // Save in TGA format. Return true if successful.
-    function saveTGA(fileName: String): Bool;
-      // Save in JPG format with compression quality. Return true if successful.
-    function saveJPG(fileName: String, quality: Int): Bool;
-      // Return a bilinearly sampled 2D pixel color. X and Y have the range 0-1.
-    function getPixelBilinear(x: Float, y: Float): Color;
-      // Return a trilinearly sampled 3D pixel color. X, Y and Z have the range 0-1.
-    function getPixelTrilinear(x: Float, y: Float, z: Float): Color;
-      // Return width.
-    function getWidth(): Int;
-      // Return height.
-    function getHeight(): Int;
-      // Return depth.
-    function getDepth(): Int;
-      // Return number of color components.
-    function getComponents(): Int;
-      // Return whether is compressed.
-    function isCompressed(): Bool;
-      // Return compressed format.
-    function getCompressedFormat(): CompressedFormat;
-      // Return number of compressed mip levels.
-    function getNumCompressedLevels(): Int;
-      // Return next mip level by bilinear filtering.
-    function getNextLevel(): Image;
-      // Return image converted to 4-component (RGBA) to circumvent modern rendering API's not supporting e.g. the luminance-alpha format.
-    function convertToRGBA(): Image;
-      // Return subimage from the image by the defined rect or null if failed. 3D images are not supported. You must free the subimage yourself.
-    function getSubimage(rect: IntRect): Image;
-      // Precalculate the mip levels. Used by asynchronous texture loading.
-    function precalculateLevels(): Void;
-
-}
-
-@:native("Atomic.JSONFile")
-extern class JSONFile extends Resource {
-
-      // Construct.
-    function new();
-
-
-}
-
-@:native("Atomic.PListFile")
-extern class PListFile extends Resource {
-
-      // Construct.
-    function new();
-
-
-}
-
-@:native("Atomic.Resource")
-extern class Resource extends AObject {
-
-    var name: String;
-    var memoryUse: Int;
-    var asyncLoadState: AsyncLoadState;
-    var nameHash: String;
-    var useTimer: Int;
-
-      // Construct.
-    function new();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-    function endLoad(): Bool;
-      // Set name.
-    function setName(name: String): Void;
-      // Set memory use in bytes, possibly approximate.
-    function setMemoryUse(size: Int): Void;
-      // Reset last used timer.
-    function resetUseTimer(): Void;
-      // Set the asynchronous loading state. Called by ResourceCache. Resources in the middle of asynchronous loading are not normally returned to user.
-    function setAsyncLoadState(newState: AsyncLoadState): Void;
-      // Return name.
-    function getName(): String;
-      // Return name hash.
-    function getNameHash(): String;
-      // Return memory use in bytes, possibly approximate.
-    function getMemoryUse(): Int;
-      // Return time since last use in milliseconds. If referred to elsewhere than in the resource cache, returns always zero.
-    function getUseTimer(): Int;
-      // Return the asynchronous loading state.
-    function getAsyncLoadState(): AsyncLoadState;
-
-}
-
-@:native("Atomic.ResourceCache")
-extern class ResourceCache extends AObject {
-
-    var autoReloadResources: Bool;
-    var returnFailedResources: Bool;
-    var searchPackagesFirst: Bool;
-    var finishBackgroundResourcesMs: Int;
-    var numBackgroundLoadResources: Int;
-    var resourceDirs: Array<String>;
-    var totalMemoryUse: Int;
-
-      // Construct.
-    function new();
-
-      // Add a resource load directory. Optional priority parameter which will control search order.
-    function addResourceDir(pathName: String, ?priority: Int): Bool;
-      // Add a package file for loading resources from by name. Optional priority parameter which will control search order.
-    function addPackageFile(fileName: String, ?priority: Int): Bool;
-      // Add a manually created resource. Must be uniquely named.
-    function addManualResource(resource: Resource): Bool;
-      // Remove a resource load directory.
-    function removeResourceDir(pathName: String): Void;
-      // Remove a package file by name. Optionally release the resources loaded from it.
-    function removePackageFile(fileName: String, ?releaseResources: Bool, ?forceRelease: Bool): Void;
-      // Release a resource by name.
-    function releaseResource(type: String, name: String, ?force: Bool): Void;
-      // Release all resources. When called with the force flag false, releases all currently unused resources.
-    function releaseAllResources(?force: Bool): Void;
-      // Reload a resource. Return true on success. The resource will not be removed from the cache in case of failure.
-    function reloadResource(resource: Resource): Bool;
-      // Reload a resource based on filename. Causes also reload of dependent resources if necessary.
-    function reloadResourceWithDependencies(fileName: String): Void;
-      // Set memory budget for a specific resource type, default 0 is unlimited.
-    function setMemoryBudget(type: String, budget: Int): Void;
-      // Enable or disable automatic reloading of resources as files are modified. Default false.
-    function setAutoReloadResources(enable: Bool): Void;
-      // Enable or disable returning resources that failed to load. Default false. This may be useful in editing to not lose resource ref attributes.
-    function setReturnFailedResources(enable: Bool): Void;
-      // Define whether when getting resources should check package files or directories first. True for packages, false for directories.
-    function setSearchPackagesFirst(value: Bool): Void;
-      // Set how many milliseconds maximum per frame to spend on finishing background loaded resources.
-    function setFinishBackgroundResourcesMs(ms: Int): Void;
-      // Open and return a file from the resource load paths or from inside a package file. If not found, use a fallback search with absolute path. Return null if fails. Can be called from outside the main thread.
-    function getFile(name: String, ?sendEventOnFailure: Bool): File;
-      // Return a resource by type and name. Load if not loaded yet. Return null if not found or if fails, unless SetReturnFailedResources(true) has been called. Can be called only from the main thread.
-    function getResource(type: String, name: String, ?sendEventOnFailure: Bool): Resource;
-      // Load a resource without storing it in the resource cache. Return null if not found or if fails. Can be called from outside the main thread if the resource itself is safe to load completely (it does not possess for example GPU data.)
-    function getTempResource(type: String, name: String, ?sendEventOnFailure: Bool): Resource;
-      // Background load a resource. An event will be sent when complete. Return true if successfully stored to the load queue, false if eg. already exists. Can be called from outside the main thread.
-    function backgroundLoadResource(type: String, name: String, ?sendEventOnFailure: Bool, ?caller: Resource): Bool;
-      // Return number of pending background-loaded resources.
-    function getNumBackgroundLoadResources(): Int;
-      // Return an already loaded resource of specific type & name, or null if not found. Will not load if does not exist.
-    function getExistingResource(type: String, name: String): Resource;
-      // Return added resource load directories.
-    function getResourceDirs(): Array<String>;
-      // Return whether a file exists by name.
-    function exists(name: String): Bool;
-      // Return memory budget for a resource type.
-    function getMemoryBudget(type: String): Int;
-      // Return total memory use for a resource type.
-    function getMemoryUse(type: String): Int;
-      // Return total memory use for all resources.
-    function getTotalMemoryUse(): Int;
-      // Return full absolute file name of resource if possible.
-    function getResourceFileName(name: String): String;
-      // Return whether automatic resource reloading is enabled.
-    function getAutoReloadResources(): Bool;
-      // Return whether resources that failed to load are returned.
-    function getReturnFailedResources(): Bool;
-      // Return whether when getting resources should check package files or directories first.
-    function getSearchPackagesFirst(): Bool;
-      // Return how many milliseconds maximum to spend on finishing background loaded resources.
-    function getFinishBackgroundResourcesMs(): Int;
-      // Return either the path itself or its parent, based on which of them has recognized resource subdirectories.
-    function getPreferredResourceDir(path: String): String;
-      // Remove unsupported constructs from the resource name to prevent ambiguity, and normalize absolute filename to resource path relative if possible.
-    function sanitateResourceName(name: String): String;
-      // Remove unnecessary constructs from a resource directory name and ensure it to be an absolute path.
-    function sanitateResourceDirName(name: String): String;
-      // Store a dependency for a resource. If a dependency file changes, the resource will be reloaded.
-    function storeResourceDependency(resource: Resource, dependency: String): Void;
-      // Reset dependencies for a resource.
-    function resetDependencies(resource: Resource): Void;
-
-}
-
-@:native("Atomic.XMLFile")
-extern class XMLFile extends Resource {
-
-      // Construct.
-    function new();
-
-      // Deserialize from a string. Return true if successful.
-    function fromString(source: String): Bool;
-      // Serialize the XML content to a string.
-    function toString(?indentation: String): String;
-      // Patch the XMLFile with another XMLFile. Based on RFC 5261.
-    function patch(patchFile: XMLFile): Void;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Network
-//----------------------------------------------------
-
-
-@:native("Atomic.HttpRequest")
-extern class HttpRequest extends RefCounted {
-
-    var url: String;
-    var verb: String;
-    var error: String;
-    var state: HttpRequestState;
-    var availableSize: Int;
-
-      // Construct with parameters.
-    function new(url: String, verb: String, headers: Array<String>, postData: String);
-
-      // Process the connection in the worker thread until closed.
-    function threadFunction(): Void;
-      // Set position from the beginning of the stream. Not supported.
-    function seek(position: Int): Int;
-      // Return URL used in the request.
-    function getURL(): String;
-      // Return verb used in the request. Default GET if empty verb specified on construction.
-    function getVerb(): String;
-      // Return error. Only non-empty in the error state.
-    function getError(): String;
-      // Return connection state.
-    function getState(): HttpRequestState;
-      // Return amount of bytes in the read buffer.
-    function getAvailableSize(): Int;
-      // Return whether connection is in the open state.
-    function isOpen(): Bool;
-
-}
-
-@:native("Atomic.Network")
-extern class Network extends AObject {
-
-    var updateFps: Int;
-    var simulatedLatency: Int;
-    var simulatedPacketLoss: Float;
-    var packageCacheDir: String;
-
-      // Construct.
-    function new();
-
-      // Disconnect the connection to the server. If wait time is non-zero, will block while waiting for disconnect to finish.
-    function disconnect(?waitMSec: Int): Void;
-      // Start a server on a port using UDP protocol. Return true if successful.
-    function startServer(port: Dynamic): Bool;
-      // Stop the server.
-    function stopServer(): Void;
-      // Set network update FPS.
-    function setUpdateFps(fps: Int): Void;
-      // Set simulated latency in milliseconds. This adds a fixed delay before sending each packet.
-    function setSimulatedLatency(ms: Int): Void;
-      // Set simulated packet loss probability between 0.0 - 1.0.
-    function setSimulatedPacketLoss(probability: Float): Void;
-      // Register a remote event as allowed to be received. There is also a fixed blacklist of events that can not be allowed in any case, such as ConsoleCommand.
-    function registerRemoteEvent(eventType: String): Void;
-      // Unregister a remote event as allowed to received.
-    function unregisterRemoteEvent(eventType: String): Void;
-      // Unregister all remote events.
-    function unregisterAllRemoteEvents(): Void;
-      // Set the package download cache directory.
-    function setPackageCacheDir(path: String): Void;
-      // Perform an HTTP request to the specified URL. Empty verb defaults to a GET request. Return a request object which can be used to read the response data.
-    function makeHttpRequest(url: String, ?verb: String, ?headers: Array<String>, ?postData: String): HttpRequest;
-      // Return network update FPS.
-    function getUpdateFps(): Int;
-      // Return simulated latency in milliseconds.
-    function getSimulatedLatency(): Int;
-      // Return simulated packet loss probability.
-    function getSimulatedPacketLoss(): Float;
-      // Return whether the server is running.
-    function isServerRunning(): Bool;
-      // Return whether a remote event is allowed to be received.
-    function checkRemoteEvent(eventType: String): Bool;
-      // Return the package download cache directory.
-    function getPackageCacheDir(): String;
-      // Process incoming messages from connections. Called by HandleBeginFrame.
-    function update(timeStep: Float): Void;
-      // Send outgoing messages after frame logic. Called by HandleRenderUpdate.
-    function postUpdate(timeStep: Float): Void;
-
-}
-
-@:native("Atomic.NetworkPriority")
-extern class NetworkPriority extends Component {
-
-    var basePriority: Float;
-    var distanceFactor: Float;
-    var minPriority: Float;
-    var alwaysUpdateOwner: Bool;
-
-      // Construct.
-    function new();
-
-      // Set base priority. Default 100 (send updates at full frequency.)
-    function setBasePriority(priority: Float): Void;
-      // Set priority reduction distance factor. Default 0 (no effect.)
-    function setDistanceFactor(factor: Float): Void;
-      // Set minimum priority. Default 0 (no updates when far away enough.)
-    function setMinPriority(priority: Float): Void;
-      // Set whether updates to owner should be sent always at full rate. Default true.
-    function setAlwaysUpdateOwner(enable: Bool): Void;
-      // Return base priority.
-    function getBasePriority(): Float;
-      // Return priority reduction distance factor.
-    function getDistanceFactor(): Float;
-      // Return minimum priority.
-    function getMinPriority(): Float;
-      // Return whether updates to owner should be sent always at full rate.
-    function getAlwaysUpdateOwner(): Bool;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: IO
-//----------------------------------------------------
-
-
-@:native("Atomic.File")
-extern class File extends AObject {
-
-    var name: String;
-    var checksum: Int;
-    var fullPath: String;
-    var mode: FileMode;
-
-      // Construct and open a filesystem file.
-    function new(fileName: String, ?mode: FileMode);
-
-      // Set position from the beginning of the file.
-    function seek(position: Int): Int;
-      // Return the file name.
-    function getName(): String;
-      // Return a checksum of the file contents using the SDBM hash algorithm.
-    function getChecksum(): Int;
-      // Open a filesystem file. Return true if successful.
-    function open(fileName: String, ?mode: FileMode): Bool;
-      // Close the file.
-    function close(): Void;
-      // Flush any buffered output to the file.
-    function flush(): Void;
-      // Change the file name. Used by the resource system.
-    function setName(name: String): Void;
-      // Set the fullpath to the file
-    function setFullPath(path: String): Void;
-      // Return the open mode.
-    function getMode(): FileMode;
-      // Return whether is open.
-    function isOpen(): Bool;
-      // Return whether the file originates from a package.
-    function isPackaged(): Bool;
-      // Return the fullpath to the file
-    function getFullPath(): String;
-      // Unlike FileSystem.Copy this copy works when the source file is in a package file
-    function copy(srcFile: File): Bool;
-      function readText():String;
-      function writeString(text:String):Void;
-
-}
-
-@:native("Atomic.FileSystem")
-extern class FileSystem extends AObject {
-
-    var executeConsoleCommands: Bool;
-    var currentDir: String;
-    var programDir: String;
-    var userDocumentsDir: String;
-    var appBundleResourceFolder: String;
-
-      // Construct.
-    function new();
-
-      // Set the current working directory.
-    function setCurrentDir(pathName: String): Bool;
-      // Create a directory.
-    function createDir(pathName: String): Bool;
-      // Set whether to execute engine console commands as OS-specific system command.
-    function setExecuteConsoleCommands(enable: Bool): Void;
-      // Run a program using the command interpreter, block until it exits and return the exit code. Will fail if any allowed paths are defined.
-    function systemCommand(commandLine: String, ?redirectStdOutToLog: Bool): Int;
-      // Run a specific program, block until it exits and return the exit code. Will fail if any allowed paths are defined.
-    function systemRun(fileName: String, arguments: Array<String>): Int;
-      // Run a program using the command interpreter asynchronously. Return a request ID or M_MAX_UNSIGNED if failed. The exit code will be posted together with the request ID in an AsyncExecFinished event. Will fail if any allowed paths are defined.
-    function systemCommandAsync(commandLine: String): Int;
-      // Run a specific program asynchronously. Return a request ID or M_MAX_UNSIGNED if failed. The exit code will be posted together with the request ID in an AsyncExecFinished event. Will fail if any allowed paths are defined.
-    function systemRunAsync(fileName: String, arguments: Array<String>): Int;
-      // Open a file in an external program, with mode such as "edit" optionally specified. Will fail if any allowed paths are defined.
-    function systemOpen(fileName: String, ?mode: String): Bool;
-      // Copy a file. Return true if successful.
-    function copy(srcFileName: String, destFileName: String): Bool;
-      // Rename a file. Return true if successful.
-    function rename(srcFileName: String, destFileName: String): Bool;
-      // Delete a file. Return true if successful.
-    function delete(fileName: String): Bool;
-      // Register a path as allowed to access. If no paths are registered, all are allowed. Registering allowed paths is considered securing the Atomic execution environment: running programs and opening files externally through the system will fail afterward.
-    function registerPath(pathName: String): Void;
-      // Set a file's last modified time as seconds since 1.1.1970. Return true on success.
-    function setLastModifiedTime(fileName: String, newTime: Int): Bool;
-      // Return the absolute current working directory.
-    function getCurrentDir(): String;
-      // Return whether is executing engine console commands as OS-specific system command.
-    function getExecuteConsoleCommands(): Bool;
-      // Return whether paths have been registered.
-    function hasRegisteredPaths(): Bool;
-      // Check if a path is allowed to be accessed. If no paths are registered, all are allowed.
-    function checkAccess(pathName: String): Bool;
-      // Returns the file's last modified time as seconds since 1.1.1970, or 0 if can not be accessed.
-    function getLastModifiedTime(fileName: String): Int;
-      // Check if a file exists.
-    function fileExists(fileName: String): Bool;
-      // Check if a directory exists.
-    function dirExists(pathName: String): Bool;
-      // Return the program's directory. If it does not contain the Atomic default CoreData and Data directories, and the current working directory does, return the working directory instead.
-    function getProgramDir(): String;
-      // Return the user documents directory.
-    function getUserDocumentsDir(): String;
-      // Return the application preferences directory.
-    function getAppPreferencesDir(org: String, app: String): String;
-    function getAppBundleResourceFolder(): String;
-      // Remove a directory
-    function removeDir(directoryIn: String, recursive: Bool): Bool;
-      // Create directory and all necessary subdirectories below a given root
-    function createDirs(root: String, subdirectory: String): Bool;
-      // Copy a directory, directoryOut must not exist
-    function copyDir(directoryIn: String, directoryOut: String): Bool;
-      // Check if a file or directory exists at the specified path
-    function exists(pathName: String): Bool;
-    function createDirsRecursive(directoryIn: String, directoryOut: String): Bool;
-      function scanDir(pathName:String, filter:String, flags:UInt, recursive:Bool):Array<String>;
-
-}
-
-@:native("Atomic.FileWatcher")
-extern class FileWatcher extends AObject {
-
-    var delay: Float;
-    var path: String;
-
-      // Construct.
-    function new();
-
-      // Directory watching loop.
-    function threadFunction(): Void;
-      // Start watching a directory. Return true if successful.
-    function startWatching(pathName: String, watchSubDirs: Bool): Bool;
-      // Stop watching the directory.
-    function stopWatching(): Void;
-      // Set the delay in seconds before file changes are notified. This (hopefully) avoids notifying when a file save is still in progress. Default 1 second.
-    function setDelay(interval: Float): Void;
-      // Add a file change into the changes queue.
-    function addChange(fileName: String): Void;
-      // Return the path being watched, or empty if not watching.
-    function getPath(): String;
-      // Return the delay in seconds for notifying file changes.
-    function getDelay(): Float;
-
-}
-
-@:native("Atomic.Log")
-extern class Log extends AObject {
-
-    var level: Int;
-    var timeStamp: Bool;
-    var quiet: Bool;
-    var lastMessage: String;
-
-      // Construct.
-    function new();
-
-      // Open the log file.
-    function open(fileName: String): Void;
-      // Close the log file.
-    function close(): Void;
-      // Set logging level.
-    function setLevel(level: Int): Void;
-      // Set whether to timestamp log messages.
-    function setTimeStamp(enable: Bool): Void;
-      // Set quiet mode ie. only print error entries to standard error stream (which is normally redirected to console also). Output to log file is not affected by this mode.
-    function setQuiet(quiet: Bool): Void;
-      // Return logging level.
-    function getLevel(): Int;
-      // Return whether log messages are timestamped.
-    function getTimeStamp(): Bool;
-      // Return last log message.
-    function getLastMessage(): String;
-      // Return whether log is in quiet mode (only errors printed to standard error stream).
-    function isQuiet(): Bool;
-      // Write to the log. If logging level is higher than the level of the message, the message is ignored.
-    function write(level: Int, message: String): Void;
-      // Write raw output to the log.
-    function writeRaw(message: String, ?error: Bool): Void;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Engine
-//----------------------------------------------------
-
-
-@:native("Atomic.Engine")
-extern class Engine extends AObject {
-
-    var minFps: Int;
-    var maxFps: Int;
-    var maxInactiveFps: Int;
-    var timeStepSmoothing: Int;
-    var pauseMinimized: Bool;
-    var autoExit: Bool;
-    var nextTimeStep: Float;
-
-      // Construct.
-    function new();
-
-      // Run one frame.
-    function runFrame(): Void;
-      // Set minimum frames per second. If FPS goes lower than this, time will appear to slow down.
-    function setMinFps(fps: Int): Void;
-      // Set maximum frames per second. The engine will sleep if FPS is higher than this.
-    function setMaxFps(fps: Int): Void;
-      // Set maximum frames per second when the application does not have input focus.
-    function setMaxInactiveFps(fps: Int): Void;
-      // Set how many frames to average for timestep smoothing. Default is 2. 1 disables smoothing.
-    function setTimeStepSmoothing(frames: Int): Void;
-      // Set whether to pause update events and audio when minimized.
-    function setPauseMinimized(enable: Bool): Void;
-      // Set whether to exit automatically on exit request (window close button.)
-    function setAutoExit(enable: Bool): Void;
-      // Override timestep of the next frame. Should be called in between RunFrame() calls.
-    function setNextTimeStep(seconds: Float): Void;
-      // Close the graphics window and set the exit flag. No-op on iOS, as an iOS application can not legally exit.
-    function exit(): Void;
-      // Dump profiling information to the log.
-    function dumpProfiler(): Void;
-      // Dump information of all resources to the log.
-    function dumpResources(?dumpFileName: Bool): Void;
-      // Dump information of all memory allocations to the log. Supported in MSVC debug mode only.
-    function dumpMemory(): Void;
-      // Get timestep of the next frame. Updated by ApplyFrameLimit().
-    function getNextTimeStep(): Float;
-      // Return the minimum frames per second.
-    function getMinFps(): Int;
-      // Return the maximum frames per second.
-    function getMaxFps(): Int;
-      // Return the maximum frames per second when the application does not have input focus.
-    function getMaxInactiveFps(): Int;
-      // Return how many frames to average for timestep smoothing.
-    function getTimeStepSmoothing(): Int;
-      // Return whether to pause update events and audio when minimized.
-    function getPauseMinimized(): Bool;
-      // Return whether to exit automatically on exit request.
-    function getAutoExit(): Bool;
-      // Return whether engine has been initialized.
-    function isInitialized(): Bool;
-      // Return whether exit has been requested.
-    function isExiting(): Bool;
-      // Return whether the engine has been created in headless mode.
-    function isHeadless(): Bool;
-      // Send frame update events.
-    function update(): Void;
-      // Render after frame update.
-    function render(): Void;
-      // Get the timestep for the next frame and sleep for frame limiting if necessary.
-    function applyFrameLimit(): Void;
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Javascript
-//----------------------------------------------------
-
-
-@:native("Atomic.JSComponent")
-extern class JSComponent extends Component {
-
-    var componentFile: JSComponentFile;
-    var updateEventMask: Dynamic;
-
-      // Construct.
-    function new();
-
-    @:overload(function(): Void{})
-    override function applyAttributes(): Void;
-    function getComponentFile(): JSComponentFile;
-      // Match script name
-    function matchScriptName(path: String): Bool;
-      // Handle enabled/disabled state change. Changes update event subscription.
-    @:overload(function(): Void{})
-    override function onSetEnabled(): Void;
-      // Set what update events should be subscribed to. Use this for optimization: by default all are in use. Note that this is not an attribute and is not saved or network-serialized, therefore it should always be called eg. in the subclass constructor.
-    function setUpdateEventMask(mask: Dynamic): Void;
-      // Return what update events are subscribed to.
-    function getUpdateEventMask(): Dynamic;
-      // Return whether the DelayedStart() function has been called.
-    function isDelayedStartCalled(): Bool;
-    function setComponentFile(cfile: JSComponentFile): Void;
-    function setDestroyed(): Void;
-    function initInstance(?hasArgs: Bool, ?argIdx: Int): Void;
-
-}
-
-@:native("Atomic.JSComponentFile")
-extern class JSComponentFile extends Resource {
-
-    var scriptClass: Bool;
-
-      // Construct.
-    function new();
-
-    function getScriptClass(): Bool;
-    function createJSComponent(): JSComponent;
-    function pushModule(): Bool;
-
-}
-
-@:native("Atomic.JSEventHelper")
-extern class JSEventHelper extends AObject {
-
-      // Construct.
-    function new(object: AObject);
-
-
-}
-
-@:native("Atomic.ScriptObject")
-extern class ScriptObject extends AObject {
-
-      // Construct.
-    function new();
-
-
-}
-
-
-
-//----------------------------------------------------
-// MODULE: Environment
-//----------------------------------------------------
-
-
-@:native("Atomic.ProcSky")
-extern class ProcSky extends Drawable {
-
-    var dayTime: Float;
-    var autoUpdate: Bool;
-    var timeOfDay: Float;
-
-    function new();
-
-    function setDayTime(time: Float): Float;
-    function getDayTime(): Float;
-    function setAutoUpdate(autoUpdate: Bool): Void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-    @:overload(function(): UpdateGeometryType{})
-    override function getUpdateGeometryType(): UpdateGeometryType;
-    function getTimeOfDay(): Float;
-
-}
-
-

+ 0 - 28
Script/Haxe/AtomicPlayer.hx

@@ -1,28 +0,0 @@
-package atomic;
-
-//Atomic Haxe Definitions
-
-extern class AtomicPlayer {
-
-
-}
-
-//----------------------------------------------------
-// MODULE: Player
-//----------------------------------------------------
-
-
-@:native("Atomic.Player")
-extern class Player extends AObject {
-
-    var currentScene: Atomic.Scene;
-
-      // Construct.
-    function new();
-
-    function loadScene(filename: String, ?camera: Atomic.Camera): Atomic.Scene;
-    function getCurrentScene(): Atomic.Scene;
-
-}
-
-

+ 0 - 150
Script/Haxe/Editor.hx

@@ -1,150 +0,0 @@
-package atomic;
-
-@:native("Atomic")
-extern enum EditMode {
-    EDIT_SELECT;
-    EDIT_MOVE;
-    EDIT_ROTATE;
-    EDIT_SCALE;
-}
-@:native("Atomic")
-extern enum AxisMode {
-    AXIS_WORLD;
-    AXIS_LOCAL;
-}
-//Atomic Haxe Definitions
-
-extern class Editor {
-
-
-    public static var FINDTEXT_FLAG_NONE: Int;
-    public static var FINDTEXT_FLAG_CASESENSITIVE: Int;
-    public static var FINDTEXT_FLAG_WHOLEWORD: Int;
-    public static var FINDTEXT_FLAG_WRAP: Int;
-    public static var FINDTEXT_FLAG_NEXT: Int;
-    public static var FINDTEXT_FLAG_PREV: Int;
-    public static var EDITOR_MODALERROR: Int;
-    public static var EDITOR_MODALINFO: Int;
-
-
-}
-
-//----------------------------------------------------
-// MODULE: Editor
-//----------------------------------------------------
-
-
-@:native("Atomic.FileUtils")
-extern class FileUtils extends AObject {
-
-      // Construct.
-    function new();
-
-    function createDirs(folder: String): Bool;
-    function openProjectFileDialog(): String;
-    function newProjectFileDialog(): String;
-    function revealInFinder(fullpath: String): Void;
-
-}
-
-@:native("Atomic.EditorMode")
-extern class EditorMode extends AObject {
-
-      // Construct.
-    function new();
-
-    function playProject(): Bool;
-
-}
-
-@:native("Atomic.PlayerMode")
-extern class PlayerMode extends AObject {
-
-      // Construct.
-    function new();
-
-    function launchedByEditor(): Bool;
-
-}
-
-@:native("Atomic.JSResourceEditor")
-extern class JSResourceEditor extends ResourceEditor {
-
-    function new(fullpath: String, container: Atomic.UITabContainer);
-
-    @:overload(function(findText: String, flags: Int): Bool{})
-    override function findText(text: String, flags: Int): Bool;
-    @:overload(function(): Void{})
-    override function findTextClose(): Void;
-    function gotoTokenPos(tokenPos: Int): Void;
-    function gotoLineNumber(lineNumber: Int): Void;
-    function formatCode(): Void;
-    @:overload(function(): Void{})
-    override function setFocus(): Void;
-    @:overload(function(): Bool{})
-    override function hasUnsavedModifications(): Bool;
-    @:overload(function(): Bool{})
-    override function save(): Bool;
-
-}
-
-@:native("Atomic.ResourceEditor")
-extern class ResourceEditor extends AObject {
-
-    var button: Atomic.UIButton;
-    var fullPath: String;
-    var rootContentWidget: Atomic.UIWidget;
-
-    function new(fullpath: String, container: Atomic.UITabContainer);
-
-    function getButton(): Atomic.UIButton;
-    function hasUnsavedModifications(): Bool;
-    function setFocus(): Void;
-    function close(?navigateToAvailableResource: Bool): Void;
-    function findText(text: String, flags: Int): Bool;
-    function findTextClose(): Void;
-    function requiresInspector(): Bool;
-    function getFullPath(): String;
-    function save(): Bool;
-    function getRootContentWidget(): Atomic.UIWidget;
-
-}
-
-@:native("Atomic.SceneEditor3D")
-extern class SceneEditor3D extends ResourceEditor {
-
-    var scene: Atomic.Scene;
-
-    function new(fullpath: String, container: Atomic.UITabContainer);
-
-    function selectNode(node: Atomic.Node): Void;
-    function getScene(): Atomic.Scene;
-    @:overload(function(): Void{})
-    override function setFocus(): Void;
-    @:overload(function(): Bool{})
-    override function requiresInspector(): Bool;
-    @:overload(function(?navigateToAvailableResource: Bool): Void{})
-    override function close(?navigateToAvailableResource: Bool): Void;
-    @:overload(function(): Bool{})
-    override function save(): Bool;
-
-}
-
-@:native("Atomic.SceneView3D")
-extern class SceneView3D extends UISceneView {
-
-    var pitch: Float;
-    var yaw: Float;
-
-    function new(sceneEditor: SceneEditor3D);
-
-    function selectNode(node: Atomic.Node): Void;
-    function setPitch(pitch: Float): Void;
-    function setYaw(yaw: Float): Void;
-    function enable(): Void;
-    function disable(): Void;
-    function isEnabled(): Bool;
-
-}
-
-

+ 0 - 477
Script/Haxe/ToolCore.hx

@@ -1,477 +0,0 @@
-package atomic;
-
-@:native("Atomic")
-extern enum PlatformID {
-    PLATFORMID_UNDEFINED;
-    PLATFORMID_WINDOWS;
-    PLATFORMID_MAC;
-    PLATFORMID_ANDROID;
-    PLATFORMID_IOS;
-    PLATFORMID_WEB;
-}
-//Atomic Haxe Definitions
-
-extern class ToolCore {
-
-
-    public static var PROJECTFILE_VERSION: Int;
-
-
-}
-
-//----------------------------------------------------
-// MODULE: ToolCore
-//----------------------------------------------------
-
-
-@:native("Atomic.ToolEnvironment")
-extern class ToolEnvironment extends AObject {
-
-    var rootSourceDir: String;
-    var rootBuildDir: String;
-    var editorBinary: String;
-    var playerBinary: String;
-    var toolBinary: String;
-    var coreDataDir: String;
-    var playerDataDir: String;
-    var editorDataDir: String;
-    var deploymentDataDir: String;
-    var projectTemplatesDir: String;
-    var examplesDir: String;
-    var devConfigFilename: String;
-
-    function new();
-
-    function initFromPackage(): Bool;
-    function initFromJSON(?atomicTool: Bool): Bool;
-      // Root source and build directories for development source tree builds
-    function setRootSourceDir(sourceDir: String): Void;
-    function setRootBuildDir(buildDir: String, ?setBinaryPaths: Bool): Void;
-    function getRootSourceDir(): String;
-    function getRootBuildDir(): String;
-      // Binaries
-    function getEditorBinary(): String;
-    function getPlayerBinary(): String;
-    function getToolBinary(): String;
-      // Resource directories
-    function getCoreDataDir(): String;
-    function getPlayerDataDir(): String;
-    function getEditorDataDir(): String;
-      // Data directories
-    function getDeploymentDataDir(): String;
-    function getProjectTemplatesDir(): String;
-    function getExamplesDir(): String;
-    function getDevConfigFilename(): String;
-    function dump(): Void;
-
-}
-
-@:native("Atomic.ToolSystem")
-extern class ToolSystem extends AObject {
-
-    var project: Project;
-    var dataPath: String;
-    var currentPlatform: Platform;
-
-    function new();
-
-    function loadProject(fullpath: String): Bool;
-    function getProject(): Project;
-    function closeProject(): Void;
-    function getDataPath(): String;
-    function setDataPath(path: String): Void;
-    function registerPlatform(platform: Platform): Void;
-    function getPlatformByID(platform: PlatformID): Platform;
-    function getPlatformByName(name: String): Platform;
-    function setCurrentPlatform(platform: PlatformID): Void;
-    function getCurrentPlatform(): Platform;
-    function setCLI(): Void;
-    function isCLI(): Bool;
-
-}
-
-@:native("Atomic.Project")
-extern class Project extends AObject {
-
-    var resourcePath: String;
-    var componentsPath: String;
-    var scriptsPath: String;
-    var modulesPath: String;
-    var projectPath: String;
-    var projectFilePath: String;
-    var userPrefsFullPath: String;
-    var buildSettingsFullPath: String;
-    var version: String;
-
-      // Construct.
-    function new();
-
-    function load(fullpath: String): Bool;
-    function save(fullpath: String): Void;
-      // Paths
-    function getResourcePath(): String;
-    function setResourcePath(resourcePath: String): Void;
-    function getComponentsPath(): String;
-    function getScriptsPath(): String;
-    function getModulesPath(): String;
-    function isComponentsDirOrFile(fullPath: String): Bool;
-    function isScriptsDirOrFile(fullPath: String): Bool;
-    function isModulesDirOrFile(fullPath: String): Bool;
-    function addPlatform(platformID: PlatformID): Void;
-    function containsPlatform(platformID: PlatformID): Bool;
-    function removePlatform(platformID: PlatformID): Void;
-    function isDirty(): Bool;
-    function setDirty(): Void;
-    function getProjectPath(): String;
-    function getProjectFilePath(): String;
-    function getUserPrefsFullPath(): String;
-    function getBuildSettingsFullPath(): String;
-    function getVersion(): String;
-    function setVersion(version: String): Void;
-    function saveBuildSettings(): Void;
-    function loadBuildSettings(): Bool;
-    function saveUserPrefs(): Void;
-    function loadUserPrefs(): Bool;
-
-}
-
-@:native("Atomic.ProjectFile")
-extern class ProjectFile extends AObject {
-
-      // Construct.
-    function new();
-
-    function save(project: Project): Void;
-    function load(project: Project): Bool;
-    function writeNewProject(fullpath: String): Void;
-
-}
-
-@:native("Atomic.Platform")
-extern class Platform extends AObject {
-
-    var name: String;
-    var platformID: PlatformID;
-
-    function new();
-
-    function getName(): String;
-    function getPlatformID(): PlatformID;
-
-}
-
-@:native("Atomic.PlatformMac")
-extern class PlatformMac extends Platform {
-
-
-    function new();
-
-    @:overload(function(): String{})
-    override function getName(): String;
-    @:overload(function(): PlatformID{})
-    override function getPlatformID(): PlatformID;
-
-}
-
-@:native("Atomic.PlatformWeb")
-extern class PlatformWeb extends Platform {
-
-
-    function new();
-
-    @:overload(function(): String{})
-    override function getName(): String;
-    @:overload(function(): PlatformID{})
-    override function getPlatformID(): PlatformID;
-
-}
-
-@:native("Atomic.PlatformWindows")
-extern class PlatformWindows extends Platform {
-
-
-    function new();
-
-    @:overload(function(): String{})
-    override function getName(): String;
-    @:overload(function(): PlatformID{})
-    override function getPlatformID(): PlatformID;
-
-}
-
-@:native("Atomic.Command")
-extern class Command extends AObject {
-
-    function new();
-
-    function parse(command: String): Bool;
-    function run(): Void;
-    function finished(): Void;
-    function error(errorMsg: String): Void;
-    function cancel(): Void;
-    function requiresProjectLoad(): Bool;
-    function requiresLicenseValidation(): Bool;
-
-}
-
-@:native("Atomic.PlayCmd")
-extern class PlayCmd extends Command {
-
-    function new();
-
-    @:overload(function(): Void{})
-    override function run(): Void;
-
-}
-
-@:native("Atomic.OpenAssetImporter")
-extern class OpenAssetImporter extends AObject {
-
-    var errorMessage: String;
-    var importNode: Atomic.Node;
-    var startTime: Float;
-    var endTime: Float;
-    var scale: Float;
-    var exportAnimations: Bool;
-    var verboseLog: Bool;
-
-    function new();
-
-    function load(assetPath: String): Bool;
-    function getErrorMessage(): String;
-    function exportModel(outName: String, ?animName: String, ?animationOnly: Bool): Bool;
-    function setImportNode(node: Atomic.Node): Void;
-    function setStartTime(startTime: Float): Void;
-    function setEndTime(endTime: Float): Void;
-    function setScale(scale: Float): Void;
-    function setExportAnimations(exportAnimations: Bool): Void;
-    function setVerboseLog(verboseLog: Bool): Void;
-
-}
-
-@:native("Atomic.Asset")
-extern class Asset extends AObject {
-
-    var guid: String;
-    var name: String;
-    var path: String;
-    var extension: String;
-    var relativePath: String;
-    var cachePath: String;
-    var resource: Atomic.Resource;
-    var importerType: String;
-    var importerTypeName: String;
-    var importer: AssetImporter;
-    var parent: Asset;
-    var dirty: Bool;
-    var fileTimestamp: Int;
-    var dotAssetFilename: String;
-
-      // Construct.
-    function new();
-
-    function import(): Bool;
-    function preload(): Bool;
-    function setPath(path: String): Bool;
-    function getGUID(): String;
-    function getName(): String;
-    function getPath(): String;
-    function getExtension(): String;
-      // Get the path relative to project
-    function getRelativePath(): String;
-    function getCachePath(): String;
-    function getResource(): Atomic.Resource;
-    function getImporterType(): String;
-    function getImporterTypeName(): String;
-    function getImporter(): AssetImporter;
-    function postImportError(message: String): Void;
-    function getParent(): Asset;
-    function setDirty(dirty: Bool): Void;
-    function isDirty(): Bool;
-      // Get the last timestamp as seen by the AssetDatabase
-    function getFileTimestamp(): Int;
-      // Sets the time stamp to the asset files current time
-    function updateFileTimestamp(): Void;
-    function getDotAssetFilename(): String;
-    function isFolder(): Bool;
-    function load(): Bool;
-    function save(): Bool;
-
-}
-
-@:native("Atomic.AssetDatabase")
-extern class AssetDatabase extends AObject {
-
-    var cachePath: String;
-
-      // Construct.
-    function new();
-
-    function getAssetByGUID(guid: String): Asset;
-    function getAssetByPath(path: String): Asset;
-    function getAssetByCachePath(cachePath: String): Asset;
-    function generateAssetGUID(): String;
-    function registerGUID(guid: String): Void;
-    function getCachePath(): String;
-    function deleteAsset(asset: Asset): Void;
-    function scan(): Void;
-    function getResourceImporterName(resourceTypeName: String): String;
-    function getDotAssetFilename(path: String): String;
-
-}
-
-@:native("Atomic.AssetImporter")
-extern class AssetImporter extends AObject {
-
-    var asset: Asset;
-    var resource: Atomic.Resource;
-
-      // Construct.
-    function new(asset: Asset);
-
-    function setDefaults(): Void;
-    function preload(): Bool;
-    function getAsset(): Asset;
-    function getResource(): Atomic.Resource;
-    function requiresCacheFile(): Bool;
-
-}
-
-@:native("Atomic.AudioImporter")
-extern class AudioImporter extends AssetImporter {
-
-      // Construct.
-    function new(asset: Asset);
-
-    @:overload(function(): Void{})
-    override function setDefaults(): Void;
-
-}
-
-@:native("Atomic.JavascriptImporter")
-extern class JavascriptImporter extends AssetImporter {
-
-
-      // Construct.
-    function new(asset: Asset);
-
-    @:overload(function(): Void{})
-    override function setDefaults(): Void;
-    function isComponentFile(): Bool;
-    @:overload(function(): Atomic.Resource{})
-    override function getResource(): Atomic.Resource;
-
-}
-
-@:native("Atomic.MaterialImporter")
-extern class MaterialImporter extends AssetImporter {
-
-      // Construct.
-    function new(asset: Asset);
-
-    @:overload(function(): Void{})
-    override function setDefaults(): Void;
-    function saveMaterial(): Void;
-
-}
-
-@:native("Atomic.AnimationImportInfo")
-extern class AnimationImportInfo extends AObject {
-
-    var name: String;
-    var startTime: Float;
-    var endTime: Float;
-
-    function new();
-
-    function getName(): String;
-    function getStartTime(): Float;
-    function getEndTime(): Float;
-    function setName(name: String): Void;
-    function setStartTime(time: Float): Void;
-    function setEndTime(time: Float): Void;
-
-}
-
-@:native("Atomic.ModelImporter")
-extern class ModelImporter extends AssetImporter {
-
-    var scale: Float;
-    var importAnimations: Bool;
-    var animationCount: Int;
-
-      // Construct.
-    function new(asset: Asset);
-
-    @:overload(function(): Void{})
-    override function setDefaults(): Void;
-    function getScale(): Float;
-    function setScale(scale: Float): Void;
-    function getImportAnimations(): Bool;
-    function setImportAnimations(importAnimations: Bool): Void;
-    function getAnimationCount(): Int;
-    function setAnimationCount(count: Int): Void;
-    @:overload(function(): Atomic.Resource{})
-    override function getResource(): Atomic.Resource;
-    function getAnimationInfo(index: Int): AnimationImportInfo;
-
-}
-
-@:native("Atomic.PrefabImporter")
-extern class PrefabImporter extends AssetImporter {
-
-      // Construct.
-    function new(asset: Asset);
-
-    @:overload(function(): Void{})
-    override function setDefaults(): Void;
-    @:overload(function(): Bool{})
-    override function preload(): Bool;
-
-}
-
-@:native("Atomic.TextureImporter")
-extern class TextureImporter extends AssetImporter {
-
-      // Construct.
-    function new(asset: Asset);
-
-    @:overload(function(): Void{})
-    override function setDefaults(): Void;
-
-}
-
-@:native("Atomic.LicenseSystem")
-extern class LicenseSystem extends AObject {
-
-    var key: String;
-    var email: String;
-
-      // Construct.
-    function new();
-
-    function initialize(): Void;
-    function licenseWindows(): Bool;
-    function licenseMac(): Bool;
-    function licenseAndroid(): Bool;
-    function licenseIOS(): Bool;
-    function licenseHTML5(): Bool;
-    function licenseModule3D(): Bool;
-      // Returns whether there are any platform licenses available
-    function isStandardLicense(): Bool;
-      // Returns true if request to deactivate is made
-    function deactivate(): Bool;
-    function resetLicense(): Void;
-    function loadLicense(): Bool;
-      // Basic key validation
-    function validateKey(key: String): Bool;
-      // Activate on server
-    function requestServerActivation(key: String): Void;
-    function getKey(): String;
-    function generateMachineID(): String;
-    function getEmail(): String;
-    function licenseAgreementConfirmed(): Void;
-
-}
-
-

+ 0 - 8102
Script/TypeScript/Atomic.d.ts

@@ -1,8102 +0,0 @@
-//Atomic TypeScript Definitions
-
-
-declare module Atomic {
-
-
-   // enum FrustumPlane
-   export type FrustumPlane = number;
-   export var PLANE_NEAR: FrustumPlane;
-   export var PLANE_LEFT: FrustumPlane;
-   export var PLANE_RIGHT: FrustumPlane;
-   export var PLANE_UP: FrustumPlane;
-   export var PLANE_DOWN: FrustumPlane;
-   export var PLANE_FAR: FrustumPlane;
-
-
-   // enum Intersection
-   export type Intersection = number;
-   export var OUTSIDE: Intersection;
-   export var INTERSECTS: Intersection;
-   export var INSIDE: Intersection;
-
-
-   // enum InterpolationMode
-   export type InterpolationMode = number;
-   export var BEZIER_CURVE: InterpolationMode;
-
-
-   // enum VariantType
-   export type VariantType = number;
-   export var VAR_NONE: VariantType;
-   export var VAR_INT: VariantType;
-   export var VAR_BOOL: VariantType;
-   export var VAR_FLOAT: VariantType;
-   export var VAR_VECTOR2: VariantType;
-   export var VAR_VECTOR3: VariantType;
-   export var VAR_VECTOR4: VariantType;
-   export var VAR_QUATERNION: VariantType;
-   export var VAR_COLOR: VariantType;
-   export var VAR_STRING: VariantType;
-   export var VAR_BUFFER: VariantType;
-   export var VAR_VOIDPTR: VariantType;
-   export var VAR_RESOURCEREF: VariantType;
-   export var VAR_RESOURCEREFLIST: VariantType;
-   export var VAR_VARIANTVECTOR: VariantType;
-   export var VAR_VARIANTMAP: VariantType;
-   export var VAR_INTRECT: VariantType;
-   export var VAR_INTVECTOR2: VariantType;
-   export var VAR_PTR: VariantType;
-   export var VAR_MATRIX3: VariantType;
-   export var VAR_MATRIX3X4: VariantType;
-   export var VAR_MATRIX4: VariantType;
-   export var VAR_DOUBLE: VariantType;
-   export var MAX_VAR_TYPES: VariantType;
-
-
-   // enum WrapMode
-   export type WrapMode = number;
-   export var WM_LOOP: WrapMode;
-   export var WM_ONCE: WrapMode;
-   export var WM_CLAMP: WrapMode;
-
-
-   // enum CreateMode
-   export type CreateMode = number;
-   export var REPLICATED: CreateMode;
-   export var LOCAL: CreateMode;
-
-
-   // enum TransformSpace
-   export type TransformSpace = number;
-   export var TS_LOCAL: TransformSpace;
-   export var TS_PARENT: TransformSpace;
-   export var TS_WORLD: TransformSpace;
-
-
-   // enum LoadMode
-   export type LoadMode = number;
-   export var LOAD_RESOURCES_ONLY: LoadMode;
-   export var LOAD_SCENE: LoadMode;
-   export var LOAD_SCENE_AND_RESOURCES: LoadMode;
-
-
-   // enum InterpMethod
-   export type InterpMethod = number;
-   export var IM_LINEAR: InterpMethod;
-   export var IM_SPLINE: InterpMethod;
-
-
-   // enum UpdateGeometryType
-   export type UpdateGeometryType = number;
-   export var UPDATE_NONE: UpdateGeometryType;
-   export var UPDATE_MAIN_THREAD: UpdateGeometryType;
-   export var UPDATE_WORKER_THREAD: UpdateGeometryType;
-
-
-   // enum PrimitiveType
-   export type PrimitiveType = number;
-   export var TRIANGLE_LIST: PrimitiveType;
-   export var LINE_LIST: PrimitiveType;
-   export var POINT_LIST: PrimitiveType;
-   export var TRIANGLE_STRIP: PrimitiveType;
-   export var LINE_STRIP: PrimitiveType;
-   export var TRIANGLE_FAN: PrimitiveType;
-
-
-   // enum GeometryType
-   export type GeometryType = number;
-   export var GEOM_STATIC: GeometryType;
-   export var GEOM_SKINNED: GeometryType;
-   export var GEOM_INSTANCED: GeometryType;
-   export var GEOM_BILLBOARD: GeometryType;
-   export var GEOM_STATIC_NOINSTANCING: GeometryType;
-   export var MAX_GEOMETRYTYPES: GeometryType;
-
-
-   // enum BlendMode
-   export type BlendMode = number;
-   export var BLEND_REPLACE: BlendMode;
-   export var BLEND_ADD: BlendMode;
-   export var BLEND_MULTIPLY: BlendMode;
-   export var BLEND_ALPHA: BlendMode;
-   export var BLEND_ADDALPHA: BlendMode;
-   export var BLEND_PREMULALPHA: BlendMode;
-   export var BLEND_INVDESTALPHA: BlendMode;
-   export var BLEND_SUBTRACT: BlendMode;
-   export var BLEND_SUBTRACTALPHA: BlendMode;
-   export var MAX_BLENDMODES: BlendMode;
-
-
-   // enum CompareMode
-   export type CompareMode = number;
-   export var CMP_ALWAYS: CompareMode;
-   export var CMP_EQUAL: CompareMode;
-   export var CMP_NOTEQUAL: CompareMode;
-   export var CMP_LESS: CompareMode;
-   export var CMP_LESSEQUAL: CompareMode;
-   export var CMP_GREATER: CompareMode;
-   export var CMP_GREATEREQUAL: CompareMode;
-   export var MAX_COMPAREMODES: CompareMode;
-
-
-   // enum CullMode
-   export type CullMode = number;
-   export var CULL_NONE: CullMode;
-   export var CULL_CCW: CullMode;
-   export var CULL_CW: CullMode;
-   export var MAX_CULLMODES: CullMode;
-
-
-   // enum FillMode
-   export type FillMode = number;
-   export var FILL_SOLID: FillMode;
-   export var FILL_WIREFRAME: FillMode;
-   export var FILL_POINT: FillMode;
-
-
-   // enum StencilOp
-   export type StencilOp = number;
-   export var OP_KEEP: StencilOp;
-   export var OP_ZERO: StencilOp;
-   export var OP_REF: StencilOp;
-   export var OP_INCR: StencilOp;
-   export var OP_DECR: StencilOp;
-
-
-   // enum LockState
-   export type LockState = number;
-   export var LOCK_NONE: LockState;
-   export var LOCK_HARDWARE: LockState;
-   export var LOCK_SHADOW: LockState;
-   export var LOCK_SCRATCH: LockState;
-
-
-   // enum VertexElement
-   export type VertexElement = number;
-   export var ELEMENT_POSITION: VertexElement;
-   export var ELEMENT_NORMAL: VertexElement;
-   export var ELEMENT_COLOR: VertexElement;
-   export var ELEMENT_TEXCOORD1: VertexElement;
-   export var ELEMENT_TEXCOORD2: VertexElement;
-   export var ELEMENT_CUBETEXCOORD1: VertexElement;
-   export var ELEMENT_CUBETEXCOORD2: VertexElement;
-   export var ELEMENT_TANGENT: VertexElement;
-   export var ELEMENT_BLENDWEIGHTS: VertexElement;
-   export var ELEMENT_BLENDINDICES: VertexElement;
-   export var ELEMENT_INSTANCEMATRIX1: VertexElement;
-   export var ELEMENT_INSTANCEMATRIX2: VertexElement;
-   export var ELEMENT_INSTANCEMATRIX3: VertexElement;
-   export var MAX_VERTEX_ELEMENTS: VertexElement;
-
-
-   // enum TextureFilterMode
-   export type TextureFilterMode = number;
-   export var FILTER_NEAREST: TextureFilterMode;
-   export var FILTER_BILINEAR: TextureFilterMode;
-   export var FILTER_TRILINEAR: TextureFilterMode;
-   export var FILTER_ANISOTROPIC: TextureFilterMode;
-   export var FILTER_DEFAULT: TextureFilterMode;
-   export var MAX_FILTERMODES: TextureFilterMode;
-
-
-   // enum TextureAddressMode
-   export type TextureAddressMode = number;
-   export var ADDRESS_WRAP: TextureAddressMode;
-   export var ADDRESS_MIRROR: TextureAddressMode;
-   export var ADDRESS_CLAMP: TextureAddressMode;
-   export var ADDRESS_BORDER: TextureAddressMode;
-   export var MAX_ADDRESSMODES: TextureAddressMode;
-
-
-   // enum TextureCoordinate
-   export type TextureCoordinate = number;
-   export var COORD_U: TextureCoordinate;
-   export var COORD_V: TextureCoordinate;
-   export var COORD_W: TextureCoordinate;
-   export var MAX_COORDS: TextureCoordinate;
-
-
-   // enum TextureUsage
-   export type TextureUsage = number;
-   export var TEXTURE_STATIC: TextureUsage;
-   export var TEXTURE_DYNAMIC: TextureUsage;
-   export var TEXTURE_RENDERTARGET: TextureUsage;
-   export var TEXTURE_DEPTHSTENCIL: TextureUsage;
-
-
-   // enum CubeMapFace
-   export type CubeMapFace = number;
-   export var FACE_POSITIVE_X: CubeMapFace;
-   export var FACE_NEGATIVE_X: CubeMapFace;
-   export var FACE_POSITIVE_Y: CubeMapFace;
-   export var FACE_NEGATIVE_Y: CubeMapFace;
-   export var FACE_POSITIVE_Z: CubeMapFace;
-   export var FACE_NEGATIVE_Z: CubeMapFace;
-   export var MAX_CUBEMAP_FACES: CubeMapFace;
-
-
-   // enum CubeMapLayout
-   export type CubeMapLayout = number;
-   export var CML_HORIZONTAL: CubeMapLayout;
-   export var CML_HORIZONTALNVIDIA: CubeMapLayout;
-   export var CML_HORIZONTALCROSS: CubeMapLayout;
-   export var CML_VERTICALCROSS: CubeMapLayout;
-   export var CML_BLENDER: CubeMapLayout;
-
-
-   // enum RenderSurfaceUpdateMode
-   export type RenderSurfaceUpdateMode = number;
-   export var SURFACE_MANUALUPDATE: RenderSurfaceUpdateMode;
-   export var SURFACE_UPDATEVISIBLE: RenderSurfaceUpdateMode;
-   export var SURFACE_UPDATEALWAYS: RenderSurfaceUpdateMode;
-
-
-   // enum ShaderType
-   export type ShaderType = number;
-   export var VS: ShaderType;
-   export var PS: ShaderType;
-
-
-   // enum ShaderParameterGroup
-   export type ShaderParameterGroup = number;
-   export var SP_FRAME: ShaderParameterGroup;
-   export var SP_CAMERA: ShaderParameterGroup;
-   export var SP_ZONE: ShaderParameterGroup;
-   export var SP_LIGHT: ShaderParameterGroup;
-   export var SP_MATERIAL: ShaderParameterGroup;
-   export var SP_OBJECT: ShaderParameterGroup;
-   export var SP_CUSTOM: ShaderParameterGroup;
-   export var MAX_SHADER_PARAMETER_GROUPS: ShaderParameterGroup;
-
-
-   // enum TextureUnit
-   export type TextureUnit = number;
-   export var TU_DIFFUSE: TextureUnit;
-   export var TU_ALBEDOBUFFER: TextureUnit;
-   export var TU_NORMAL: TextureUnit;
-   export var TU_NORMALBUFFER: TextureUnit;
-   export var TU_SPECULAR: TextureUnit;
-   export var TU_EMISSIVE: TextureUnit;
-   export var TU_ENVIRONMENT: TextureUnit;
-   export var TU_VOLUMEMAP: TextureUnit;
-   export var TU_CUSTOM1: TextureUnit;
-   export var TU_CUSTOM2: TextureUnit;
-   export var TU_LIGHTRAMP: TextureUnit;
-   export var TU_LIGHTSHAPE: TextureUnit;
-   export var TU_SHADOWMAP: TextureUnit;
-   export var TU_FACESELECT: TextureUnit;
-   export var TU_INDIRECTION: TextureUnit;
-   export var TU_DEPTHBUFFER: TextureUnit;
-   export var TU_LIGHTBUFFER: TextureUnit;
-   export var TU_ZONE: TextureUnit;
-   export var MAX_MATERIAL_TEXTURE_UNITS: TextureUnit;
-   export var MAX_TEXTURE_UNITS: TextureUnit;
-
-
-   // enum FaceCameraMode
-   export type FaceCameraMode = number;
-   export var FC_NONE: FaceCameraMode;
-   export var FC_ROTATE_XYZ: FaceCameraMode;
-   export var FC_ROTATE_Y: FaceCameraMode;
-   export var FC_LOOKAT_XYZ: FaceCameraMode;
-   export var FC_LOOKAT_Y: FaceCameraMode;
-
-
-   // enum LightType
-   export type LightType = number;
-   export var LIGHT_DIRECTIONAL: LightType;
-   export var LIGHT_SPOT: LightType;
-   export var LIGHT_POINT: LightType;
-
-
-   // enum RayQueryLevel
-   export type RayQueryLevel = number;
-   export var RAY_AABB: RayQueryLevel;
-   export var RAY_OBB: RayQueryLevel;
-   export var RAY_TRIANGLE: RayQueryLevel;
-   export var RAY_TRIANGLE_UV: RayQueryLevel;
-
-
-   // enum LightVSVariation
-   export type LightVSVariation = number;
-   export var LVS_DIR: LightVSVariation;
-   export var LVS_SPOT: LightVSVariation;
-   export var LVS_POINT: LightVSVariation;
-   export var LVS_SHADOW: LightVSVariation;
-   export var LVS_SPOTSHADOW: LightVSVariation;
-   export var LVS_POINTSHADOW: LightVSVariation;
-   export var MAX_LIGHT_VS_VARIATIONS: LightVSVariation;
-
-
-   // enum VertexLightVSVariation
-   export type VertexLightVSVariation = number;
-   export var VLVS_NOLIGHTS: VertexLightVSVariation;
-   export var VLVS_1LIGHT: VertexLightVSVariation;
-   export var VLVS_2LIGHTS: VertexLightVSVariation;
-   export var VLVS_3LIGHTS: VertexLightVSVariation;
-   export var VLVS_4LIGHTS: VertexLightVSVariation;
-   export var MAX_VERTEXLIGHT_VS_VARIATIONS: VertexLightVSVariation;
-
-
-   // enum LightPSVariation
-   export type LightPSVariation = number;
-   export var LPS_NONE: LightPSVariation;
-   export var LPS_SPOT: LightPSVariation;
-   export var LPS_POINT: LightPSVariation;
-   export var LPS_POINTMASK: LightPSVariation;
-   export var LPS_SPEC: LightPSVariation;
-   export var LPS_SPOTSPEC: LightPSVariation;
-   export var LPS_POINTSPEC: LightPSVariation;
-   export var LPS_POINTMASKSPEC: LightPSVariation;
-   export var LPS_SHADOW: LightPSVariation;
-   export var LPS_SPOTSHADOW: LightPSVariation;
-   export var LPS_POINTSHADOW: LightPSVariation;
-   export var LPS_POINTMASKSHADOW: LightPSVariation;
-   export var LPS_SHADOWSPEC: LightPSVariation;
-   export var LPS_SPOTSHADOWSPEC: LightPSVariation;
-   export var LPS_POINTSHADOWSPEC: LightPSVariation;
-   export var LPS_POINTMASKSHADOWSPEC: LightPSVariation;
-   export var MAX_LIGHT_PS_VARIATIONS: LightPSVariation;
-
-
-   // enum DeferredLightVSVariation
-   export type DeferredLightVSVariation = number;
-   export var DLVS_NONE: DeferredLightVSVariation;
-   export var DLVS_DIR: DeferredLightVSVariation;
-   export var DLVS_ORTHO: DeferredLightVSVariation;
-   export var DLVS_ORTHODIR: DeferredLightVSVariation;
-   export var MAX_DEFERRED_LIGHT_VS_VARIATIONS: DeferredLightVSVariation;
-
-
-   // enum DeferredLightPSVariation
-   export type DeferredLightPSVariation = number;
-   export var DLPS_NONE: DeferredLightPSVariation;
-   export var DLPS_SPOT: DeferredLightPSVariation;
-   export var DLPS_POINT: DeferredLightPSVariation;
-   export var DLPS_POINTMASK: DeferredLightPSVariation;
-   export var DLPS_SPEC: DeferredLightPSVariation;
-   export var DLPS_SPOTSPEC: DeferredLightPSVariation;
-   export var DLPS_POINTSPEC: DeferredLightPSVariation;
-   export var DLPS_POINTMASKSPEC: DeferredLightPSVariation;
-   export var DLPS_SHADOW: DeferredLightPSVariation;
-   export var DLPS_SPOTSHADOW: DeferredLightPSVariation;
-   export var DLPS_POINTSHADOW: DeferredLightPSVariation;
-   export var DLPS_POINTMASKSHADOW: DeferredLightPSVariation;
-   export var DLPS_SHADOWSPEC: DeferredLightPSVariation;
-   export var DLPS_SPOTSHADOWSPEC: DeferredLightPSVariation;
-   export var DLPS_POINTSHADOWSPEC: DeferredLightPSVariation;
-   export var DLPS_POINTMASKSHADOWSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHO: DeferredLightPSVariation;
-   export var DLPS_ORTHOSPOT: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINT: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINTMASK: DeferredLightPSVariation;
-   export var DLPS_ORTHOSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHOSPOTSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINTSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINTMASKSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHOSHADOW: DeferredLightPSVariation;
-   export var DLPS_ORTHOSPOTSHADOW: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINTSHADOW: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINTMASKSHADOW: DeferredLightPSVariation;
-   export var DLPS_ORTHOSHADOWSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHOSPOTSHADOWSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINTSHADOWSPEC: DeferredLightPSVariation;
-   export var DLPS_ORTHOPOINTMASKSHADOWSPEC: DeferredLightPSVariation;
-   export var MAX_DEFERRED_LIGHT_PS_VARIATIONS: DeferredLightPSVariation;
-
-
-   // enum RenderCommandType
-   export type RenderCommandType = number;
-   export var CMD_NONE: RenderCommandType;
-   export var CMD_CLEAR: RenderCommandType;
-   export var CMD_SCENEPASS: RenderCommandType;
-   export var CMD_QUAD: RenderCommandType;
-   export var CMD_FORWARDLIGHTS: RenderCommandType;
-   export var CMD_LIGHTVOLUMES: RenderCommandType;
-   export var CMD_RENDERUI: RenderCommandType;
-
-
-   // enum RenderCommandSortMode
-   export type RenderCommandSortMode = number;
-   export var SORT_FRONTTOBACK: RenderCommandSortMode;
-   export var SORT_BACKTOFRONT: RenderCommandSortMode;
-
-
-   // enum RenderTargetSizeMode
-   export type RenderTargetSizeMode = number;
-   export var SIZE_ABSOLUTE: RenderTargetSizeMode;
-   export var SIZE_VIEWPORTDIVISOR: RenderTargetSizeMode;
-   export var SIZE_VIEWPORTMULTIPLIER: RenderTargetSizeMode;
-
-
-   // enum PassLightingMode
-   export type PassLightingMode = number;
-   export var LIGHTING_UNLIT: PassLightingMode;
-   export var LIGHTING_PERVERTEX: PassLightingMode;
-   export var LIGHTING_PERPIXEL: PassLightingMode;
-
-
-   // enum EmitterType
-   export type EmitterType = number;
-   export var EMITTER_SPHERE: EmitterType;
-   export var EMITTER_BOX: EmitterType;
-
-
-   // enum LoopMode2D
-   export type LoopMode2D = number;
-   export var LM_DEFAULT: LoopMode2D;
-   export var LM_FORCE_LOOPED: LoopMode2D;
-   export var LM_FORCE_CLAMPED: LoopMode2D;
-
-
-   // enum LightType2D
-   export type LightType2D = number;
-   export var LIGHT2D_DIRECTIONAL: LightType2D;
-   export var LIGHT2D_POINT: LightType2D;
-
-
-   // enum EmitterType2D
-   export type EmitterType2D = number;
-   export var EMITTER_TYPE_GRAVITY: EmitterType2D;
-   export var EMITTER_TYPE_RADIAL: EmitterType2D;
-
-
-   // enum BodyType2D
-   export type BodyType2D = number;
-   export var BT_STATIC: BodyType2D;
-   export var BT_DYNAMIC: BodyType2D;
-   export var BT_KINEMATIC: BodyType2D;
-
-
-   // enum Orientation2D
-   export type Orientation2D = number;
-   export var O_ORTHOGONAL: Orientation2D;
-   export var O_ISOMETRIC: Orientation2D;
-   export var O_STAGGERED: Orientation2D;
-
-
-   // enum TileMapLayerType2D
-   export type TileMapLayerType2D = number;
-   export var LT_TILE_LAYER: TileMapLayerType2D;
-   export var LT_OBJECT_GROUP: TileMapLayerType2D;
-   export var LT_IMAGE_LAYER: TileMapLayerType2D;
-   export var LT_INVALID: TileMapLayerType2D;
-
-
-   // enum TileMapObjectType2D
-   export type TileMapObjectType2D = number;
-   export var OT_RECTANGLE: TileMapObjectType2D;
-   export var OT_ELLIPSE: TileMapObjectType2D;
-   export var OT_POLYGON: TileMapObjectType2D;
-   export var OT_POLYLINE: TileMapObjectType2D;
-   export var OT_TILE: TileMapObjectType2D;
-   export var OT_INVALID: TileMapObjectType2D;
-
-
-   // enum ShapeType
-   export type ShapeType = number;
-   export var SHAPE_BOX: ShapeType;
-   export var SHAPE_SPHERE: ShapeType;
-   export var SHAPE_STATICPLANE: ShapeType;
-   export var SHAPE_CYLINDER: ShapeType;
-   export var SHAPE_CAPSULE: ShapeType;
-   export var SHAPE_CONE: ShapeType;
-   export var SHAPE_TRIANGLEMESH: ShapeType;
-   export var SHAPE_CONVEXHULL: ShapeType;
-   export var SHAPE_TERRAIN: ShapeType;
-
-
-   // enum ConstraintType
-   export type ConstraintType = number;
-   export var CONSTRAINT_POINT: ConstraintType;
-   export var CONSTRAINT_HINGE: ConstraintType;
-   export var CONSTRAINT_SLIDER: ConstraintType;
-   export var CONSTRAINT_CONETWIST: ConstraintType;
-
-
-   // enum CollisionEventMode
-   export type CollisionEventMode = number;
-   export var COLLISION_NEVER: CollisionEventMode;
-   export var COLLISION_ACTIVE: CollisionEventMode;
-   export var COLLISION_ALWAYS: CollisionEventMode;
-
-
-   // enum CrowdTargetState
-   export type CrowdTargetState = number;
-   export var CROWD_AGENT_TARGET_NONE: CrowdTargetState;
-   export var CROWD_AGENT_TARGET_FAILED: CrowdTargetState;
-   export var CROWD_AGENT_TARGET_VALID: CrowdTargetState;
-   export var CROWD_AGENT_TARGET_REQUESTING: CrowdTargetState;
-   export var CROWD_AGENT_TARGET_WAITINGFORQUEUE: CrowdTargetState;
-   export var CROWD_AGENT_TARGET_WAITINGFORPATH: CrowdTargetState;
-   export var CROWD_AGENT_TARGET_VELOCITY: CrowdTargetState;
-
-
-   // enum CrowdAgentState
-   export type CrowdAgentState = number;
-   export var CROWD_AGENT_INVALID: CrowdAgentState;
-   export var CROWD_AGENT_READY: CrowdAgentState;
-   export var CROWD_AGENT_TRAVERSINGLINK: CrowdAgentState;
-
-
-   // enum NavigationQuality
-   export type NavigationQuality = number;
-   export var NAVIGATIONQUALITY_LOW: NavigationQuality;
-   export var NAVIGATIONQUALITY_MEDIUM: NavigationQuality;
-   export var NAVIGATIONQUALITY_HIGH: NavigationQuality;
-
-
-   // enum NavigationPushiness
-   export type NavigationPushiness = number;
-   export var PUSHINESS_LOW: NavigationPushiness;
-   export var PUSHINESS_MEDIUM: NavigationPushiness;
-   export var PUSHINESS_HIGH: NavigationPushiness;
-
-
-   // enum NavmeshPartitionType
-   export type NavmeshPartitionType = number;
-   export var NAVMESH_PARTITION_WATERSHED: NavmeshPartitionType;
-   export var NAVMESH_PARTITION_MONOTONE: NavmeshPartitionType;
-
-
-   // enum MouseMode
-   export type MouseMode = number;
-   export var MM_ABSOLUTE: MouseMode;
-   export var MM_RELATIVE: MouseMode;
-   export var MM_WRAP: MouseMode;
-
-
-   // enum TEXT_ALIGN
-   export type TEXT_ALIGN = number;
-   export var TEXT_ALIGN_LEFT: TEXT_ALIGN;
-   export var TEXT_ALIGN_RIGHT: TEXT_ALIGN;
-   export var TEXT_ALIGN_CENTER: TEXT_ALIGN;
-
-
-   // enum UI_EDIT_TYPE
-   export type UI_EDIT_TYPE = number;
-   export var UI_EDIT_TYPE_TEXT: UI_EDIT_TYPE;
-   export var UI_EDIT_TYPE_SEARCH: UI_EDIT_TYPE;
-   export var UI_EDIT_TYPE_PASSWORD: UI_EDIT_TYPE;
-   export var UI_EDIT_TYPE_EMAIL: UI_EDIT_TYPE;
-   export var UI_EDIT_TYPE_PHONE: UI_EDIT_TYPE;
-   export var UI_EDIT_TYPE_URL: UI_EDIT_TYPE;
-   export var UI_EDIT_TYPE_NUMBER: UI_EDIT_TYPE;
-
-
-   // enum UI_AXIS
-   export type UI_AXIS = number;
-   export var UI_AXIS_X: UI_AXIS;
-   export var UI_AXIS_Y: UI_AXIS;
-
-
-   // enum UI_LAYOUT_SIZE
-   export type UI_LAYOUT_SIZE = number;
-   export var UI_LAYOUT_SIZE_GRAVITY: UI_LAYOUT_SIZE;
-   export var UI_LAYOUT_SIZE_PREFERRED: UI_LAYOUT_SIZE;
-   export var UI_LAYOUT_SIZE_AVAILABLE: UI_LAYOUT_SIZE;
-
-
-   // enum UI_LAYOUT_DISTRIBUTION
-   export type UI_LAYOUT_DISTRIBUTION = number;
-   export var UI_LAYOUT_DISTRIBUTION_PREFERRED: UI_LAYOUT_DISTRIBUTION;
-   export var UI_LAYOUT_DISTRIBUTION_AVAILABLE: UI_LAYOUT_DISTRIBUTION;
-   export var UI_LAYOUT_DISTRIBUTION_GRAVITY: UI_LAYOUT_DISTRIBUTION;
-
-
-   // enum UI_LAYOUT_POSITION
-   export type UI_LAYOUT_POSITION = number;
-   export var UI_LAYOUT_POSITION_CENTER: UI_LAYOUT_POSITION;
-   export var UI_LAYOUT_POSITION_LEFT_TOP: UI_LAYOUT_POSITION;
-   export var UI_LAYOUT_POSITION_RIGHT_BOTTOM: UI_LAYOUT_POSITION;
-   export var UI_LAYOUT_POSITION_GRAVITY: UI_LAYOUT_POSITION;
-
-
-   // enum UI_LAYOUT_DISTRIBUTION_POSITION
-   export type UI_LAYOUT_DISTRIBUTION_POSITION = number;
-   export var UI_LAYOUT_DISTRIBUTION_POSITION_CENTER: UI_LAYOUT_DISTRIBUTION_POSITION;
-   export var UI_LAYOUT_DISTRIBUTION_POSITION_LEFT_TOP: UI_LAYOUT_DISTRIBUTION_POSITION;
-   export var UI_LAYOUT_DISTRIBUTION_POSITION_RIGHT_BOTTOM: UI_LAYOUT_DISTRIBUTION_POSITION;
-
-
-   // enum UI_MESSAGEWINDOW_SETTINGS
-   export type UI_MESSAGEWINDOW_SETTINGS = number;
-   export var UI_MESSAGEWINDOW_SETTINGS_OK: UI_MESSAGEWINDOW_SETTINGS;
-   export var UI_MESSAGEWINDOW_SETTINGS_OK_CANCEL: UI_MESSAGEWINDOW_SETTINGS;
-   export var UI_MESSAGEWINDOW_SETTINGS_YES_NO: UI_MESSAGEWINDOW_SETTINGS;
-
-
-   // enum UI_SIZE_DEP
-   export type UI_SIZE_DEP = number;
-   export var UI_SIZE_DEP_NONE: UI_SIZE_DEP;
-   export var UI_SIZE_DEP_WIDTH_DEPEND_ON_HEIGHT: UI_SIZE_DEP;
-   export var UI_SIZE_DEP_HEIGHT_DEPEND_ON_WIDTH: UI_SIZE_DEP;
-   export var UI_SIZE_DEP_BOTH: UI_SIZE_DEP;
-
-
-   // enum UI_SCROLL_MODE
-   export type UI_SCROLL_MODE = number;
-   export var UI_SCROLL_MODE_X_Y: UI_SCROLL_MODE;
-   export var UI_SCROLL_MODE_Y: UI_SCROLL_MODE;
-   export var UI_SCROLL_MODE_Y_AUTO: UI_SCROLL_MODE;
-   export var UI_SCROLL_MODE_X_AUTO_Y_AUTO: UI_SCROLL_MODE;
-   export var UI_SCROLL_MODE_OFF: UI_SCROLL_MODE;
-
-
-   // enum UI_TEXT_ALIGN
-   export type UI_TEXT_ALIGN = number;
-   export var UI_TEXT_ALIGN_LEFT: UI_TEXT_ALIGN;
-   export var UI_TEXT_ALIGN_RIGHT: UI_TEXT_ALIGN;
-   export var UI_TEXT_ALIGN_CENTER: UI_TEXT_ALIGN;
-
-
-   // enum UI_WIDGET_VISIBILITY
-   export type UI_WIDGET_VISIBILITY = number;
-   export var UI_WIDGET_VISIBILITY_VISIBLE: UI_WIDGET_VISIBILITY;
-   export var UI_WIDGET_VISIBILITY_INVISIBLE: UI_WIDGET_VISIBILITY;
-   export var UI_WIDGET_VISIBILITY_GONE: UI_WIDGET_VISIBILITY;
-
-
-   // enum UI_GRAVITY
-   export type UI_GRAVITY = number;
-   export var UI_GRAVITY_NONE: UI_GRAVITY;
-   export var UI_GRAVITY_LEFT: UI_GRAVITY;
-   export var UI_GRAVITY_RIGHT: UI_GRAVITY;
-   export var UI_GRAVITY_TOP: UI_GRAVITY;
-   export var UI_GRAVITY_BOTTOM: UI_GRAVITY;
-   export var UI_GRAVITY_LEFT_RIGHT: UI_GRAVITY;
-   export var UI_GRAVITY_TOP_BOTTOM: UI_GRAVITY;
-   export var UI_GRAVITY_ALL: UI_GRAVITY;
-   export var UI_GRAVITY_DEFAULT: UI_GRAVITY;
-
-
-   // enum UI_EVENT_TYPE
-   export type UI_EVENT_TYPE = number;
-   export var UI_EVENT_TYPE_CLICK: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_LONG_CLICK: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_POINTER_DOWN: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_POINTER_UP: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_POINTER_MOVE: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_RIGHT_POINTER_DOWN: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_RIGHT_POINTER_UP: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_WHEEL: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_CHANGED: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_KEY_DOWN: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_KEY_UP: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_SHORTCUT: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_CONTEXT_MENU: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_FILE_DROP: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_TAB_CHANGED: UI_EVENT_TYPE;
-   export var UI_EVENT_TYPE_CUSTOM: UI_EVENT_TYPE;
-
-
-   // enum UI_WIDGET_Z_REL
-   export type UI_WIDGET_Z_REL = number;
-   export var UI_WIDGET_Z_REL_BEFORE: UI_WIDGET_Z_REL;
-   export var UI_WIDGET_Z_REL_AFTER: UI_WIDGET_Z_REL;
-
-
-   // enum UI_WINDOW_SETTINGS
-   export type UI_WINDOW_SETTINGS = number;
-   export var UI_WINDOW_SETTINGS_NONE: UI_WINDOW_SETTINGS;
-   export var UI_WINDOW_SETTINGS_TITLEBAR: UI_WINDOW_SETTINGS;
-   export var UI_WINDOW_SETTINGS_RESIZABLE: UI_WINDOW_SETTINGS;
-   export var UI_WINDOW_SETTINGS_CLOSE_BUTTON: UI_WINDOW_SETTINGS;
-   export var UI_WINDOW_SETTINGS_CAN_ACTIVATE: UI_WINDOW_SETTINGS;
-   export var UI_WINDOW_SETTINGS_DEFAULT: UI_WINDOW_SETTINGS;
-
-
-   // enum CompressedFormat
-   export type CompressedFormat = number;
-   export var CF_NONE: CompressedFormat;
-   export var CF_RGBA: CompressedFormat;
-   export var CF_DXT1: CompressedFormat;
-   export var CF_DXT3: CompressedFormat;
-   export var CF_DXT5: CompressedFormat;
-   export var CF_ETC1: CompressedFormat;
-   export var CF_PVRTC_RGB_2BPP: CompressedFormat;
-   export var CF_PVRTC_RGBA_2BPP: CompressedFormat;
-   export var CF_PVRTC_RGB_4BPP: CompressedFormat;
-   export var CF_PVRTC_RGBA_4BPP: CompressedFormat;
-
-
-   // enum JSONValueType
-   export type JSONValueType = number;
-   export var JSON_ANY: JSONValueType;
-   export var JSON_OBJECT: JSONValueType;
-   export var JSON_ARRAY: JSONValueType;
-
-
-   // enum PListValueType
-   export type PListValueType = number;
-   export var PLVT_NONE: PListValueType;
-   export var PLVT_INT: PListValueType;
-   export var PLVT_BOOL: PListValueType;
-   export var PLVT_FLOAT: PListValueType;
-   export var PLVT_STRING: PListValueType;
-   export var PLVT_VALUEMAP: PListValueType;
-   export var PLVT_VALUEVECTOR: PListValueType;
-
-
-   // enum AsyncLoadState
-   export type AsyncLoadState = number;
-   export var ASYNC_DONE: AsyncLoadState;
-   export var ASYNC_QUEUED: AsyncLoadState;
-   export var ASYNC_LOADING: AsyncLoadState;
-   export var ASYNC_SUCCESS: AsyncLoadState;
-   export var ASYNC_FAIL: AsyncLoadState;
-
-
-   // enum ResourceRequest
-   export type ResourceRequest = number;
-   export var RESOURCE_CHECKEXISTS: ResourceRequest;
-   export var RESOURCE_GETFILE: ResourceRequest;
-
-
-   // enum ObserverPositionSendMode
-   export type ObserverPositionSendMode = number;
-   export var OPSM_NONE: ObserverPositionSendMode;
-   export var OPSM_POSITION: ObserverPositionSendMode;
-   export var OPSM_POSITION_ROTATION: ObserverPositionSendMode;
-
-
-   // enum HttpRequestState
-   export type HttpRequestState = number;
-   export var HTTP_INITIALIZING: HttpRequestState;
-   export var HTTP_ERROR: HttpRequestState;
-   export var HTTP_OPEN: HttpRequestState;
-   export var HTTP_CLOSED: HttpRequestState;
-
-
-   // enum FileMode
-   export type FileMode = number;
-   export var FILE_READ: FileMode;
-   export var FILE_WRITE: FileMode;
-   export var FILE_READWRITE: FileMode;
-
-
-   export var QUICKSORT_THRESHOLD: number;
-   export var CONVERSION_BUFFER_LENGTH: number;
-   export var MATRIX_CONVERSION_BUFFER_LENGTH: number;
-
-
-   export var NUM_FRUSTUM_PLANES: number;
-   export var NUM_FRUSTUM_VERTICES: number;
-   export var M_PI: number;
-   export var M_HALF_PI: number;
-   export var M_MIN_INT: number;
-   export var M_MAX_INT: number;
-   export var M_MIN_UNSIGNED: number;
-   export var M_MAX_UNSIGNED: number;
-   export var M_EPSILON: number;
-   export var M_LARGE_EPSILON: number;
-   export var M_MIN_NEARCLIP: number;
-   export var M_MAX_FOV: number;
-   export var M_LARGE_VALUE: number;
-   export var M_INFINITY: number;
-   export var M_DEGTORAD: number;
-   export var M_DEGTORAD_2: number;
-   export var M_RADTODEG: number;
-
-
-   export var AM_EDIT: number;
-   export var AM_FILE: number;
-   export var AM_NET: number;
-   export var AM_DEFAULT: number;
-   export var AM_LATESTDATA: number;
-   export var AM_NOEDIT: number;
-   export var AM_NODEID: number;
-   export var AM_COMPONENTID: number;
-   export var AM_NODEIDVECTOR: number;
-
-
-   export var USE_UPDATE: number;
-   export var USE_POSTUPDATE: number;
-   export var USE_FIXEDUPDATE: number;
-   export var USE_FIXEDPOSTUPDATE: number;
-   export var MAX_NETWORK_ATTRIBUTES: number;
-   export var FIRST_REPLICATED_ID: number;
-   export var LAST_REPLICATED_ID: number;
-   export var FIRST_LOCAL_ID: number;
-   export var LAST_LOCAL_ID: number;
-   export var SMOOTH_NONE: number;
-   export var SMOOTH_POSITION: number;
-   export var SMOOTH_ROTATION: number;
-
-
-   export var DEFAULT_NEARCLIP: number;
-   export var DEFAULT_FARCLIP: number;
-   export var DEFAULT_CAMERA_FOV: number;
-   export var DEFAULT_ORTHOSIZE: number;
-   export var VO_NONE: number;
-   export var VO_LOW_MATERIAL_QUALITY: number;
-   export var VO_DISABLE_SHADOWS: number;
-   export var VO_DISABLE_OCCLUSION: number;
-   export var DRAWABLE_GEOMETRY: number;
-   export var DRAWABLE_LIGHT: number;
-   export var DRAWABLE_ZONE: number;
-   export var DRAWABLE_GEOMETRY2D: number;
-   export var DRAWABLE_ANY: number;
-   export var DEFAULT_VIEWMASK: number;
-   export var DEFAULT_LIGHTMASK: number;
-   export var DEFAULT_SHADOWMASK: number;
-   export var DEFAULT_ZONEMASK: number;
-   export var MAX_VERTEX_LIGHTS: number;
-   export var ANIMATION_LOD_BASESCALE: number;
-   export var QUALITY_LOW: number;
-   export var QUALITY_MEDIUM: number;
-   export var QUALITY_HIGH: number;
-   export var QUALITY_MAX: number;
-   export var SHADOWQUALITY_LOW_16BIT: number;
-   export var SHADOWQUALITY_LOW_24BIT: number;
-   export var SHADOWQUALITY_HIGH_16BIT: number;
-   export var SHADOWQUALITY_HIGH_24BIT: number;
-   export var CLEAR_COLOR: number;
-   export var CLEAR_DEPTH: number;
-   export var CLEAR_STENCIL: number;
-   export var MASK_NONE: number;
-   export var MASK_POSITION: number;
-   export var MASK_NORMAL: number;
-   export var MASK_COLOR: number;
-   export var MASK_TEXCOORD1: number;
-   export var MASK_TEXCOORD2: number;
-   export var MASK_CUBETEXCOORD1: number;
-   export var MASK_CUBETEXCOORD2: number;
-   export var MASK_TANGENT: number;
-   export var MASK_BLENDWEIGHTS: number;
-   export var MASK_BLENDINDICES: number;
-   export var MASK_INSTANCEMATRIX1: number;
-   export var MASK_INSTANCEMATRIX2: number;
-   export var MASK_INSTANCEMATRIX3: number;
-   export var MASK_DEFAULT: number;
-   export var NO_ELEMENT: number;
-   export var MAX_RENDERTARGETS: number;
-   export var MAX_VERTEX_STREAMS: number;
-   export var MAX_CONSTANT_REGISTERS: number;
-   export var BITS_PER_COMPONENT: number;
-   export var SHADOW_MIN_QUANTIZE: number;
-   export var SHADOW_MIN_VIEW: number;
-   export var MAX_LIGHT_SPLITS: number;
-   export var MAX_CASCADE_SPLITS: number;
-   export var OCCLUSION_MIN_SIZE: number;
-   export var OCCLUSION_DEFAULT_MAX_TRIANGLES: number;
-   export var OCCLUSION_RELATIVE_BIAS: number;
-   export var OCCLUSION_FIXED_BIAS: number;
-   export var OCCLUSION_X_SCALE: number;
-   export var OCCLUSION_Z_SCALE: number;
-   export var NUM_OCTANTS: number;
-   export var ROOT_INDEX: number;
-   export var SHADOW_MIN_PIXELS: number;
-   export var INSTANCING_BUFFER_DEFAULT_SIZE: number;
-   export var MAX_VIEWPORT_TEXTURES: number;
-   export var MAX_TEXTURE_QUALITY_LEVELS: number;
-
-
-   export var CHANNEL_POSITION: number;
-   export var CHANNEL_ROTATION: number;
-   export var CHANNEL_SCALE: number;
-   export var MAX_BILLBOARDS: number;
-   export var DEFAULT_NUM_PARTICLES: number;
-   export var BONECOLLISION_NONE: number;
-   export var BONECOLLISION_SPHERE: number;
-   export var BONECOLLISION_BOX: number;
-
-
-   export var PIXEL_SIZE: number;
-
-
-   export var STREAM_BUFFER_LENGTH: number;
-
-
-   export var DEFAULT_MAX_NETWORK_ANGULAR_VELOCITY: number;
-
-
-   export var MOUSEB_LEFT: number;
-   export var MOUSEB_MIDDLE: number;
-   export var MOUSEB_RIGHT: number;
-   export var MOUSEB_X1: number;
-   export var MOUSEB_X2: number;
-   export var QUAL_SHIFT: number;
-   export var QUAL_CTRL: number;
-   export var QUAL_ALT: number;
-   export var QUAL_ANY: number;
-   export var KEY_A: number;
-   export var KEY_B: number;
-   export var KEY_C: number;
-   export var KEY_D: number;
-   export var KEY_E: number;
-   export var KEY_F: number;
-   export var KEY_G: number;
-   export var KEY_H: number;
-   export var KEY_I: number;
-   export var KEY_J: number;
-   export var KEY_K: number;
-   export var KEY_L: number;
-   export var KEY_M: number;
-   export var KEY_N: number;
-   export var KEY_O: number;
-   export var KEY_P: number;
-   export var KEY_Q: number;
-   export var KEY_R: number;
-   export var KEY_S: number;
-   export var KEY_T: number;
-   export var KEY_U: number;
-   export var KEY_V: number;
-   export var KEY_W: number;
-   export var KEY_X: number;
-   export var KEY_Y: number;
-   export var KEY_Z: number;
-   export var KEY_0: number;
-   export var KEY_1: number;
-   export var KEY_2: number;
-   export var KEY_3: number;
-   export var KEY_4: number;
-   export var KEY_5: number;
-   export var KEY_6: number;
-   export var KEY_7: number;
-   export var KEY_8: number;
-   export var KEY_9: number;
-   export var KEY_BACKSPACE: number;
-   export var KEY_TAB: number;
-   export var KEY_RETURN: number;
-   export var KEY_RETURN2: number;
-   export var KEY_KP_ENTER: number;
-   export var KEY_SHIFT: number;
-   export var KEY_CTRL: number;
-   export var KEY_ALT: number;
-   export var KEY_GUI: number;
-   export var KEY_PAUSE: number;
-   export var KEY_CAPSLOCK: number;
-   export var KEY_ESC: number;
-   export var KEY_SPACE: number;
-   export var KEY_PAGEUP: number;
-   export var KEY_PAGEDOWN: number;
-   export var KEY_END: number;
-   export var KEY_HOME: number;
-   export var KEY_LEFT: number;
-   export var KEY_UP: number;
-   export var KEY_RIGHT: number;
-   export var KEY_DOWN: number;
-   export var KEY_SELECT: number;
-   export var KEY_PRINTSCREEN: number;
-   export var KEY_INSERT: number;
-   export var KEY_DELETE: number;
-   export var KEY_LGUI: number;
-   export var KEY_RGUI: number;
-   export var KEY_APPLICATION: number;
-   export var KEY_KP_0: number;
-   export var KEY_KP_1: number;
-   export var KEY_KP_2: number;
-   export var KEY_KP_3: number;
-   export var KEY_KP_4: number;
-   export var KEY_KP_5: number;
-   export var KEY_KP_6: number;
-   export var KEY_KP_7: number;
-   export var KEY_KP_8: number;
-   export var KEY_KP_9: number;
-   export var KEY_KP_MULTIPLY: number;
-   export var KEY_KP_PLUS: number;
-   export var KEY_KP_MINUS: number;
-   export var KEY_KP_PERIOD: number;
-   export var KEY_KP_DIVIDE: number;
-   export var KEY_F1: number;
-   export var KEY_F2: number;
-   export var KEY_F3: number;
-   export var KEY_F4: number;
-   export var KEY_F5: number;
-   export var KEY_F6: number;
-   export var KEY_F7: number;
-   export var KEY_F8: number;
-   export var KEY_F9: number;
-   export var KEY_F10: number;
-   export var KEY_F11: number;
-   export var KEY_F12: number;
-   export var KEY_F13: number;
-   export var KEY_F14: number;
-   export var KEY_F15: number;
-   export var KEY_F16: number;
-   export var KEY_F17: number;
-   export var KEY_F18: number;
-   export var KEY_F19: number;
-   export var KEY_F20: number;
-   export var KEY_F21: number;
-   export var KEY_F22: number;
-   export var KEY_F23: number;
-   export var KEY_F24: number;
-   export var KEY_NUMLOCKCLEAR: number;
-   export var KEY_SCROLLLOCK: number;
-   export var KEY_LSHIFT: number;
-   export var KEY_RSHIFT: number;
-   export var KEY_LCTRL: number;
-   export var KEY_RCTRL: number;
-   export var KEY_LALT: number;
-   export var KEY_RALT: number;
-   export var SCANCODE_UNKNOWN: number;
-   export var SCANCODE_CTRL: number;
-   export var SCANCODE_SHIFT: number;
-   export var SCANCODE_ALT: number;
-   export var SCANCODE_GUI: number;
-   export var SCANCODE_A: number;
-   export var SCANCODE_B: number;
-   export var SCANCODE_C: number;
-   export var SCANCODE_D: number;
-   export var SCANCODE_E: number;
-   export var SCANCODE_F: number;
-   export var SCANCODE_G: number;
-   export var SCANCODE_H: number;
-   export var SCANCODE_I: number;
-   export var SCANCODE_J: number;
-   export var SCANCODE_K: number;
-   export var SCANCODE_L: number;
-   export var SCANCODE_M: number;
-   export var SCANCODE_N: number;
-   export var SCANCODE_O: number;
-   export var SCANCODE_P: number;
-   export var SCANCODE_Q: number;
-   export var SCANCODE_R: number;
-   export var SCANCODE_S: number;
-   export var SCANCODE_T: number;
-   export var SCANCODE_U: number;
-   export var SCANCODE_V: number;
-   export var SCANCODE_W: number;
-   export var SCANCODE_X: number;
-   export var SCANCODE_Y: number;
-   export var SCANCODE_Z: number;
-   export var SCANCODE_1: number;
-   export var SCANCODE_2: number;
-   export var SCANCODE_3: number;
-   export var SCANCODE_4: number;
-   export var SCANCODE_5: number;
-   export var SCANCODE_6: number;
-   export var SCANCODE_7: number;
-   export var SCANCODE_8: number;
-   export var SCANCODE_9: number;
-   export var SCANCODE_0: number;
-   export var SCANCODE_RETURN: number;
-   export var SCANCODE_ESCAPE: number;
-   export var SCANCODE_BACKSPACE: number;
-   export var SCANCODE_TAB: number;
-   export var SCANCODE_SPACE: number;
-   export var SCANCODE_MINUS: number;
-   export var SCANCODE_EQUALS: number;
-   export var SCANCODE_LEFTBRACKET: number;
-   export var SCANCODE_RIGHTBRACKET: number;
-   export var SCANCODE_BACKSLASH: number;
-   export var SCANCODE_NONUSHASH: number;
-   export var SCANCODE_SEMICOLON: number;
-   export var SCANCODE_APOSTROPHE: number;
-   export var SCANCODE_GRAVE: number;
-   export var SCANCODE_COMMA: number;
-   export var SCANCODE_PERIOD: number;
-   export var SCANCODE_SLASH: number;
-   export var SCANCODE_CAPSLOCK: number;
-   export var SCANCODE_F1: number;
-   export var SCANCODE_F2: number;
-   export var SCANCODE_F3: number;
-   export var SCANCODE_F4: number;
-   export var SCANCODE_F5: number;
-   export var SCANCODE_F6: number;
-   export var SCANCODE_F7: number;
-   export var SCANCODE_F8: number;
-   export var SCANCODE_F9: number;
-   export var SCANCODE_F10: number;
-   export var SCANCODE_F11: number;
-   export var SCANCODE_F12: number;
-   export var SCANCODE_PRINTSCREEN: number;
-   export var SCANCODE_SCROLLLOCK: number;
-   export var SCANCODE_PAUSE: number;
-   export var SCANCODE_INSERT: number;
-   export var SCANCODE_HOME: number;
-   export var SCANCODE_PAGEUP: number;
-   export var SCANCODE_DELETE: number;
-   export var SCANCODE_END: number;
-   export var SCANCODE_PAGEDOWN: number;
-   export var SCANCODE_RIGHT: number;
-   export var SCANCODE_LEFT: number;
-   export var SCANCODE_DOWN: number;
-   export var SCANCODE_UP: number;
-   export var SCANCODE_NUMLOCKCLEAR: number;
-   export var SCANCODE_KP_DIVIDE: number;
-   export var SCANCODE_KP_MULTIPLY: number;
-   export var SCANCODE_KP_MINUS: number;
-   export var SCANCODE_KP_PLUS: number;
-   export var SCANCODE_KP_ENTER: number;
-   export var SCANCODE_KP_1: number;
-   export var SCANCODE_KP_2: number;
-   export var SCANCODE_KP_3: number;
-   export var SCANCODE_KP_4: number;
-   export var SCANCODE_KP_5: number;
-   export var SCANCODE_KP_6: number;
-   export var SCANCODE_KP_7: number;
-   export var SCANCODE_KP_8: number;
-   export var SCANCODE_KP_9: number;
-   export var SCANCODE_KP_0: number;
-   export var SCANCODE_KP_PERIOD: number;
-   export var SCANCODE_NONUSBACKSLASH: number;
-   export var SCANCODE_APPLICATION: number;
-   export var SCANCODE_POWER: number;
-   export var SCANCODE_KP_EQUALS: number;
-   export var SCANCODE_F13: number;
-   export var SCANCODE_F14: number;
-   export var SCANCODE_F15: number;
-   export var SCANCODE_F16: number;
-   export var SCANCODE_F17: number;
-   export var SCANCODE_F18: number;
-   export var SCANCODE_F19: number;
-   export var SCANCODE_F20: number;
-   export var SCANCODE_F21: number;
-   export var SCANCODE_F22: number;
-   export var SCANCODE_F23: number;
-   export var SCANCODE_F24: number;
-   export var SCANCODE_EXECUTE: number;
-   export var SCANCODE_HELP: number;
-   export var SCANCODE_MENU: number;
-   export var SCANCODE_SELECT: number;
-   export var SCANCODE_STOP: number;
-   export var SCANCODE_AGAIN: number;
-   export var SCANCODE_UNDO: number;
-   export var SCANCODE_CUT: number;
-   export var SCANCODE_COPY: number;
-   export var SCANCODE_PASTE: number;
-   export var SCANCODE_FIND: number;
-   export var SCANCODE_MUTE: number;
-   export var SCANCODE_VOLUMEUP: number;
-   export var SCANCODE_VOLUMEDOWN: number;
-   export var SCANCODE_KP_COMMA: number;
-   export var SCANCODE_KP_EQUALSAS400: number;
-   export var SCANCODE_INTERNATIONAL1: number;
-   export var SCANCODE_INTERNATIONAL2: number;
-   export var SCANCODE_INTERNATIONAL3: number;
-   export var SCANCODE_INTERNATIONAL4: number;
-   export var SCANCODE_INTERNATIONAL5: number;
-   export var SCANCODE_INTERNATIONAL6: number;
-   export var SCANCODE_INTERNATIONAL7: number;
-   export var SCANCODE_INTERNATIONAL8: number;
-   export var SCANCODE_INTERNATIONAL9: number;
-   export var SCANCODE_LANG1: number;
-   export var SCANCODE_LANG2: number;
-   export var SCANCODE_LANG3: number;
-   export var SCANCODE_LANG4: number;
-   export var SCANCODE_LANG5: number;
-   export var SCANCODE_LANG6: number;
-   export var SCANCODE_LANG7: number;
-   export var SCANCODE_LANG8: number;
-   export var SCANCODE_LANG9: number;
-   export var SCANCODE_ALTERASE: number;
-   export var SCANCODE_SYSREQ: number;
-   export var SCANCODE_CANCEL: number;
-   export var SCANCODE_CLEAR: number;
-   export var SCANCODE_PRIOR: number;
-   export var SCANCODE_RETURN2: number;
-   export var SCANCODE_SEPARATOR: number;
-   export var SCANCODE_OUT: number;
-   export var SCANCODE_OPER: number;
-   export var SCANCODE_CLEARAGAIN: number;
-   export var SCANCODE_CRSEL: number;
-   export var SCANCODE_EXSEL: number;
-   export var SCANCODE_KP_00: number;
-   export var SCANCODE_KP_000: number;
-   export var SCANCODE_THOUSANDSSEPARATOR: number;
-   export var SCANCODE_DECIMALSEPARATOR: number;
-   export var SCANCODE_CURRENCYUNIT: number;
-   export var SCANCODE_CURRENCYSUBUNIT: number;
-   export var SCANCODE_KP_LEFTPAREN: number;
-   export var SCANCODE_KP_RIGHTPAREN: number;
-   export var SCANCODE_KP_LEFTBRACE: number;
-   export var SCANCODE_KP_RIGHTBRACE: number;
-   export var SCANCODE_KP_TAB: number;
-   export var SCANCODE_KP_BACKSPACE: number;
-   export var SCANCODE_KP_A: number;
-   export var SCANCODE_KP_B: number;
-   export var SCANCODE_KP_C: number;
-   export var SCANCODE_KP_D: number;
-   export var SCANCODE_KP_E: number;
-   export var SCANCODE_KP_F: number;
-   export var SCANCODE_KP_XOR: number;
-   export var SCANCODE_KP_POWER: number;
-   export var SCANCODE_KP_PERCENT: number;
-   export var SCANCODE_KP_LESS: number;
-   export var SCANCODE_KP_GREATER: number;
-   export var SCANCODE_KP_AMPERSAND: number;
-   export var SCANCODE_KP_DBLAMPERSAND: number;
-   export var SCANCODE_KP_VERTICALBAR: number;
-   export var SCANCODE_KP_DBLVERTICALBAR: number;
-   export var SCANCODE_KP_COLON: number;
-   export var SCANCODE_KP_HASH: number;
-   export var SCANCODE_KP_SPACE: number;
-   export var SCANCODE_KP_AT: number;
-   export var SCANCODE_KP_EXCLAM: number;
-   export var SCANCODE_KP_MEMSTORE: number;
-   export var SCANCODE_KP_MEMRECALL: number;
-   export var SCANCODE_KP_MEMCLEAR: number;
-   export var SCANCODE_KP_MEMADD: number;
-   export var SCANCODE_KP_MEMSUBTRACT: number;
-   export var SCANCODE_KP_MEMMULTIPLY: number;
-   export var SCANCODE_KP_MEMDIVIDE: number;
-   export var SCANCODE_KP_PLUSMINUS: number;
-   export var SCANCODE_KP_CLEAR: number;
-   export var SCANCODE_KP_CLEARENTRY: number;
-   export var SCANCODE_KP_BINARY: number;
-   export var SCANCODE_KP_OCTAL: number;
-   export var SCANCODE_KP_DECIMAL: number;
-   export var SCANCODE_KP_HEXADECIMAL: number;
-   export var SCANCODE_LCTRL: number;
-   export var SCANCODE_LSHIFT: number;
-   export var SCANCODE_LALT: number;
-   export var SCANCODE_LGUI: number;
-   export var SCANCODE_RCTRL: number;
-   export var SCANCODE_RSHIFT: number;
-   export var SCANCODE_RALT: number;
-   export var SCANCODE_RGUI: number;
-   export var SCANCODE_MODE: number;
-   export var SCANCODE_AUDIONEXT: number;
-   export var SCANCODE_AUDIOPREV: number;
-   export var SCANCODE_AUDIOSTOP: number;
-   export var SCANCODE_AUDIOPLAY: number;
-   export var SCANCODE_AUDIOMUTE: number;
-   export var SCANCODE_MEDIASELECT: number;
-   export var SCANCODE_WWW: number;
-   export var SCANCODE_MAIL: number;
-   export var SCANCODE_CALCULATOR: number;
-   export var SCANCODE_COMPUTER: number;
-   export var SCANCODE_AC_SEARCH: number;
-   export var SCANCODE_AC_HOME: number;
-   export var SCANCODE_AC_BACK: number;
-   export var SCANCODE_AC_FORWARD: number;
-   export var SCANCODE_AC_STOP: number;
-   export var SCANCODE_AC_REFRESH: number;
-   export var SCANCODE_AC_BOOKMARKS: number;
-   export var SCANCODE_BRIGHTNESSDOWN: number;
-   export var SCANCODE_BRIGHTNESSUP: number;
-   export var SCANCODE_DISPLAYSWITCH: number;
-   export var SCANCODE_KBDILLUMTOGGLE: number;
-   export var SCANCODE_KBDILLUMDOWN: number;
-   export var SCANCODE_KBDILLUMUP: number;
-   export var SCANCODE_EJECT: number;
-   export var SCANCODE_SLEEP: number;
-   export var SCANCODE_APP1: number;
-   export var SCANCODE_APP2: number;
-   export var HAT_CENTER: number;
-   export var HAT_UP: number;
-   export var HAT_RIGHT: number;
-   export var HAT_DOWN: number;
-   export var HAT_LEFT: number;
-   export var CONTROLLER_BUTTON_A: number;
-   export var CONTROLLER_BUTTON_B: number;
-   export var CONTROLLER_BUTTON_X: number;
-   export var CONTROLLER_BUTTON_Y: number;
-   export var CONTROLLER_BUTTON_BACK: number;
-   export var CONTROLLER_BUTTON_GUIDE: number;
-   export var CONTROLLER_BUTTON_START: number;
-   export var CONTROLLER_BUTTON_LEFTSTICK: number;
-   export var CONTROLLER_BUTTON_RIGHTSTICK: number;
-   export var CONTROLLER_BUTTON_LEFTSHOULDER: number;
-   export var CONTROLLER_BUTTON_RIGHTSHOULDER: number;
-   export var CONTROLLER_BUTTON_DPAD_UP: number;
-   export var CONTROLLER_BUTTON_DPAD_DOWN: number;
-   export var CONTROLLER_BUTTON_DPAD_LEFT: number;
-   export var CONTROLLER_BUTTON_DPAD_RIGHT: number;
-   export var CONTROLLER_AXIS_LEFTX: number;
-   export var CONTROLLER_AXIS_LEFTY: number;
-   export var CONTROLLER_AXIS_RIGHTX: number;
-   export var CONTROLLER_AXIS_RIGHTY: number;
-   export var CONTROLLER_AXIS_TRIGGERLEFT: number;
-   export var CONTROLLER_AXIS_TRIGGERRIGHT: number;
-
-
-   export var UI_VERTEX_SIZE: number;
-
-
-   export var COLOR_LUT_SIZE: number;
-   export var PRIORITY_LAST: number;
-
-
-   export var MSG_IDENTITY: number;
-   export var MSG_CONTROLS: number;
-   export var MSG_SCENELOADED: number;
-   export var MSG_REQUESTPACKAGE: number;
-   export var MSG_PACKAGEDATA: number;
-   export var MSG_LOADSCENE: number;
-   export var MSG_SCENECHECKSUMERROR: number;
-   export var MSG_CREATENODE: number;
-   export var MSG_NODEDELTAUPDATE: number;
-   export var MSG_NODELATESTDATA: number;
-   export var MSG_REMOVENODE: number;
-   export var MSG_CREATECOMPONENT: number;
-   export var MSG_COMPONENTDELTAUPDATE: number;
-   export var MSG_COMPONENTLATESTDATA: number;
-   export var MSG_REMOVECOMPONENT: number;
-   export var MSG_REMOTEEVENT: number;
-   export var MSG_REMOTENODEEVENT: number;
-   export var MSG_PACKAGEINFO: number;
-   export var CONTROLS_CONTENT_ID: number;
-   export var PACKAGE_FRAGMENT_SIZE: number;
-
-
-   export var SCAN_FILES: number;
-   export var SCAN_DIRS: number;
-   export var SCAN_HIDDEN: number;
-   export var LOG_RAW: number;
-   export var LOG_DEBUG: number;
-   export var LOG_INFO: number;
-   export var LOG_WARNING: number;
-   export var LOG_ERROR: number;
-   export var LOG_NONE: number;
-
-
-//----------------------------------------------------
-// MODULE: Container
-//----------------------------------------------------
-
-
-   export class RefCounted {
-
-      // Construct. Allocate the reference count structure and set an initial self weak reference.
-      constructor();
-
-      // Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting.
-      addRef(): void;
-      // Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting.
-      releaseRef(): void;
-      // Return reference count.
-      refs(): number;
-      // Return weak reference count.
-      weakRefs(): number;
-      isObject(): boolean;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Math
-//----------------------------------------------------
-
-
-   export class BoundingBox {
-
-
-   }
-
-   export class Color {
-
-
-   }
-
-   export class Quaternion {
-
-
-   }
-
-   export class Rect {
-
-
-   }
-
-   export class IntRect {
-
-
-   }
-
-   export class Vector2 {
-
-
-   }
-
-   export class IntVector2 {
-
-
-   }
-
-   export class Vector3 {
-
-
-   }
-
-   export class Vector4 {
-
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Core
-//----------------------------------------------------
-
-
-   export class Context extends RefCounted {
-
-      eventSender: AObject;
-      editorContext: boolean;
-
-      // Construct.
-      constructor();
-
-      // Register a subsystem.
-      registerSubsystem(subsystem: AObject): void;
-      // Remove a subsystem.
-      removeSubsystem(objectType: string): void;
-      // Copy base class attributes to derived class.
-      copyBaseAttributes(baseType: string, derivedType: string): void;
-      // Return subsystem by type.
-      getSubsystem(type: string): AObject;
-      // Return active event sender. Null outside event handling.
-      getEventSender(): AObject;
-      // Return object type name from hash, or empty if unknown.
-      getTypeName(objectType: string): string;
-      // Get whether an Editor Context
-      getEditorContext(): boolean;
-      // Get whether an Editor Context
-      setEditorContext(editor: boolean): void;
-
-   }
-
-   export class AObject extends RefCounted {
-
-      type: string;
-      baseType: string;
-      typeName: string;
-      context: Context;
-      eventSender: AObject;
-      category: string;
-      typeNameStatic: string;
-
-      // Construct.
-      constructor();
-
-      // Return type hash.
-      getType(): string;
-      // Return base class type hash.
-      getBaseType(): string;
-      // Return type name.
-      getTypeName(): string;
-      // Unsubscribe from a specific sender's events.
-      unsubscribeFromEvents(sender: AObject): void;
-      // Unsubscribe from all events.
-      unsubscribeFromAllEvents(): void;
-      // Return execution context.
-      getContext(): Context;
-      // Return subsystem by type.
-      getSubsystem(type: string): AObject;
-      // Return active event sender. Null outside event handling.
-      getEventSender(): AObject;
-      // Return whether has subscribed to any event.
-      hasEventHandlers(): boolean;
-      // Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered.
-      getCategory(): string;
-      isObject(): boolean;
-      getTypeNameStatic(): string;
-      sendEvent(eventType:string, data?:Object);
-      subscribeToEvent(eventType:string, callback:(data:any)=>void);
-      subscribeToEvent(sender:AObject, eventType:string, callback:(data:any)=>void);
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Scene
-//----------------------------------------------------
-
-
-   export class Animatable extends Serializable {
-
-      animationEnabled: boolean;
-      objectAnimation: ObjectAnimation;
-
-      // Construct.
-      constructor();
-
-      // Set animation enabled.
-      setAnimationEnabled(enable: boolean): void;
-      // Set object animation.
-      setObjectAnimation(objectAnimation: ObjectAnimation): void;
-      // Set attribute animation.
-      setAttributeAnimation(name: string, attributeAnimation: ValueAnimation, wrapMode?: WrapMode, speed?: number): void;
-      // Set attribute animation wrap mode.
-      setAttributeAnimationWrapMode(name: string, wrapMode: WrapMode): void;
-      // Set attribute animation speed.
-      setAttributeAnimationSpeed(name: string, speed: number): void;
-      // Return animation enabled.
-      getAnimationEnabled(): boolean;
-      // Return object animation.
-      getObjectAnimation(): ObjectAnimation;
-      // Return attribute animation.
-      getAttributeAnimation(name: string): ValueAnimation;
-      // Return attribute animation wrap mode.
-      getAttributeAnimationWrapMode(name: string): WrapMode;
-      // Return attribute animation speed.
-      getAttributeAnimationSpeed(name: string): number;
-
-   }
-
-   export class Component extends Animatable {
-
-      enabled: boolean;
-      id: number;
-      node: Node;
-      scene: Scene;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Mark for attribute check on the next network update.
-      markNetworkUpdate(): void;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set enabled/disabled state.
-      setEnabled(enable: boolean): void;
-      // Remove from the scene node. If no other shared pointer references exist, causes immediate deletion.
-      remove(): void;
-      // Return ID.
-      getID(): number;
-      // Return scene node.
-      getNode(): Node;
-      // Return the scene the node belongs to.
-      getScene(): Scene;
-      // Return whether is enabled.
-      isEnabled(): boolean;
-      // Return whether is effectively enabled (node is also enabled.)
-      isEnabledEffective(): boolean;
-      // Return component in the same scene node by type. If there are several, returns the first.
-      getComponent(type: string): Component;
-      // Prepare network update by comparing attributes and marking replication states dirty as necessary.
-      prepareNetworkUpdate(): void;
-
-   }
-
-   export class Node extends Animatable {
-
-      name: string;
-      position: Vector3;
-      position2D: Vector2;
-      rotation: Quaternion;
-      rotation2D: number;
-      direction: Vector3;
-      scale: Vector3;
-      scale2D: Vector2;
-      worldPosition: Vector3;
-      worldRotation: Quaternion;
-      worldRotation2D: number;
-      worldDirection: Vector3;
-      enabled: boolean;
-      deepEnabled: boolean;
-      enabledRecursive: boolean;
-      parent: Node;
-      id: number;
-      nameHash: string;
-      scene: Scene;
-      up: Vector3;
-      right: Vector3;
-      worldPosition2D: Vector2;
-      worldUp: Vector3;
-      worldRight: Vector3;
-      worldScale: Vector3;
-      worldScale2D: Vector2;
-      numComponents: number;
-      numNetworkComponents: number;
-      netPositionAttr: Vector3;
-      numPersistentChildren: number;
-      numPersistentComponents: number;
-      positionSilent: Vector3;
-      rotationSilent: Quaternion;
-      scaleSilent: Vector3;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately recursively to child nodes and components.
-      applyAttributes(): void;
-      // Return whether should save default-valued attributes into XML. Always save node transforms for readability, even if identity.
-      saveDefaultAttributes(): boolean;
-      // Mark for attribute check on the next network update.
-      markNetworkUpdate(): void;
-      // Set name of the scene node. Names are not required to be unique.
-      setName(name: string): void;
-      // Set position in parent space. If the scene node is on the root level (is child of the scene itself), this is same as world space.
-      setPosition(position: Vector3): void;
-      // Set position in parent space (for Atomic2D).
-      setPosition2D(position: Vector2): void;
-      // Set rotation in parent space.
-      setRotation(rotation: Quaternion): void;
-      // Set rotation in parent space (for Atomic2D).
-      setRotation2D(rotation: number): void;
-      // Set forward direction in parent space. Positive Z axis equals identity rotation.
-      setDirection(direction: Vector3): void;
-      // Set scale in parent space.
-      setScale(scale: Vector3): void;
-      // Set scale in parent space (for Atomic2D).
-      setScale2D(scale: Vector2): void;
-      // Set position in world space.
-      setWorldPosition(position: Vector3): void;
-      // Set rotation in world space.
-      setWorldRotation(rotation: Quaternion): void;
-      // Set rotation in world space (for Atomic2D).
-      setWorldRotation2D(rotation: number): void;
-      // Set forward direction in world space.
-      setWorldDirection(direction: Vector3): void;
-      // Move the scene node in the chosen transform space.
-      translate(delta: Vector3, space?: TransformSpace): void;
-      // Move the scene node in the chosen transform space (for Atomic2D).
-      translate2D(delta: Vector2, space?: TransformSpace): void;
-      // Rotate the scene node in the chosen transform space.
-      rotate(delta: Quaternion, space?: TransformSpace): void;
-      // Rotate the scene node in the chosen transform space (for Atomic2D).
-      rotate2D(delta: number, space?: TransformSpace): void;
-      // Rotate around a point in the chosen transform space.
-      rotateAround(point: Vector3, delta: Quaternion, space?: TransformSpace): void;
-      // Rotate around a point in the chosen transform space (for Atomic2D).
-      rotateAround2D(point: Vector2, delta: number, space?: TransformSpace): void;
-      // Rotate around the X axis.
-      pitch(angle: number, space?: TransformSpace): void;
-      // Rotate around the Y axis.
-      yaw(angle: number, space?: TransformSpace): void;
-      // Rotate around the Z axis.
-      roll(angle: number, space?: TransformSpace): void;
-      // Look at a target position in the chosen transform space. Note that the up vector is always specified in world space. Return true if successful, or false if resulted in an illegal rotation, in which case the current rotation remains.
-      lookAt(target: Vector3, up?: Vector3, space?: TransformSpace): boolean;
-      // Set enabled/disabled state without recursion. Components in a disabled node become effectively disabled regardless of their own enable/disable state.
-      setEnabled(enable: boolean): void;
-      // Set enabled state on self and child nodes. Nodes' own enabled state is remembered (IsEnabledSelf) and can be restored.
-      setDeepEnabled(enable: boolean): void;
-      // Reset enabled state to the node's remembered state prior to calling SetDeepEnabled.
-      resetDeepEnabled(): void;
-      // Set enabled state on self and child nodes. Unlike SetDeepEnabled this does not remember the nodes' own enabled state, but overwrites it.
-      setEnabledRecursive(enable: boolean): void;
-      // Mark node and child nodes to need world transform recalculation. Notify listener components.
-      markDirty(): void;
-      // Create a child scene node (with specified ID if provided).
-      createChild(name?: string, mode?: CreateMode, id?: number): Node;
-      // Add a child scene node at a specific index. If index is not explicitly specified or is greater than current children size, append the new child at the end.
-      addChild(node: Node, index?: number): void;
-      // Remove a child scene node.
-      removeChild(node: Node): void;
-      // Remove all child scene nodes.
-      removeAllChildren(): void;
-      // Remove child scene nodes that match criteria.
-      removeChildren(removeReplicated: boolean, removeLocal: boolean, recursive: boolean): void;
-      // Create a component to this node (with specified ID if provided).
-      createComponent(type: string, mode?: CreateMode, id?: number): Component;
-      // Create a component to this node if it does not exist already.
-      getOrCreateComponent(type: string, mode?: CreateMode, id?: number): Component;
-      // Remove all components from this node.
-      removeAllComponents(): void;
-      // Remove components that match criteria.
-      removeComponents(removeReplicated: boolean, removeLocal: boolean): void;
-      // Clone scene node, components and child nodes. Return the clone.
-      clone(mode?: CreateMode): Node;
-      // Remove from the parent node. If no other shared pointer references exist, causes immediate deletion.
-      remove(): void;
-      // Set parent scene node. Retains the world transform.
-      setParent(parent: Node): void;
-      // Add listener component that is notified of node being dirtied. Can either be in the same node or another.
-      addListener(component: Component): void;
-      // Remove listener component.
-      removeListener(component: Component): void;
-      // Return ID.
-      getID(): number;
-      // Return name.
-      getName(): string;
-      // Return name hash.
-      getNameHash(): string;
-      // Return parent scene node.
-      getParent(): Node;
-      // Return scene.
-      getScene(): Scene;
-      // Return whether is enabled. Disables nodes effectively disable all their components.
-      isEnabled(): boolean;
-      // Returns the node's last own enabled state. May be different than the value returned by IsEnabled when SetDeepEnabled has been used.
-      isEnabledSelf(): boolean;
-      // Return position in parent space.
-      getPosition(): Vector3;
-      // Return position in parent space (for Atomic2D).
-      getPosition2D(): Vector2;
-      // Return rotation in parent space.
-      getRotation(): Quaternion;
-      // Return rotation in parent space (for Atomic2D).
-      getRotation2D(): number;
-      // Return forward direction in parent space. Positive Z axis equals identity rotation.
-      getDirection(): Vector3;
-      // Return up direction in parent space. Positive Y axis equals identity rotation.
-      getUp(): Vector3;
-      // Return right direction in parent space. Positive X axis equals identity rotation.
-      getRight(): Vector3;
-      // Return scale in parent space.
-      getScale(): Vector3;
-      // Return scale in parent space (for Atomic2D).
-      getScale2D(): Vector2;
-      // Return position in world space.
-      getWorldPosition(): Vector3;
-      // Return position in world space (for Atomic2D).
-      getWorldPosition2D(): Vector2;
-      // Return rotation in world space.
-      getWorldRotation(): Quaternion;
-      // Return rotation in world space (for Atomic2D).
-      getWorldRotation2D(): number;
-      // Return direction in world space.
-      getWorldDirection(): Vector3;
-      // Return node's up vector in world space.
-      getWorldUp(): Vector3;
-      // Return node's right vector in world space.
-      getWorldRight(): Vector3;
-      // Return scale in world space.
-      getWorldScale(): Vector3;
-      // Return scale in world space (for Atomic2D).
-      getWorldScale2D(): Vector2;
-      // Convert a local space position or rotation to world space (for Atomic2D).
-      localToWorld2D(vector: Vector2): Vector2;
-      // Convert a world space position or rotation to local space (for Atomic2D).
-      worldToLocal2D(vector: Vector2): Vector2;
-      // Return whether transform has changed and world transform needs recalculation.
-      isDirty(): boolean;
-      // Return number of child scene nodes.
-      getNumChildren(recursive?: boolean): number;
-      // Return child scene node by name.
-      getChild(name: string, recursive?: boolean): Node;
-      // Return number of components.
-      getNumComponents(): number;
-      // Return number of non-local components.
-      getNumNetworkComponents(): number;
-      // Return component by type. If there are several, returns the first.
-      getComponent(type: string): Component;
-      // Return whether has a specific component.
-      hasComponent(type: string): boolean;
-      // Set ID. Called by Scene.
-      setID(id: number): void;
-      // Set scene. Called by Scene.
-      setScene(scene: Scene): void;
-      // Reset scene, ID and owner. Called by Scene.
-      resetScene(): void;
-      // Set network position attribute.
-      setNetPositionAttr(value: Vector3): void;
-      // Return network position attribute.
-      getNetPositionAttr(): Vector3;
-      // Prepare network update by comparing attributes and marking replication states dirty as necessary.
-      prepareNetworkUpdate(): void;
-      // Mark node dirty in scene replication states.
-      markReplicationDirty(): void;
-      // Add a pre-created component.
-      addComponent(component: Component, id: number, mode: CreateMode): void;
-      // Calculate number of non-temporary child nodes.
-      getNumPersistentChildren(): number;
-      // Calculate number of non-temporary components.
-      getNumPersistentComponents(): number;
-      // Set position in parent space silently without marking the node & child nodes dirty. Used by animation code.
-      setPositionSilent(position: Vector3): void;
-      // Set position in parent space silently without marking the node & child nodes dirty. Used by animation code.
-      setRotationSilent(rotation: Quaternion): void;
-      // Set scale in parent space silently without marking the node & child nodes dirty. Used by animation code.
-      setScaleSilent(scale: Vector3): void;
-      // Set local transform silently without marking the node & child nodes dirty. Used by animation code.
-      setTransformSilent(position: Vector3, rotation: Quaternion, scale: Vector3): void;
-      saveXML(file:File):boolean;
-      getChildrenWithName(name:string, recursive?:boolean):Node[];
-      getChildrenWithComponent(componentType:string, recursive?:boolean):Node[];
-      getComponents(componentType?:string, recursive?:boolean):Component[];
-      getChildAtIndex(index:number):Node;
-      createJSComponent(name:string, args?:{});
-      getJSComponent(name:string):JSComponent;
-      createChildPrefab(childName:string, prefabPath:string):Node;
-      loadPrefab(prefabPath:string):boolean;
-
-   }
-
-   export class ObjectAnimation extends Resource {
-
-      // Construct.
-      constructor();
-
-      // Add attribute animation, attribute name can in following format: "attribute" or "#0/#1/attribute" or ""#0/#1/@component#1/attribute.
-      addAttributeAnimation(name: string, attributeAnimation: ValueAnimation, wrapMode?: WrapMode, speed?: number): void;
-      // Return attribute animation by name.
-      getAttributeAnimation(name: string): ValueAnimation;
-      // Return attribute animation wrap mode by name.
-      getAttributeAnimationWrapMode(name: string): WrapMode;
-      // Return attribute animation speed by name.
-      getAttributeAnimationSpeed(name: string): number;
-      // Return attribute animation info by name.
-      getAttributeAnimationInfo(name: string): ValueAnimationInfo;
-
-   }
-
-   export class PrefabComponent extends Component {
-
-      prefabGUID: string;
-
-      // Construct.
-      constructor();
-
-      setPrefabGUID(guid: string): void;
-      getPrefabGUID(): string;
-      savePrefab(): boolean;
-      undoPrefab(): void;
-      breakPrefab(): void;
-
-   }
-
-   export class Scene extends Node {
-
-      updateEnabled: boolean;
-      timeScale: number;
-      elapsedTime: number;
-      smoothingConstant: number;
-      snapThreshold: number;
-      asyncLoadingMs: number;
-      asyncProgress: number;
-      asyncLoadMode: LoadMode;
-      fileName: string;
-      checksum: number;
-      varNamesAttr: string;
-
-      // Construct.
-      constructor();
-
-      // Load from a binary file asynchronously. Return true if started successfully. The LOAD_RESOURCES_ONLY mode can also be used to preload resources from object prefab files.
-      loadAsync(file: File, mode?: LoadMode): boolean;
-      // Load from an XML file asynchronously. Return true if started successfully. The LOAD_RESOURCES_ONLY mode can also be used to preload resources from object prefab files.
-      loadAsyncXML(file: File, mode?: LoadMode): boolean;
-      // Stop asynchronous loading.
-      stopAsyncLoading(): void;
-      // Clear scene completely of either replicated, local or all nodes and components.
-      clear(clearReplicated?: boolean, clearLocal?: boolean): void;
-      // Enable or disable scene update.
-      setUpdateEnabled(enable: boolean): void;
-      // Set update time scale. 1.0 = real time (default.)
-      setTimeScale(scale: number): void;
-      // Set elapsed time in seconds. This can be used to prevent inaccuracy in the timer if the scene runs for a long time.
-      setElapsedTime(time: number): void;
-      // Set network client motion smoothing constant.
-      setSmoothingConstant(constant: number): void;
-      // Set network client motion smoothing snap threshold.
-      setSnapThreshold(threshold: number): void;
-      // Set maximum milliseconds per frame to spend on async scene loading.
-      setAsyncLoadingMs(ms: number): void;
-      // Clear required package files.
-      clearRequiredPackageFiles(): void;
-      // Register a node user variable hash reverse mapping (for editing.)
-      registerVar(name: string): void;
-      // Unregister a node user variable hash reverse mapping.
-      unregisterVar(name: string): void;
-      // Clear all registered node user variable hash reverse mappings.
-      unregisterAllVars(): void;
-      // Return node from the whole scene by ID, or null if not found.
-      getNode(id: number): Node;
-      // Return whether updates are enabled.
-      isUpdateEnabled(): boolean;
-      // Return whether an asynchronous loading operation is in progress.
-      isAsyncLoading(): boolean;
-      // Return asynchronous loading progress between 0.0 and 1.0, or 1.0 if not in progress.
-      getAsyncProgress(): number;
-      // Return the load mode of the current asynchronous loading operation.
-      getAsyncLoadMode(): LoadMode;
-      // Return source file name.
-      getFileName(): string;
-      // Return source file checksum.
-      getChecksum(): number;
-      // Return update time scale.
-      getTimeScale(): number;
-      // Return elapsed time in seconds.
-      getElapsedTime(): number;
-      // Return motion smoothing constant.
-      getSmoothingConstant(): number;
-      // Return motion smoothing snap threshold.
-      getSnapThreshold(): number;
-      // Return maximum milliseconds per frame to spend on async loading.
-      getAsyncLoadingMs(): number;
-      // Return a node user variable name, or empty if not registered.
-      getVarName(hash: string): string;
-      // Update scene. Called by HandleUpdate.
-      update(timeStep: number): void;
-      // Begin a threaded update. During threaded update components can choose to delay dirty processing.
-      beginThreadedUpdate(): void;
-      // End a threaded update. Notify components that marked themselves for delayed dirty processing.
-      endThreadedUpdate(): void;
-      // Add a component to the delayed dirty notify queue. Is thread-safe.
-      delayedMarkedDirty(component: Component): void;
-      // Return threaded update flag.
-      isThreadedUpdate(): boolean;
-      // Get free node ID, either non-local or local.
-      getFreeNodeID(mode: CreateMode): number;
-      // Get free component ID, either non-local or local.
-      getFreeComponentID(mode: CreateMode): number;
-      // Node added. Assign scene pointer and add to ID map.
-      nodeAdded(node: Node): void;
-      // Node removed. Remove from ID map.
-      nodeRemoved(node: Node): void;
-      // Component added. Add to ID map.
-      componentAdded(component: Component): void;
-      // Component removed. Remove from ID map.
-      componentRemoved(component: Component): void;
-      // Set node user variable reverse mappings.
-      setVarNamesAttr(value: string): void;
-      // Return node user variable reverse mappings.
-      getVarNamesAttr(): string;
-      // Prepare network update by comparing attributes and marking replication states dirty as necessary.
-      prepareNetworkUpdate(): void;
-      getMainCamera():Camera;
-
-   }
-
-   export class Serializable extends AObject {
-
-      temporary: boolean;
-      numAttributes: number;
-      numNetworkAttributes: number;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Return whether should save default-valued attributes into XML. Default false.
-      saveDefaultAttributes(): boolean;
-      // Mark for attribute check on the next network update.
-      markNetworkUpdate(): void;
-      // Reset all editable attributes to their default values.
-      resetToDefault(): void;
-      // Remove instance's default values if they are set previously.
-      removeInstanceDefault(): void;
-      // Set temporary flag. Temporary objects will not be saved.
-      setTemporary(enable: boolean): void;
-      // Enable interception of an attribute from network updates. Intercepted attributes are sent as events instead of applying directly. This can be used to implement client side prediction.
-      setInterceptNetworkUpdate(attributeName: string, enable: boolean): void;
-      // Allocate network attribute state.
-      allocateNetworkState(): void;
-      // Return number of attributes.
-      getNumAttributes(): number;
-      // Return number of network replication attributes.
-      getNumNetworkAttributes(): number;
-      // Return whether is temporary.
-      isTemporary(): boolean;
-      // Return whether an attribute's network updates are being intercepted.
-      getInterceptNetworkUpdate(attributeName: string): boolean;
-      getAttributes():AttributeInfo[];
-      getAttribute(name:string):any;
-      setAttribute(name:string, value:any):void;
-
-   }
-
-   export class SmoothedTransform extends Component {
-
-      targetPosition: Vector3;
-      targetRotation: Quaternion;
-      targetWorldPosition: Vector3;
-      targetWorldRotation: Quaternion;
-
-      // Construct.
-      constructor();
-
-      // Update smoothing.
-      update(constant: number, squaredSnapThreshold: number): void;
-      // Set target position in parent space.
-      setTargetPosition(position: Vector3): void;
-      // Set target rotation in parent space.
-      setTargetRotation(rotation: Quaternion): void;
-      // Set target position in world space.
-      setTargetWorldPosition(position: Vector3): void;
-      // Set target rotation in world space.
-      setTargetWorldRotation(rotation: Quaternion): void;
-      // Return target position in parent space.
-      getTargetPosition(): Vector3;
-      // Return target rotation in parent space.
-      getTargetRotation(): Quaternion;
-      // Return target position in world space.
-      getTargetWorldPosition(): Vector3;
-      // Return target rotation in world space.
-      getTargetWorldRotation(): Quaternion;
-      // Return whether smoothing is in progress.
-      isInProgress(): boolean;
-
-   }
-
-   export class SplinePath extends Component {
-
-      interpolationMode: InterpolationMode;
-      speed: number;
-      position: Vector3;
-      controlledNode: Node;
-      controlledIdAttr: number;
-
-      // Construct an Empty SplinePath.
-      constructor();
-
-      // Apply Attributes to the SplinePath.
-      applyAttributes(): void;
-      // Draw the Debug Geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Add a Node to the SplinePath as a Control Point.
-      addControlPoint(point: Node, index?: number): void;
-      // Remove a Node Control Point from the SplinePath.
-      removeControlPoint(point: Node): void;
-      // Clear the Control Points from the SplinePath.
-      clearControlPoints(): void;
-      // Set the Interpolation Mode.
-      setInterpolationMode(interpolationMode: InterpolationMode): void;
-      // Set the movement Speed.
-      setSpeed(speed: number): void;
-      // Set the controlled Node's position on the SplinePath.
-      setPosition(factor: number): void;
-      // Set the Node to be moved along the SplinePath.
-      setControlledNode(controlled: Node): void;
-      // Get the Interpolation Mode.
-      getInterpolationMode(): InterpolationMode;
-      // Get the movement Speed.
-      getSpeed(): number;
-      // Get the parent Node's last position on the spline.
-      getPosition(): Vector3;
-      // Get the controlled Node.
-      getControlledNode(): Node;
-      // Get a point on the SplinePath from 0.f to 1.f where 0 is the start and 1 is the end.
-      getPoint(factor: number): Vector3;
-      // Move the controlled Node to the next position along the SplinePath based off the Speed value.
-      move(timeStep: number): void;
-      // Reset movement along the path.
-      reset(): void;
-      // Returns whether the movement along the SplinePath is complete.
-      isFinished(): boolean;
-      // Set Controlled Node ID attribute.
-      setControlledIdAttr(value: number): void;
-      // Get Controlled Node ID attribute.
-      getControlledIdAttr(): number;
-
-   }
-
-   export class ValueAnimation extends Resource {
-
-      interpolationMethod: InterpMethod;
-      splineTension: number;
-      valueType: VariantType;
-      beginTime: number;
-      endTime: number;
-
-      // Construct.
-      constructor();
-
-      // Set interpolation method.
-      setInterpolationMethod(method: InterpMethod): void;
-      // Set spline tension, should be between 0.0f and 1.0f, but this is not a must.
-      setSplineTension(tension: number): void;
-      // Set value type.
-      setValueType(valueType: VariantType): void;
-      // Return animation is valid.
-      isValid(): boolean;
-      // Return interpolation method.
-      getInterpolationMethod(): InterpMethod;
-      // Return spline tension.
-      getSplineTension(): number;
-      // Return value type.
-      getValueType(): VariantType;
-      // Return begin time.
-      getBeginTime(): number;
-      // Return end time.
-      getEndTime(): number;
-      // Has event frames.
-      hasEventFrames(): boolean;
-
-   }
-
-   export class ValueAnimationInfo extends RefCounted {
-
-      wrapMode: WrapMode;
-      speed: number;
-      target: AObject;
-      animation: ValueAnimation;
-
-      // Construct without target object.
-      constructor(animation: ValueAnimation, wrapMode: WrapMode, speed: number);
-
-      // Update. Return true when the animation is finished. No-op when the target object is not defined.
-      update(timeStep: number): boolean;
-      // Set wrap mode.
-      setWrapMode(wrapMode: WrapMode): void;
-      // Set speed.
-      setSpeed(speed: number): void;
-      // Return target object.
-      getTarget(): AObject;
-      // Return animation.
-      getAnimation(): ValueAnimation;
-      // Return wrap mode.
-      getWrapMode(): WrapMode;
-      // Return speed.
-      getSpeed(): number;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Graphics
-//----------------------------------------------------
-
-
-   export class Camera extends Component {
-
-      nearClip: number;
-      farClip: number;
-      fov: number;
-      orthoSize: number;
-      aspectRatio: number;
-      fillMode: FillMode;
-      zoom: number;
-      lodBias: number;
-      viewMask: number;
-      viewOverrideFlags: number;
-      orthographic: boolean;
-      autoAspectRatio: boolean;
-      projectionOffset: Vector2;
-      useReflection: boolean;
-      useClipping: boolean;
-      flipVertical: boolean;
-      halfViewSize: number;
-      reverseCulling: boolean;
-      aspectRatioInternal: number;
-      orthoSizeAttr: number;
-      reflectionPlaneAttr: Vector4;
-      clipPlaneAttr: Vector4;
-
-      // Construct.
-      constructor();
-
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set near clip distance.
-      setNearClip(nearClip: number): void;
-      // Set far clip distance.
-      setFarClip(farClip: number): void;
-      // Set vertical field of view in degrees.
-      setFov(fov: number): void;
-      // Set orthographic mode view uniform size.
-      setOrthoSize(orthoSize: number): void;
-      // Set aspect ratio manually. Disables the auto aspect ratio -mode.
-      setAspectRatio(aspectRatio: number): void;
-      // Set polygon fill mode to use when rendering a scene.
-      setFillMode(mode: FillMode): void;
-      // Set zoom.
-      setZoom(zoom: number): void;
-      // Set LOD bias.
-      setLodBias(bias: number): void;
-      // Set view mask. Will be and'ed with object's view mask to see if the object should be rendered.
-      setViewMask(mask: number): void;
-      // Set view override flags.
-      setViewOverrideFlags(flags: number): void;
-      // Set orthographic mode enabled/disabled.
-      setOrthographic(enable: boolean): void;
-      // Set automatic aspect ratio based on viewport dimensions. Enabled by default.
-      setAutoAspectRatio(enable: boolean): void;
-      // Set projection offset. It needs to be calculated as (offset in pixels) / (viewport dimensions.)
-      setProjectionOffset(offset: Vector2): void;
-      // Set reflection mode.
-      setUseReflection(enable: boolean): void;
-      // Set whether to use a custom clip plane.
-      setUseClipping(enable: boolean): void;
-      // Set vertical flipping mode. Called internally by View to resolve OpenGL / Direct3D9 rendertarget sampling differences.
-      setFlipVertical(enable: boolean): void;
-      // Return far clip distance.
-      getFarClip(): number;
-      // Return near clip distance.
-      getNearClip(): number;
-      // Return vertical field of view in degrees.
-      getFov(): number;
-      // Return orthographic mode size.
-      getOrthoSize(): number;
-      // Return aspect ratio.
-      getAspectRatio(): number;
-      // Return zoom.
-      getZoom(): number;
-      // Return LOD bias.
-      getLodBias(): number;
-      // Return view mask.
-      getViewMask(): number;
-      // Return view override flags.
-      getViewOverrideFlags(): number;
-      // Return fill mode.
-      getFillMode(): FillMode;
-      // Return orthographic flag.
-      isOrthographic(): boolean;
-      // Return auto aspect ratio flag.
-      getAutoAspectRatio(): boolean;
-      // Return frustum near and far sizes.
-      getFrustumSize(near: Vector3, far: Vector3): void;
-      // Return half view size.
-      getHalfViewSize(): number;
-      worldToScreenPoint(worldPos: Vector3): Vector2;
-      screenToWorldPoint(screenPos: Vector3): Vector3;
-      // Return projection offset.
-      getProjectionOffset(): Vector2;
-      // Return whether is using reflection.
-      getUseReflection(): boolean;
-      // Return whether is using a custom clipping plane.
-      getUseClipping(): boolean;
-      // Return vertical flipping mode.
-      getFlipVertical(): boolean;
-      // Return whether to reverse culling; affected by vertical flipping and reflection.
-      getReverseCulling(): boolean;
-      // Return distance to position. In orthographic mode uses only Z coordinate.
-      getDistance(worldPos: Vector3): number;
-      // Return squared distance to position. In orthographic mode uses only Z coordinate.
-      getDistanceSquared(worldPos: Vector3): number;
-      // Return a scene node's LOD scaled distance.
-      getLodDistance(distance: number, scale: number, bias: number): number;
-      // Return a world rotation for facing a camera on certain axes based on the existing world rotation.
-      getFaceCameraRotation(position: Vector3, rotation: Quaternion, mode: FaceCameraMode): Quaternion;
-      // Return if projection parameters are valid for rendering and raycasting.
-      isProjectionValid(): boolean;
-      // Set aspect ratio without disabling the "auto aspect ratio" mode. Called internally by View.
-      setAspectRatioInternal(aspectRatio: number): void;
-      // Set orthographic size attribute without forcing the aspect ratio.
-      setOrthoSizeAttr(orthoSize: number): void;
-      // Set reflection plane attribute.
-      setReflectionPlaneAttr(value: Vector4): void;
-      // Return reflection plane attribute.
-      getReflectionPlaneAttr(): Vector4;
-      // Set clipping plane attribute.
-      setClipPlaneAttr(value: Vector4): void;
-      // Return clipping plane attribute.
-      getClipPlaneAttr(): Vector4;
-
-   }
-
-   export class DebugRenderer extends Component {
-
-      view: Camera;
-
-      // Construct.
-      constructor();
-
-      // Set the camera viewpoint. Call before rendering, or before adding geometry if you want to use culling.
-      setView(camera: Camera): void;
-      // Add a scene node represented as its coordinate axes.
-      addNode(node: Node, scale?: number, depthTest?: boolean): void;
-      // Add a bounding box.
-      addBoundingBox(box: BoundingBox, color: Color, depthTest?: boolean): void;
-      // Add a cylinder
-      addCylinder(position: Vector3, radius: number, height: number, color: Color, depthTest?: boolean): void;
-      // Update vertex buffer and render all debug lines. The viewport and rendertarget should be set before.
-      render(): void;
-      // Check whether a bounding box is inside the view frustum.
-      isInside(box: BoundingBox): boolean;
-      // Return whether has something to render.
-      hasContent(): boolean;
-
-   }
-
-   export class Drawable extends Component {
-
-      updateGeometryType: UpdateGeometryType;
-      numOccluderTriangles: number;
-      drawDistance: number;
-      shadowDistance: number;
-      lodBias: number;
-      viewMask: number;
-      lightMask: number;
-      shadowMask: number;
-      zoneMask: number;
-      maxLights: number;
-      castShadows: boolean;
-      occluder: boolean;
-      occludee: boolean;
-      boundingBox: BoundingBox;
-      worldBoundingBox: BoundingBox;
-      drawableFlags: number;
-      sortValue: number;
-      basePass: number;
-      zone: Zone;
-      distance: number;
-      lodDistance: number;
-      firstLight: Light;
-      minZ: number;
-      maxZ: number;
-
-      // Construct.
-      constructor(drawableFlags: number);
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-      getUpdateGeometryType(): UpdateGeometryType;
-      // Return number of occlusion geometry triangles.
-      getNumOccluderTriangles(): number;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set draw distance.
-      setDrawDistance(distance: number): void;
-      // Set shadow draw distance.
-      setShadowDistance(distance: number): void;
-      // Set LOD bias.
-      setLodBias(bias: number): void;
-      // Set view mask. Is and'ed with camera's view mask to see if the object should be rendered.
-      setViewMask(mask: number): void;
-      // Set light mask. Is and'ed with light's and zone's light mask to see if the object should be lit.
-      setLightMask(mask: number): void;
-      // Set shadow mask. Is and'ed with light's light mask and zone's shadow mask to see if the object should be rendered to a shadow map.
-      setShadowMask(mask: number): void;
-      // Set zone mask. Is and'ed with zone's zone mask to see if the object should belong to the zone.
-      setZoneMask(mask: number): void;
-      // Set maximum number of per-pixel lights. Default 0 is unlimited.
-      setMaxLights(num: number): void;
-      // Set shadowcaster flag.
-      setCastShadows(enable: boolean): void;
-      // Set occlusion flag.
-      setOccluder(enable: boolean): void;
-      // Set occludee flag.
-      setOccludee(enable: boolean): void;
-      // Mark for update and octree reinsertion. Update is automatically queued when the drawable's scene node moves or changes scale.
-      markForUpdate(): void;
-      // Return local space bounding box. May not be applicable or properly updated on all drawables.
-      getBoundingBox(): BoundingBox;
-      // Return world-space bounding box.
-      getWorldBoundingBox(): BoundingBox;
-      // Return drawable flags.
-      getDrawableFlags(): number;
-      // Return draw distance.
-      getDrawDistance(): number;
-      // Return shadow draw distance.
-      getShadowDistance(): number;
-      // Return LOD bias.
-      getLodBias(): number;
-      // Return view mask.
-      getViewMask(): number;
-      // Return light mask.
-      getLightMask(): number;
-      // Return shadow mask.
-      getShadowMask(): number;
-      // Return zone mask.
-      getZoneMask(): number;
-      // Return maximum number of per-pixel lights.
-      getMaxLights(): number;
-      // Return shadowcaster flag.
-      getCastShadows(): boolean;
-      // Return occluder flag.
-      isOccluder(): boolean;
-      // Return occludee flag.
-      isOccludee(): boolean;
-      // Set new zone. Zone assignment may optionally be temporary, meaning it needs to be re-evaluated on the next frame.
-      setZone(zone: Zone, temporary?: boolean): void;
-      // Set sorting value.
-      setSortValue(value: number): void;
-      // Set view-space depth bounds.
-      setMinMaxZ(minZ: number, maxZ: number): void;
-      // Mark in view without specifying a camera. Used for shadow casters.
-      markInView(frameNumber: number): void;
-      // Sort and limit per-pixel lights to maximum allowed. Convert extra lights into vertex lights.
-      limitLights(): void;
-      // Sort and limit per-vertex lights to maximum allowed.
-      limitVertexLights(removeConvertedLights: boolean): void;
-      // Set base pass flag for a batch.
-      setBasePass(batchIndex: number): void;
-      // Return current zone.
-      getZone(): Zone;
-      // Return whether current zone is inconclusive or dirty due to the drawable moving.
-      isZoneDirty(): boolean;
-      // Return distance from camera.
-      getDistance(): number;
-      // Return LOD scaled distance from camera.
-      getLodDistance(): number;
-      // Return sorting value.
-      getSortValue(): number;
-      // Return whether has a base pass.
-      hasBasePass(batchIndex: number): boolean;
-      // Return the first added per-pixel light.
-      getFirstLight(): Light;
-      // Return the minimum view-space depth.
-      getMinZ(): number;
-      // Return the maximum view-space depth.
-      getMaxZ(): number;
-      addLight(light: Light): void;
-      addVertexLight(light: Light): void;
-
-   }
-
-   export class Light extends Drawable {
-
-      lightType: LightType;
-      perVertex: boolean;
-      color: Color;
-      specularIntensity: number;
-      brightness: number;
-      range: number;
-      fov: number;
-      aspectRatio: number;
-      fadeDistance: number;
-      shadowFadeDistance: number;
-      shadowIntensity: number;
-      shadowResolution: number;
-      shadowNearFarRatio: number;
-      rampTexture: Texture;
-      shapeTexture: Texture;
-      effectiveColor: Color;
-      effectiveSpecularIntensity: number;
-      numShadowSplits: number;
-
-      // Construct.
-      constructor();
-
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set light type.
-      setLightType(type: LightType): void;
-      // Set vertex lighting mode.
-      setPerVertex(enable: boolean): void;
-      // Set color.
-      setColor(color: Color): void;
-      // Set specular intensity. Zero disables specular calculations.
-      setSpecularIntensity(intensity: number): void;
-      // Set light brightness multiplier. Both the color and specular intensity are multiplied with this to get final values for rendering.
-      setBrightness(brightness: number): void;
-      // Set range.
-      setRange(range: number): void;
-      // Set spotlight field of view.
-      setFov(fov: number): void;
-      // Set spotlight aspect ratio.
-      setAspectRatio(aspectRatio: number): void;
-      // Set fade out start distance.
-      setFadeDistance(distance: number): void;
-      // Set shadow fade out start distance. Only has effect if shadow distance is also non-zero.
-      setShadowFadeDistance(distance: number): void;
-      // Set shadow intensity between 0.0 - 1.0. 0.0 (the default) gives fully dark shadows.
-      setShadowIntensity(intensity: number): void;
-      // Set shadow resolution between 0.25 - 1.0. Determines the shadow map to use.
-      setShadowResolution(resolution: number): void;
-      // Set shadow camera near/far clip distance ratio.
-      setShadowNearFarRatio(nearFarRatio: number): void;
-      // Set range attenuation texture.
-      setRampTexture(texture: Texture): void;
-      // Set spotlight attenuation texture.
-      setShapeTexture(texture: Texture): void;
-      // Return light type.
-      getLightType(): LightType;
-      // Return vertex lighting mode.
-      getPerVertex(): boolean;
-      // Return color.
-      getColor(): Color;
-      // Return specular intensity.
-      getSpecularIntensity(): number;
-      // Return brightness multiplier.
-      getBrightness(): number;
-      // Return effective color, multiplied by brightness. Do not multiply the alpha so that can compare against the default black color to detect a light with no effect.
-      getEffectiveColor(): Color;
-      // Return effective specular intensity, multiplied by absolute value of brightness.
-      getEffectiveSpecularIntensity(): number;
-      // Return range.
-      getRange(): number;
-      // Return spotlight field of view.
-      getFov(): number;
-      // Return spotlight aspect ratio.
-      getAspectRatio(): number;
-      // Return fade start distance.
-      getFadeDistance(): number;
-      // Return shadow fade start distance.
-      getShadowFadeDistance(): number;
-      // Return shadow intensity.
-      getShadowIntensity(): number;
-      // Return shadow resolution.
-      getShadowResolution(): number;
-      // Return shadow camera near/far clip distance ratio.
-      getShadowNearFarRatio(): number;
-      // Return range attenuation texture.
-      getRampTexture(): Texture;
-      // Return spotlight attenuation texture.
-      getShapeTexture(): Texture;
-      // Return number of shadow map cascade splits for a directional light, considering also graphics API limitations.
-      getNumShadowSplits(): number;
-      // Return whether light has negative (darkening) color.
-      isNegative(): boolean;
-      // Return a divisor value based on intensity for calculating the sort value.
-      getIntensityDivisor(attenuation?: number): number;
-      getShadowCascade():Number[];
-      setShadowCascade(args:Number[]);
-      setShadowCascadeParameter(index:number, value:number);
-
-   }
-
-   export class Material extends Resource {
-
-      numTechniques: number;
-      cullMode: CullMode;
-      shadowCullMode: CullMode;
-      fillMode: FillMode;
-      scene: Scene;
-      auxViewFrameNumber: number;
-      occlusion: boolean;
-      specular: boolean;
-      shaderParameterHash: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Set number of techniques.
-      setNumTechniques(num: number): void;
-      // Set technique.
-      setTechnique(index: number, tech: Technique, qualityLevel?: number, lodDistance?: number): void;
-      setShaderParameterAnimation(name: string, animation: ValueAnimation, wrapMode?: WrapMode, speed?: number): void;
-      // Set shader parameter animation wrap mode.
-      setShaderParameterAnimationWrapMode(name: string, wrapMode: WrapMode): void;
-      // Set shader parameter animation speed.
-      setShaderParameterAnimationSpeed(name: string, speed: number): void;
-      // Set texture.
-      setTexture(unit: TextureUnit, texture: Texture): void;
-      // Set culling mode.
-      setCullMode(mode: CullMode): void;
-      // Set culling mode for shadows.
-      setShadowCullMode(mode: CullMode): void;
-      // Set polygon fill mode. Interacts with the camera's fill mode setting so that the "least filled" mode will be used.
-      setFillMode(mode: FillMode): void;
-      // Associate the material with a scene to ensure that shader parameter animation happens in sync with scene update, respecting the scene time scale. If no scene is set, the global update events will be used.
-      setScene(scene: Scene): void;
-      // Remove shader parameter.
-      removeShaderParameter(name: string): void;
-      // Reset all shader pointers.
-      releaseShaders(): void;
-      // Clone the material.
-      clone(cloneName?: string): Material;
-      // Ensure that material techniques are listed in correct order.
-      sortTechniques(): void;
-      // Mark material for auxiliary view rendering.
-      markForAuxView(frameNumber: number): void;
-      // Return number of techniques.
-      getNumTechniques(): number;
-      // Return technique by index.
-      getTechnique(index: number): Technique;
-      // Return pass by technique index and pass name.
-      getPass(index: number, passName: string): Pass;
-      // Return texture by unit.
-      getTexture(unit: TextureUnit): Texture;
-      // Return shader parameter animation.
-      getShaderParameterAnimation(name: string): ValueAnimation;
-      // Return shader parameter animation wrap mode.
-      getShaderParameterAnimationWrapMode(name: string): WrapMode;
-      // Return shader parameter animation speed.
-      getShaderParameterAnimationSpeed(name: string): number;
-      // Return normal culling mode.
-      getCullMode(): CullMode;
-      // Return culling mode for shadows.
-      getShadowCullMode(): CullMode;
-      // Return polygon fill mode.
-      getFillMode(): FillMode;
-      // Return last auxiliary view rendered frame number.
-      getAuxViewFrameNumber(): number;
-      // Return whether should render occlusion.
-      getOcclusion(): boolean;
-      // Return whether should render specular.
-      getSpecular(): boolean;
-      // Return the scene associated with the material for shader parameter animation updates.
-      getScene(): Scene;
-      // Return shader parameter hash value. Used as an optimization to avoid setting shader parameters unnecessarily.
-      getShaderParameterHash(): number;
-      // Return name for texture unit.
-      getTextureUnitName(unit: TextureUnit): string;
-      static getTextureUnitName(unit:TextureUnit):string;
-      getShaderParameters():ShaderParameter[];
-
-   }
-
-   export class Octree extends Component {
-
-      numLevels: number;
-
-      // Construct.
-      constructor();
-
-      // Set size and maximum subdivision levels. If octree is not empty, drawable objects will be temporarily moved to the root.
-      setSize(box: BoundingBox, numLevels: number): void;
-      // Add a drawable manually.
-      addManualDrawable(drawable: Drawable): void;
-      // Remove a manually added drawable.
-      removeManualDrawable(drawable: Drawable): void;
-      // Return subdivision levels.
-      getNumLevels(): number;
-      // Mark drawable object as requiring an update and a reinsertion.
-      queueUpdate(drawable: Drawable): void;
-      // Cancel drawable object's update.
-      cancelUpdate(drawable: Drawable): void;
-
-   }
-
-   export class Renderer extends AObject {
-
-      numViewports: number;
-      hDRRendering: boolean;
-      specularLighting: boolean;
-      textureAnisotropy: number;
-      textureFilterMode: TextureFilterMode;
-      textureQuality: number;
-      materialQuality: number;
-      drawShadows: boolean;
-      shadowMapSize: number;
-      shadowQuality: number;
-      reuseShadowMaps: boolean;
-      maxShadowMaps: number;
-      dynamicInstancing: boolean;
-      minInstances: number;
-      maxSortedInstances: number;
-      maxOccluderTriangles: number;
-      occlusionBufferSize: number;
-      occluderSizeThreshold: number;
-      mobileShadowBiasMul: number;
-      mobileShadowBiasAdd: number;
-      defaultRenderPath: RenderPath;
-      numViews: number;
-      numPrimitives: number;
-      numBatches: number;
-      defaultZone: Zone;
-      defaultMaterial: Material;
-      defaultLightRamp: Texture2D;
-      defaultLightSpot: Texture2D;
-      faceSelectCubeMap: TextureCube;
-      indirectionCubeMap: TextureCube;
-      shadowCamera: Camera;
-
-      // Construct.
-      constructor();
-
-      // Set number of backbuffer viewports to render.
-      setNumViewports(num: number): void;
-      // Set a backbuffer viewport.
-      setViewport(index: number, viewport: Viewport): void;
-      // Set HDR rendering on/off.
-      setHDRRendering(enable: boolean): void;
-      // Set specular lighting on/off.
-      setSpecularLighting(enable: boolean): void;
-      // Set texture anisotropy.
-      setTextureAnisotropy(level: number): void;
-      // Set texture filtering.
-      setTextureFilterMode(mode: TextureFilterMode): void;
-      // Set texture quality level. See the QUALITY constants in GraphicsDefs.h.
-      setTextureQuality(quality: number): void;
-      // Set material quality level. See the QUALITY constants in GraphicsDefs.h.
-      setMaterialQuality(quality: number): void;
-      // Set shadows on/off.
-      setDrawShadows(enable: boolean): void;
-      // Set shadow map resolution.
-      setShadowMapSize(size: number): void;
-      // Set shadow quality mode. See the SHADOWQUALITY constants in GraphicsDefs.h.
-      setShadowQuality(quality: number): void;
-      // Set reuse of shadow maps. Default is true. If disabled, also transparent geometry can be shadowed.
-      setReuseShadowMaps(enable: boolean): void;
-      // Set maximum number of shadow maps created for one resolution. Only has effect if reuse of shadow maps is disabled.
-      setMaxShadowMaps(shadowMaps: number): void;
-      // Set dynamic instancing on/off.
-      setDynamicInstancing(enable: boolean): void;
-      // Set minimum number of instances required in a batch group to render as instanced.
-      setMinInstances(instances: number): void;
-      // Set maximum number of sorted instances per batch group. If exceeded, instances are rendered unsorted.
-      setMaxSortedInstances(instances: number): void;
-      // Set maximum number of occluder trianges.
-      setMaxOccluderTriangles(triangles: number): void;
-      // Set occluder buffer width.
-      setOcclusionBufferSize(size: number): void;
-      // Set required screen size (1.0 = full screen) for occluders.
-      setOccluderSizeThreshold(screenSize: number): void;
-      // Set shadow depth bias multiplier for mobile platforms (OpenGL ES.) No effect on desktops. Default 2.
-      setMobileShadowBiasMul(mul: number): void;
-      // Set shadow depth bias addition for mobile platforms (OpenGL ES.)  No effect on desktops. Default 0.0001.
-      setMobileShadowBiasAdd(add: number): void;
-      // Force reload of shaders.
-      reloadShaders(): void;
-      // Return number of backbuffer viewports.
-      getNumViewports(): number;
-      // Return backbuffer viewport by index.
-      getViewport(index: number): Viewport;
-      // Return default renderpath.
-      getDefaultRenderPath(): RenderPath;
-      // Return whether HDR rendering is enabled.
-      getHDRRendering(): boolean;
-      // Return whether specular lighting is enabled.
-      getSpecularLighting(): boolean;
-      // Return whether drawing shadows is enabled.
-      getDrawShadows(): boolean;
-      // Return texture anisotropy.
-      getTextureAnisotropy(): number;
-      // Return texture filtering.
-      getTextureFilterMode(): TextureFilterMode;
-      // Return texture quality level.
-      getTextureQuality(): number;
-      // Return material quality level.
-      getMaterialQuality(): number;
-      // Return shadow map resolution.
-      getShadowMapSize(): number;
-      // Return shadow quality.
-      getShadowQuality(): number;
-      // Return whether shadow maps are reused.
-      getReuseShadowMaps(): boolean;
-      // Return maximum number of shadow maps per resolution.
-      getMaxShadowMaps(): number;
-      // Return whether dynamic instancing is in use.
-      getDynamicInstancing(): boolean;
-      // Return minimum number of instances required in a batch group to render as instanced.
-      getMinInstances(): number;
-      // Return maximum number of sorted instances per batch group.
-      getMaxSortedInstances(): number;
-      // Return maximum number of occluder triangles.
-      getMaxOccluderTriangles(): number;
-      // Return occlusion buffer width.
-      getOcclusionBufferSize(): number;
-      // Return occluder screen size threshold.
-      getOccluderSizeThreshold(): number;
-      // Return shadow depth bias multiplier for mobile platforms.
-      getMobileShadowBiasMul(): number;
-      // Return shadow depth bias addition for mobile platforms.
-      getMobileShadowBiasAdd(): number;
-      // Return number of views rendered.
-      getNumViews(): number;
-      // Return number of primitives rendered.
-      getNumPrimitives(): number;
-      // Return number of batches rendered.
-      getNumBatches(): number;
-      // Return number of geometries rendered.
-      getNumGeometries(allViews?: boolean): number;
-      // Return number of lights rendered.
-      getNumLights(allViews?: boolean): number;
-      // Return number of shadow maps rendered.
-      getNumShadowMaps(allViews?: boolean): number;
-      // Return number of occluders rendered.
-      getNumOccluders(allViews?: boolean): number;
-      // Return the default zone.
-      getDefaultZone(): Zone;
-      // Return the default material.
-      getDefaultMaterial(): Material;
-      // Return the default range attenuation texture.
-      getDefaultLightRamp(): Texture2D;
-      // Return the default spotlight attenuation texture.
-      getDefaultLightSpot(): Texture2D;
-      // Return the shadowed pointlight face selection cube map.
-      getFaceSelectCubeMap(): TextureCube;
-      // Return the shadowed pointlight indirection cube map.
-      getIndirectionCubeMap(): TextureCube;
-      // Update for rendering. Called by HandleRenderUpdate().
-      update(timeStep: number): void;
-      // Render. Called by Engine.
-      render(): void;
-      // Add debug geometry to the debug renderer.
-      drawDebugGeometry(depthTest: boolean): void;
-      // Queue a render surface's viewports for rendering. Called by the surface, or by View.
-      queueRenderSurface(renderTarget: RenderSurface): void;
-      // Queue a viewport for rendering. Null surface means backbuffer.
-      queueViewport(renderTarget: RenderSurface, viewport: Viewport): void;
-      // Allocate a shadow map. If shadow map reuse is disabled, a different map is returned each time.
-      getShadowMap(light: Light, camera: Camera, viewWidth: number, viewHeight: number): Texture2D;
-      // Allocate a rendertarget or depth-stencil texture for deferred rendering or postprocessing. Should only be called during actual rendering, not before.
-      getScreenBuffer(width: number, height: number, format: number, cubemap: boolean, filtered: boolean, srgb: boolean, persistentKey?: number): Texture;
-      // Allocate a depth-stencil surface that does not need to be readable. Should only be called during actual rendering, not before.
-      getDepthStencil(width: number, height: number): RenderSurface;
-      // Allocate a temporary shadow camera and a scene node for it. Is thread-safe.
-      getShadowCamera(): Camera;
-      // Set cull mode while taking possible projection flipping into account.
-      setCullMode(mode: CullMode, camera: Camera): void;
-      // Ensure sufficient size of the instancing vertex buffer. Return true if successful.
-      resizeInstancingBuffer(numInstances: number): boolean;
-      // Save the screen buffer allocation status. Called by View.
-      saveScreenBufferAllocations(): void;
-      // Restore the screen buffer allocation status. Called by View.
-      restoreScreenBufferAllocations(): void;
-      // Optimize a light by scissor rectangle.
-      optimizeLightByScissor(light: Light, camera: Camera): void;
-      // Optimize a light by marking it to the stencil buffer and setting a stencil test.
-      optimizeLightByStencil(light: Light, camera: Camera): void;
-      // Return a scissor rectangle for a light.
-      getLightScissor(light: Light, camera: Camera): Rect;
-
-   }
-
-   export class RenderPath extends RefCounted {
-
-      numRenderTargets: number;
-      numCommands: number;
-
-      // Construct.
-      constructor();
-
-      // Clone the rendering path.
-      clone(): RenderPath;
-      // Clear existing data and load from an XML file. Return true if successful.
-      load(file: XMLFile): boolean;
-      // Append data from an XML file. Return true if successful.
-      append(file: XMLFile): boolean;
-      // Enable/disable commands and rendertargets by tag.
-      setEnabled(tag: string, active: boolean): void;
-      // Toggle enabled state of commands and rendertargets by tag.
-      toggleEnabled(tag: string): void;
-      // Remove rendertargets by tag name.
-      removeRenderTargets(tag: string): void;
-      // Remove a command by index.
-      removeCommand(index: number): void;
-      // Remove commands by tag name.
-      removeCommands(tag: string): void;
-      // Return number of rendertargets.
-      getNumRenderTargets(): number;
-      // Return number of commands.
-      getNumCommands(): number;
-
-   }
-
-   export class Shader extends Resource {
-
-      timeStamp: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Return a variation with defines.
-      getVariation(type: ShaderType, defines: string): ShaderVariation;
-      // Return either vertex or pixel shader source code.
-      getSourceCode(type: ShaderType): string;
-      // Return the latest timestamp of the shader code and its includes.
-      getTimeStamp(): number;
-
-   }
-
-   export class ShaderPrecache extends AObject {
-
-      // Construct and begin collecting shader combinations. Load existing combinations from XML if the file exists.
-      constructor(fileName: string);
-
-      // Collect a shader combination. Called by Graphics when shaders have been set.
-      storeShaders(vs: ShaderVariation, ps: ShaderVariation): void;
-
-   }
-
-   export class Pass extends RefCounted {
-
-      blendMode: BlendMode;
-      depthTestMode: CompareMode;
-      lightingMode: PassLightingMode;
-      depthWrite: boolean;
-      alphaMask: boolean;
-      isDesktop: boolean;
-      vertexShader: string;
-      pixelShader: string;
-      vertexShaderDefines: string;
-      pixelShaderDefines: string;
-      name: string;
-      index: number;
-      shadersLoadedFrameNumber: number;
-
-      // Construct.
-      constructor(passName: string);
-
-      // Set blend mode.
-      setBlendMode(mode: BlendMode): void;
-      // Set depth compare mode.
-      setDepthTestMode(mode: CompareMode): void;
-      // Set pass lighting mode, affects what shader variations will be attempted to be loaded.
-      setLightingMode(mode: PassLightingMode): void;
-      // Set depth write on/off.
-      setDepthWrite(enable: boolean): void;
-      // Set alpha masking hint. Completely opaque draw calls will be performed before alpha masked.
-      setAlphaMask(enable: boolean): void;
-      // Set whether requires desktop level hardware.
-      setIsDesktop(enable: boolean): void;
-      // Set vertex shader name.
-      setVertexShader(name: string): void;
-      // Set pixel shader name.
-      setPixelShader(name: string): void;
-      // Set vertex shader defines.
-      setVertexShaderDefines(defines: string): void;
-      // Set pixel shader defines.
-      setPixelShaderDefines(defines: string): void;
-      // Reset shader pointers.
-      releaseShaders(): void;
-      // Mark shaders loaded this frame.
-      markShadersLoaded(frameNumber: number): void;
-      // Return pass name.
-      getName(): string;
-      // Return pass index. This is used for optimal render-time pass queries that avoid map lookups.
-      getIndex(): number;
-      // Return blend mode.
-      getBlendMode(): BlendMode;
-      // Return depth compare mode.
-      getDepthTestMode(): CompareMode;
-      // Return pass lighting mode.
-      getLightingMode(): PassLightingMode;
-      // Return last shaders loaded frame number.
-      getShadersLoadedFrameNumber(): number;
-      // Return depth write mode.
-      getDepthWrite(): boolean;
-      // Return alpha masking hint.
-      getAlphaMask(): boolean;
-      // Return vertex shader name.
-      getVertexShader(): string;
-      // Return pixel shader name.
-      getPixelShader(): string;
-      // Return vertex shader defines.
-      getVertexShaderDefines(): string;
-      // Return pixel shader defines.
-      getPixelShaderDefines(): string;
-
-   }
-
-   export class Technique extends Resource {
-
-      isDesktop: boolean;
-      numPasses: number;
-
-      // Construct.
-      constructor();
-
-      // Set whether requires desktop level hardware.
-      setIsDesktop(enable: boolean): void;
-      // Create a new pass.
-      createPass(passName: string): Pass;
-      // Remove a pass.
-      removePass(passName: string): void;
-      // Reset shader pointers in all passes.
-      releaseShaders(): void;
-      // Return whether technique is supported by the current hardware.
-      isSupported(): boolean;
-      // Return number of passes.
-      getNumPasses(): number;
-      // Return a pass type index by name. Allocate new if not used yet.
-      getPassIndex(passName: string): number;
-
-   }
-
-   export class View extends AObject {
-
-      graphics: Graphics;
-      renderer: Renderer;
-      scene: Scene;
-      octree: Octree;
-      camera: Camera;
-      renderTarget: RenderSurface;
-      drawDebug: boolean;
-
-      // Construct.
-      constructor();
-
-      // Define with rendertarget and viewport. Return true if successful.
-      define(renderTarget: RenderSurface, viewport: Viewport): boolean;
-      // Render batches.
-      render(): void;
-      // Return graphics subsystem.
-      getGraphics(): Graphics;
-      // Return renderer subsystem.
-      getRenderer(): Renderer;
-      // Return scene.
-      getScene(): Scene;
-      // Return octree.
-      getOctree(): Octree;
-      // Return camera.
-      getCamera(): Camera;
-      // Return the rendertarget. 0 if using the backbuffer.
-      getRenderTarget(): RenderSurface;
-      // Return whether should draw debug geometry.
-      getDrawDebug(): boolean;
-      // Set global (per-frame) shader parameters. Called by Batch and internally by View.
-      setGlobalShaderParameters(): void;
-      // Set camera-specific shader parameters. Called by Batch and internally by View.
-      setCameraShaderParameters(camera: Camera, setProjectionMatrix: boolean): void;
-      // Set G-buffer offset and inverse size shader parameters. Called by Batch and internally by View.
-      setGBufferShaderParameters(texSize: IntVector2, viewRect: IntRect): void;
-
-   }
-
-   export class Viewport extends AObject {
-
-      scene: Scene;
-      camera: Camera;
-      rect: IntRect;
-      renderPath: RenderPath;
-      drawDebug: boolean;
-      view: View;
-      width: number;
-      height: number;
-
-      // Construct with a full rectangle.
-      constructor(scene: Scene, camera: Camera, renderPath?: RenderPath);
-
-      // Set scene.
-      setScene(scene: Scene): void;
-      // Set camera.
-      setCamera(camera: Camera): void;
-      // Set rectangle.
-      setRect(rect: IntRect): void;
-      // Set rendering path from an XML file.
-      setRenderPath(file: XMLFile): void;
-      // Set whether to render debug geometry. Default true.
-      setDrawDebug(enable: boolean): void;
-      // Return scene.
-      getScene(): Scene;
-      // Return camera.
-      getCamera(): Camera;
-      // Return the internal rendering structure. May be null if the viewport has not been rendered yet.
-      getView(): View;
-      // Return rectangle.
-      getRect(): IntRect;
-      // Return the viewport width
-      getWidth(): number;
-      // Return the viewport height
-      getHeight(): number;
-      // Return rendering path.
-      getRenderPath(): RenderPath;
-      // Return whether to draw debug geometry.
-      getDrawDebug(): boolean;
-      worldToScreenPoint(worldPos: Vector3): IntVector2;
-      screenToWorldPoint(x: number, y: number, depth: number): Vector3;
-      // Allocate the view structure. Called by Renderer.
-      allocateView(): void;
-
-   }
-
-   export class Zone extends Drawable {
-
-      boundingBox: BoundingBox;
-      ambientColor: Color;
-      fogColor: Color;
-      fogStart: number;
-      fogEnd: number;
-      fogHeight: number;
-      fogHeightScale: number;
-      priority: number;
-      heightFog: boolean;
-      override: boolean;
-      ambientGradient: boolean;
-      zoneTexture: Texture;
-      ambientStartColor: Color;
-      ambientEndColor: Color;
-
-      // Construct.
-      constructor();
-
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set local-space bounding box. Will be used as an oriented bounding box to test whether objects or the camera are inside.
-      setBoundingBox(box: BoundingBox): void;
-      // Set ambient color
-      setAmbientColor(color: Color): void;
-      // Set fog color.
-      setFogColor(color: Color): void;
-      // Set fog start distance.
-      setFogStart(start: number): void;
-      // Set fog end distance.
-      setFogEnd(end: number): void;
-      // Set fog height distance relative to the scene node's world position. Effective only in height fog mode.
-      setFogHeight(height: number): void;
-      // Set fog height scale. Effective only in height fog mode.
-      setFogHeightScale(scale: number): void;
-      // Set zone priority. If an object or camera is inside several zones, the one with highest priority is used.
-      setPriority(priority: number): void;
-      // Set height fog mode.
-      setHeightFog(enable: boolean): void;
-      // Set override mode. If camera is inside an override zone, that zone will be used for all rendered objects instead of their own zone.
-      setOverride(enable: boolean): void;
-      // Set ambient gradient mode. In gradient mode ambient color is interpolated from neighbor zones.
-      setAmbientGradient(enable: boolean): void;
-      // Set zone texture. This will be bound to the zone texture unit when rendering objects inside the zone. Note that the default shaders do not use it.
-      setZoneTexture(texture: Texture): void;
-      // Return zone's own ambient color, disregarding gradient mode.
-      getAmbientColor(): Color;
-      // Return ambient start color. Not safe to call from worker threads due to possible octree query.
-      getAmbientStartColor(): Color;
-      // Return ambient end color. Not safe to call from worker threads due to possible octree query.
-      getAmbientEndColor(): Color;
-      // Return fog color.
-      getFogColor(): Color;
-      // Return fog start distance.
-      getFogStart(): number;
-      // Return fog end distance.
-      getFogEnd(): number;
-      // Return fog height distance relative to the scene node's world position.
-      getFogHeight(): number;
-      // Return fog height scale.
-      getFogHeightScale(): number;
-      // Return zone priority.
-      getPriority(): number;
-      // Return whether height fog mode is enabled.
-      getHeightFog(): boolean;
-      // Return whether override mode is enabled.
-      getOverride(): boolean;
-      // Return whether ambient gradient mode is enabled.
-      getAmbientGradient(): boolean;
-      // Return zone texture.
-      getZoneTexture(): Texture;
-      // Check whether a point is inside.
-      isInside(point: Vector3): boolean;
-
-   }
-
-   export class Graphics extends AObject {
-
-      windowTitle: string;
-      windowIcon: Image;
-      srgb: boolean;
-      flushGPU: boolean;
-      orientations: string;
-      defaultTextureFilterMode: TextureFilterMode;
-      textureAnisotropy: number;
-      viewport: IntRect;
-      blendMode: BlendMode;
-      colorWrite: boolean;
-      cullMode: CullMode;
-      depthTest: CompareMode;
-      depthWrite: boolean;
-      fillMode: FillMode;
-      apiName: string;
-      windowPosition: IntVector2;
-      width: number;
-      height: number;
-      multiSample: number;
-      fullscreen: boolean;
-      resizable: boolean;
-      borderless: boolean;
-      vSync: boolean;
-      tripleBuffer: boolean;
-      numPrimitives: number;
-      numBatches: number;
-      dummyColorFormat: number;
-      shadowMapFormat: number;
-      hiresShadowMapFormat: number;
-      instancingSupport: boolean;
-      lightPrepassSupport: boolean;
-      deferredSupport: boolean;
-      hardwareShadowSupport: boolean;
-      readableDepthSupport: boolean;
-      sRGBSupport: boolean;
-      sRGBWriteSupport: boolean;
-      desktopResolution: IntVector2;
-      vertexShader: ShaderVariation;
-      pixelShader: ShaderVariation;
-      depthStencil: RenderSurface;
-      depthConstantBias: number;
-      depthSlopeScaledBias: number;
-      stencilTest: boolean;
-      scissorTest: boolean;
-      scissorRect: IntRect;
-      stencilTestMode: CompareMode;
-      stencilPass: StencilOp;
-      stencilFail: StencilOp;
-      stencilZFail: StencilOp;
-      stencilRef: number;
-      stencilCompareMask: number;
-      stencilWriteMask: number;
-      useClipPlane: boolean;
-      renderTargetDimensions: IntVector2;
-      alphaFormat: number;
-      luminanceFormat: number;
-      luminanceAlphaFormat: number;
-      rGBFormat: number;
-      rGBAFormat: number;
-      rGBA16Format: number;
-      rGBAFloat16Format: number;
-      rGBAFloat32Format: number;
-      rG16Format: number;
-      rGFloat16Format: number;
-      rGFloat32Format: number;
-      float16Format: number;
-      float32Format: number;
-      linearDepthFormat: number;
-      depthStencilFormat: number;
-      readableDepthFormat: number;
-      pixelUVOffset: Vector2;
-      maxBones: number;
-
-      // Construct.
-      constructor();
-
-      // Set window title.
-      setWindowTitle(windowTitle: string): void;
-      // Set window icon.
-      setWindowIcon(windowIcon: Image): void;
-      // Set window size.
-      setWindowSize(width: number, height: number): void;
-      // Center window.
-      centerWindow(): void;
-      // Bring the window to front with focus
-      raiseWindow(): void;
-      // Set whether the main window uses sRGB conversion on write.
-      setSRGB(enable: boolean): void;
-      // Set whether to flush the GPU command buffer to prevent multiple frames being queued and uneven frame timesteps. Default off, may decrease performance if enabled.
-      setFlushGPU(enable: boolean): void;
-      // Set allowed screen orientations as a space-separated list of "LandscapeLeft", "LandscapeRight", "Portrait" and "PortraitUpsideDown". Affects currently only iOS platform.
-      setOrientations(orientations: string): void;
-      // Toggle between full screen and windowed mode. Return true if successful.
-      toggleFullscreen(): boolean;
-      // Close the window.
-      close(): void;
-      // Take a screenshot. Return true if successful.
-      takeScreenShot(destImage: Image): boolean;
-      // Begin frame rendering. Return true if device available and can render.
-      beginFrame(): boolean;
-      // End frame rendering and swap buffers.
-      endFrame(): void;
-      // Clear any or all of rendertarget, depth buffer and stencil buffer.
-      clear(flags: number, color?: Color, depth?: number, stencil?: number): void;
-      // Resolve multisampled backbuffer to a texture rendertarget. The texture's size should match the viewport size.
-      resolveToTexture(destination: Texture2D, viewport: IntRect): boolean;
-      // Draw indexed, instanced geometry. An instancing vertex buffer must be set.
-      drawInstanced(type: PrimitiveType, indexStart: number, indexCount: number, minVertex: number, vertexCount: number, instanceCount: number): void;
-      // Set shaders.
-      setShaders(vs: ShaderVariation, ps: ShaderVariation): void;
-      // Check whether a shader parameter exists on the currently set shaders.
-      hasShaderParameter(param: string): boolean;
-      // Check whether the current pixel shader uses a texture unit.
-      hasTextureUnit(unit: TextureUnit): boolean;
-      // Clear remembered shader parameter source group.
-      clearParameterSource(group: ShaderParameterGroup): void;
-      // Clear remembered shader parameter sources.
-      clearParameterSources(): void;
-      // Clear remembered transform shader parameter sources.
-      clearTransformSources(): void;
-      // Set texture.
-      setTexture(index: number, texture: Texture): void;
-      // Set default texture filtering mode.
-      setDefaultTextureFilterMode(mode: TextureFilterMode): void;
-      // Set texture anisotropy.
-      setTextureAnisotropy(level: number): void;
-      // Reset all rendertargets, depth-stencil surface and viewport.
-      resetRenderTargets(): void;
-      // Reset specific rendertarget.
-      resetRenderTarget(index: number): void;
-      // Reset depth-stencil surface.
-      resetDepthStencil(): void;
-      // Set viewport.
-      setViewport(rect: IntRect): void;
-      // Set blending mode.
-      setBlendMode(mode: BlendMode): void;
-      // Set color write on/off.
-      setColorWrite(enable: boolean): void;
-      // Set hardware culling mode.
-      setCullMode(mode: CullMode): void;
-      // Set depth bias.
-      setDepthBias(constantBias: number, slopeScaledBias: number): void;
-      // Set depth compare.
-      setDepthTest(mode: CompareMode): void;
-      // Set depth write on/off.
-      setDepthWrite(enable: boolean): void;
-      // Set polygon fill mode.
-      setFillMode(mode: FillMode): void;
-      // Set stencil test.
-      setStencilTest(enable: boolean, mode?: CompareMode, pass?: StencilOp, fail?: StencilOp, zFail?: StencilOp, stencilRef?: number, compareMask?: number, writeMask?: number): void;
-      // Begin dumping shader variation names to an XML file for precaching.
-      beginDumpShaders(fileName: string): void;
-      // End dumping shader variations names.
-      endDumpShaders(): void;
-      // Return whether rendering initialized.
-      isInitialized(): boolean;
-      // Return window title.
-      getWindowTitle(): string;
-      // Return graphics API name.
-      getApiName(): string;
-      // Return window position.
-      getWindowPosition(): IntVector2;
-      // Return window width.
-      getWidth(): number;
-      // Return window height.
-      getHeight(): number;
-      // Return multisample mode (1 = no multisampling.)
-      getMultiSample(): number;
-      // Return whether window is fullscreen.
-      getFullscreen(): boolean;
-      // Return whether window is resizable.
-      getResizable(): boolean;
-      // Return whether window is borderless.
-      getBorderless(): boolean;
-      // Return whether vertical sync is on.
-      getVSync(): boolean;
-      // Return whether triple buffering is enabled.
-      getTripleBuffer(): boolean;
-      // Return whether the main window is using sRGB conversion on write.
-      getSRGB(): boolean;
-      // Return whether the GPU command buffer is flushed each frame.
-      getFlushGPU(): boolean;
-      // Return allowed screen orientations.
-      getOrientations(): string;
-      // Return whether Direct3D device is lost, and can not yet render. This happens during fullscreen resolution switching.
-      isDeviceLost(): boolean;
-      // Return number of primitives drawn this frame.
-      getNumPrimitives(): number;
-      // Return number of batches drawn this frame.
-      getNumBatches(): number;
-      // Return dummy color texture format for shadow maps. Is "NULL" (consume no video memory) if supported.
-      getDummyColorFormat(): number;
-      // Return shadow map depth texture format, or 0 if not supported.
-      getShadowMapFormat(): number;
-      // Return 24-bit shadow map depth texture format, or 0 if not supported.
-      getHiresShadowMapFormat(): number;
-      // Return whether hardware instancing is supported..
-      getInstancingSupport(): boolean;
-      // Return whether light pre-pass rendering is supported.
-      getLightPrepassSupport(): boolean;
-      // Return whether deferred rendering is supported.
-      getDeferredSupport(): boolean;
-      // Return whether shadow map depth compare is done in hardware.
-      getHardwareShadowSupport(): boolean;
-      // Return whether a readable hardware depth format is available.
-      getReadableDepthSupport(): boolean;
-      // Return whether sRGB conversion on texture sampling is supported.
-      getSRGBSupport(): boolean;
-      // Return whether sRGB conversion on rendertarget writing is supported.
-      getSRGBWriteSupport(): boolean;
-      // Return the desktop resolution.
-      getDesktopResolution(): IntVector2;
-      // Return a shader variation by name and defines.
-      getShader(type: ShaderType, name: string, defines?: string): ShaderVariation;
-      // Return current vertex shader.
-      getVertexShader(): ShaderVariation;
-      // Return current pixel shader.
-      getPixelShader(): ShaderVariation;
-      // Return texture unit index by name.
-      getTextureUnit(name: string): TextureUnit;
-      // Return texture unit name by index.
-      getTextureUnitName(unit: TextureUnit): string;
-      // Return current texture by texture unit index.
-      getTexture(index: number): Texture;
-      // Return default texture filtering mode.
-      getDefaultTextureFilterMode(): TextureFilterMode;
-      // Return current rendertarget by index.
-      getRenderTarget(index: number): RenderSurface;
-      // Return current depth-stencil surface.
-      getDepthStencil(): RenderSurface;
-      // Return the viewport coordinates.
-      getViewport(): IntRect;
-      // Return texture anisotropy.
-      getTextureAnisotropy(): number;
-      // Return blending mode.
-      getBlendMode(): BlendMode;
-      // Return whether color write is enabled.
-      getColorWrite(): boolean;
-      // Return hardware culling mode.
-      getCullMode(): CullMode;
-      // Return depth constant bias.
-      getDepthConstantBias(): number;
-      // Return depth slope scaled bias.
-      getDepthSlopeScaledBias(): number;
-      // Return depth compare mode.
-      getDepthTest(): CompareMode;
-      // Return whether depth write is enabled.
-      getDepthWrite(): boolean;
-      // Return polygon fill mode.
-      getFillMode(): FillMode;
-      // Return whether stencil test is enabled.
-      getStencilTest(): boolean;
-      // Return whether scissor test is enabled.
-      getScissorTest(): boolean;
-      // Return scissor rectangle coordinates.
-      getScissorRect(): IntRect;
-      // Return stencil compare mode.
-      getStencilTestMode(): CompareMode;
-      // Return stencil operation to do if stencil test passes.
-      getStencilPass(): StencilOp;
-      // Return stencil operation to do if stencil test fails.
-      getStencilFail(): StencilOp;
-      // Return stencil operation to do if depth compare fails.
-      getStencilZFail(): StencilOp;
-      // Return stencil reference value.
-      getStencilRef(): number;
-      // Return stencil compare bitmask.
-      getStencilCompareMask(): number;
-      // Return stencil write bitmask.
-      getStencilWriteMask(): number;
-      // Return whether a custom clipping plane is in use.
-      getUseClipPlane(): boolean;
-      // Return rendertarget width and height.
-      getRenderTargetDimensions(): IntVector2;
-      // Window was resized through user interaction. Called by Input subsystem.
-      windowResized(): void;
-      // Window was moved through user interaction. Called by Input subsystem.
-      windowMoved(): void;
-      // Maximize the Window.
-      maximize(): void;
-      // Minimize the Window.
-      minimize(): void;
-      // Clean up too large scratch buffers.
-      cleanupScratchBuffers(): void;
-      // Clean up shader programs when a shader variation is released or destroyed.
-      cleanupShaderPrograms(variation: ShaderVariation): void;
-      // Return the API-specific alpha texture format.
-      getAlphaFormat(): number;
-      // Return the API-specific luminance texture format.
-      getLuminanceFormat(): number;
-      // Return the API-specific luminance alpha texture format.
-      getLuminanceAlphaFormat(): number;
-      // Return the API-specific RGB texture format.
-      getRGBFormat(): number;
-      // Return the API-specific RGBA texture format.
-      getRGBAFormat(): number;
-      // Return the API-specific RGBA 16-bit texture format.
-      getRGBA16Format(): number;
-      // Return the API-specific RGBA 16-bit float texture format.
-      getRGBAFloat16Format(): number;
-      // Return the API-specific RGBA 32-bit float texture format.
-      getRGBAFloat32Format(): number;
-      // Return the API-specific RG 16-bit texture format.
-      getRG16Format(): number;
-      // Return the API-specific RG 16-bit float texture format.
-      getRGFloat16Format(): number;
-      // Return the API-specific RG 32-bit float texture format.
-      getRGFloat32Format(): number;
-      // Return the API-specific single channel 16-bit float texture format.
-      getFloat16Format(): number;
-      // Return the API-specific single channel 32-bit float texture format.
-      getFloat32Format(): number;
-      // Return the API-specific linear depth texture format.
-      getLinearDepthFormat(): number;
-      // Return the API-specific hardware depth-stencil texture format.
-      getDepthStencilFormat(): number;
-      // Return the API-specific readable hardware depth format, or 0 if not supported.
-      getReadableDepthFormat(): number;
-      // Return UV offset required for pixel perfect rendering.
-      getPixelUVOffset(): Vector2;
-      // Return maximum number of supported bones for skinning.
-      getMaxBones(): number;
-
-   }
-
-   export class RenderSurface extends RefCounted {
-
-      numViewports: number;
-      updateMode: RenderSurfaceUpdateMode;
-      linkedRenderTarget: RenderSurface;
-      linkedDepthStencil: RenderSurface;
-      parentTexture: Texture;
-      width: number;
-      height: number;
-      usage: TextureUsage;
-
-      // Construct with parent texture.
-      constructor(parentTexture: Texture);
-
-      // Set number of viewports.
-      setNumViewports(num: number): void;
-      // Set viewport.
-      setViewport(index: number, viewport: Viewport): void;
-      // Set viewport update mode. Default is to update when visible.
-      setUpdateMode(mode: RenderSurfaceUpdateMode): void;
-      // Set linked color rendertarget.
-      setLinkedRenderTarget(renderTarget: RenderSurface): void;
-      // Set linked depth-stencil surface.
-      setLinkedDepthStencil(depthStencil: RenderSurface): void;
-      // Queue manual update of the viewport(s).
-      queueUpdate(): void;
-      // Release surface.
-      release(): void;
-      // Return parent texture.
-      getParentTexture(): Texture;
-      // Return width.
-      getWidth(): number;
-      // Return height.
-      getHeight(): number;
-      // Return usage.
-      getUsage(): TextureUsage;
-      // Return number of viewports.
-      getNumViewports(): number;
-      // Return viewport by index.
-      getViewport(index: number): Viewport;
-      // Return viewport update mode.
-      getUpdateMode(): RenderSurfaceUpdateMode;
-      // Return linked color rendertarget.
-      getLinkedRenderTarget(): RenderSurface;
-      // Return linked depth-stencil surface.
-      getLinkedDepthStencil(): RenderSurface;
-      // Clear update flag. Called by Renderer.
-      wasUpdated(): void;
-
-   }
-
-   export class ShaderVariation extends RefCounted {
-
-      name: string;
-      defines: string;
-      owner: Shader;
-      shaderType: ShaderType;
-      fullName: string;
-      compilerOutput: string;
-
-      // Construct.
-      constructor(owner: Shader, type: ShaderType);
-
-      // Release the shader.
-      release(): void;
-      // Compile the shader. Return true if successful.
-      create(): boolean;
-      // Set name.
-      setName(name: string): void;
-      // Set defines.
-      setDefines(defines: string): void;
-      // Return the owner resource.
-      getOwner(): Shader;
-      // Return shader type.
-      getShaderType(): ShaderType;
-      // Return shader name.
-      getName(): string;
-      // Return defines.
-      getDefines(): string;
-      // Return full shader name.
-      getFullName(): string;
-      // Return compile error/warning string.
-      getCompilerOutput(): string;
-      // Return whether uses a parameter.
-      hasParameter(param: string): boolean;
-      // Return whether uses a texture unit (only for pixel shaders.)
-      hasTextureUnit(unit: TextureUnit): boolean;
-
-   }
-
-   export class Texture extends Resource {
-
-      numLevels: number;
-      filterMode: TextureFilterMode;
-      shadowCompare: boolean;
-      borderColor: Color;
-      srgb: boolean;
-      backupTexture: Texture;
-      format: number;
-      levels: number;
-      width: number;
-      height: number;
-      depth: number;
-      usage: TextureUsage;
-      components: number;
-      parameters: XMLFile;
-
-      // Construct.
-      constructor();
-
-      // Set number of requested mip levels. Needs to be called before setting size.
-      setNumLevels(levels: number): void;
-      // Set filtering mode.
-      setFilterMode(filter: TextureFilterMode): void;
-      // Set addressing mode by texture coordinate.
-      setAddressMode(coord: TextureCoordinate, address: TextureAddressMode): void;
-      // Set shadow compare mode. No-op on D3D9.
-      setShadowCompare(enable: boolean): void;
-      // Set border color for border addressing mode.
-      setBorderColor(color: Color): void;
-      // Set sRGB sampling and writing mode.
-      setSRGB(enable: boolean): void;
-      // Set backup texture to use when rendering to this texture.
-      setBackupTexture(texture: Texture): void;
-      // Set mip levels to skip on a quality setting when loading. Ensures higher quality levels do not skip more.
-      setMipsToSkip(quality: number, mips: number): void;
-      // Return texture format.
-      getFormat(): number;
-      // Return whether the texture format is compressed.
-      isCompressed(): boolean;
-      // Return number of mip levels.
-      getLevels(): number;
-      // Return width.
-      getWidth(): number;
-      // Return height.
-      getHeight(): number;
-      // Return height.
-      getDepth(): number;
-      // Return filtering mode.
-      getFilterMode(): TextureFilterMode;
-      // Return addressing mode by texture coordinate.
-      getAddressMode(coord: TextureCoordinate): TextureAddressMode;
-      // Return whether shadow compare is enabled. Always false on D3D9.
-      getShadowCompare(): boolean;
-      // Return border color.
-      getBorderColor(): Color;
-      // Return whether is using sRGB sampling and writing.
-      getSRGB(): boolean;
-      // Return backup texture.
-      getBackupTexture(): Texture;
-      // Return mip levels to skip on a quality setting when loading.
-      getMipsToSkip(quality: number): number;
-      // Return mip level width, or 0 if level does not exist.
-      getLevelWidth(level: number): number;
-      // Return mip level width, or 0 if level does not exist.
-      getLevelHeight(level: number): number;
-      // Return mip level depth, or 0 if level does not exist.
-      getLevelDepth(level: number): number;
-      // Return texture usage type.
-      getUsage(): TextureUsage;
-      // Return data size in bytes for a pixel or block row.
-      getRowDataSize(width: number): number;
-      // Return number of image components required to receive pixel data from GetData(), or 0 for compressed images.
-      getComponents(): number;
-      // Set additional parameters from an XML file.
-      setParameters(xml: XMLFile): void;
-
-   }
-
-   export class Texture2D extends Texture {
-
-      renderSurface: RenderSurface;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Release default pool resources.
-      onDeviceLost(): void;
-      // Recreate default pool resources.
-      onDeviceReset(): void;
-      // Release texture.
-      release(): void;
-      // Set size, format and usage. Zero size will follow application window size. Return true if successful.
-      setSize(width: number, height: number, format: number, usage?: TextureUsage): boolean;
-      // Return render surface.
-      getRenderSurface(): RenderSurface;
-
-   }
-
-   export class Texture3D extends Texture {
-
-      renderSurface: RenderSurface;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Release default pool resources.
-      onDeviceLost(): void;
-      // Recreate default pool resources.
-      onDeviceReset(): void;
-      // Release texture.
-      release(): void;
-      // Set size, format and usage. Zero size will follow application window size. Return true if successful.
-      setSize(width: number, height: number, depth: number, format: number, usage?: TextureUsage): boolean;
-      // Return render surface.
-      getRenderSurface(): RenderSurface;
-
-   }
-
-   export class TextureCube extends Texture {
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Release default pool resources.
-      onDeviceLost(): void;
-      // ReCreate default pool resources.
-      onDeviceReset(): void;
-      // Release texture.
-      release(): void;
-      // Set size, format and usage. Return true if successful.
-      setSize(size: number, format: number, usage?: TextureUsage): boolean;
-      // Return render surface for one face.
-      getRenderSurface(face: CubeMapFace): RenderSurface;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Atomic3D
-//----------------------------------------------------
-
-
-   export class AnimatedModel extends StaticModel {
-
-      updateGeometryType: UpdateGeometryType;
-      animationLodBias: number;
-      updateInvisible: boolean;
-      numAnimationStates: number;
-      numMorphs: number;
-      boneCreationEnabled: boolean;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-      getUpdateGeometryType(): UpdateGeometryType;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set model.
-      setModel(model: Model, createBones?: boolean): void;
-      // Add an animation.
-      addAnimationState(animation: Animation): AnimationState;
-      // Remove all animations.
-      removeAllAnimationStates(): void;
-      // Set animation LOD bias.
-      setAnimationLodBias(bias: number): void;
-      // Set whether to update animation and the bounding box when not visible. Recommended to enable for physically controlled models like ragdolls.
-      setUpdateInvisible(enable: boolean): void;
-      // Reset all vertex morphs to zero.
-      resetMorphWeights(): void;
-      // Return number of animation states.
-      getNumAnimationStates(): number;
-      // Return animation LOD bias.
-      getAnimationLodBias(): number;
-      // Return whether to update animation when not visible.
-      getUpdateInvisible(): boolean;
-      // Return number of vertex morphs.
-      getNumMorphs(): number;
-      // Return whether is the master (first) animated model.
-      isMaster(): boolean;
-      // Globally enable/disable bone creation, useful for when in the editor
-      setBoneCreationEnabled(enabled: boolean): void;
-
-   }
-
-   export class Animation extends Resource {
-
-      animationName: string;
-      length: number;
-      numTriggers: number;
-      animationNameHash: string;
-      numTracks: number;
-
-      // Construct.
-      constructor();
-
-      // Set animation name.
-      setAnimationName(name: string): void;
-      // Set animation length.
-      setLength(length: number): void;
-      // Remove a trigger point by index.
-      removeTrigger(index: number): void;
-      // Remove all trigger points.
-      removeAllTriggers(): void;
-      // Resize trigger point vector.
-      setNumTriggers(num: number): void;
-      // Return animation name.
-      getAnimationName(): string;
-      // Return animation name hash.
-      getAnimationNameHash(): string;
-      // Return animation length.
-      getLength(): number;
-      // Return number of animation tracks.
-      getNumTracks(): number;
-      // Return number of animation trigger points.
-      getNumTriggers(): number;
-
-   }
-
-   export class AnimationController extends Component {
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Update the animations. Is called from HandleScenePostUpdate().
-      update(timeStep: number): void;
-      // Play an animation and set full target weight. Name must be the full resource name. Return true on success.
-      play(name: string, layer: number, looped: boolean, fadeInTime?: number): boolean;
-      // Play an animation, set full target weight and fade out all other animations on the same layer. Name must be the full resource name. Return true on success.
-      playExclusive(name: string, layer: number, looped: boolean, fadeTime?: number): boolean;
-      // Stop an animation. Zero fadetime is instant. Return true on success.
-      stop(name: string, fadeOutTime?: number): boolean;
-      // Stop all animations on a specific layer. Zero fadetime is instant.
-      stopLayer(layer: number, fadeOutTime?: number): void;
-      // Stop all animations. Zero fadetime is instant.
-      stopAll(fadeTime?: number): void;
-      // Fade animation to target weight. Return true on success.
-      fade(name: string, targetWeight: number, fadeTime: number): boolean;
-      // Fade other animations on the same layer to target weight. Return true on success.
-      fadeOthers(name: string, targetWeight: number, fadeTime: number): boolean;
-      // Set animation blending layer priority. Return true on success.
-      setLayer(name: string, layer: number): boolean;
-      // Set animation start bone. Return true on success.
-      setStartBone(name: string, startBoneName: string): boolean;
-      // Set animation time position. Return true on success.
-      setTime(name: string, time: number): boolean;
-      // Set animation weight. Return true on success.
-      setWeight(name: string, weight: number): boolean;
-      // Set animation looping. Return true on success.
-      setLooped(name: string, enable: boolean): boolean;
-      // Set animation speed. Return true on success.
-      setSpeed(name: string, speed: number): boolean;
-      // Set animation autofade at end (non-looped animations only.) Zero time disables. Return true on success.
-      setAutoFade(name: string, fadeOutTime: number): boolean;
-      // Return whether an animation is active. Note that non-looping animations that are being clamped at the end also return true.
-      isPlaying(name: string): boolean;
-      // Return whether an animation is fading in.
-      isFadingIn(name: string): boolean;
-      // Return whether an animation is fading out.
-      isFadingOut(name: string): boolean;
-      // Return whether an animation is at its end. Will return false if the animation is not active at all.
-      isAtEnd(name: string): boolean;
-      // Return animation blending layer.
-      getLayer(name: string): number;
-      // Return animation start bone name, or empty string if no such animation.
-      getStartBoneName(name: string): string;
-      // Return animation time position.
-      getTime(name: string): number;
-      // Return animation weight.
-      getWeight(name: string): number;
-      // Return animation looping.
-      isLooped(name: string): boolean;
-      // Return animation length.
-      getLength(name: string): number;
-      // Return animation speed.
-      getSpeed(name: string): number;
-      // Return animation fade target weight.
-      getFadeTarget(name: string): number;
-      // Return animation fade time.
-      getFadeTime(name: string): number;
-      // Return animation autofade time.
-      getAutoFade(name: string): number;
-      addAnimationResource(animation: Animation): void;
-      removeAnimationResource(animation: Animation): void;
-      clearAnimationResources(): void;
-
-   }
-
-   export class AnimationState extends RefCounted {
-
-      looped: boolean;
-      weight: number;
-      time: number;
-      layer: number;
-      animation: Animation;
-      model: AnimatedModel;
-      node: Node;
-      length: number;
-
-      // Construct with animated model and animation pointers.
-      constructor(model: AnimatedModel, animation: Animation);
-
-      // Set looping enabled/disabled.
-      setLooped(looped: boolean): void;
-      // Set blending weight.
-      setWeight(weight: number): void;
-      // Set time position. Does not fire animation triggers.
-      setTime(time: number): void;
-      // Modify blending weight.
-      addWeight(delta: number): void;
-      // Modify time position. %Animation triggers will be fired.
-      addTime(delta: number): void;
-      // Set blending layer.
-      setLayer(layer: number): void;
-      // Return animation.
-      getAnimation(): Animation;
-      // Return animated model this state belongs to (model mode.)
-      getModel(): AnimatedModel;
-      // Return root scene node this state controls (node hierarchy mode.)
-      getNode(): Node;
-      // Return whether weight is nonzero.
-      isEnabled(): boolean;
-      // Return whether looped.
-      isLooped(): boolean;
-      // Return blending weight.
-      getWeight(): number;
-      // Return time position.
-      getTime(): number;
-      // Return animation length.
-      getLength(): number;
-      // Return blending layer.
-      getLayer(): number;
-      // Apply the animation at the current time position.
-      apply(): void;
-
-   }
-
-   export class BillboardSet extends Drawable {
-
-      updateGeometryType: UpdateGeometryType;
-      material: Material;
-      numBillboards: number;
-      relative: boolean;
-      scaled: boolean;
-      sorted: boolean;
-      faceCameraMode: FaceCameraMode;
-      animationLodBias: number;
-
-      // Construct.
-      constructor();
-
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-      getUpdateGeometryType(): UpdateGeometryType;
-      // Set material.
-      setMaterial(material: Material): void;
-      // Set number of billboards.
-      setNumBillboards(num: number): void;
-      // Set whether billboards are relative to the scene node. Default true.
-      setRelative(enable: boolean): void;
-      // Set whether scene node scale affects billboards' size. Default true.
-      setScaled(enable: boolean): void;
-      // Set whether billboards are sorted by distance. Default false.
-      setSorted(enable: boolean): void;
-      // Set how the billboards should rotate in relation to the camera. Default is to follow camera rotation on all axes (FC_ROTATE_XYZ.)
-      setFaceCameraMode(mode: FaceCameraMode): void;
-      // Set animation LOD bias.
-      setAnimationLodBias(bias: number): void;
-      // Mark for bounding box and vertex buffer update. Call after modifying the billboards.
-      commit(): void;
-      // Return material.
-      getMaterial(): Material;
-      // Return number of billboards.
-      getNumBillboards(): number;
-      // Return whether billboards are relative to the scene node.
-      isRelative(): boolean;
-      // Return whether scene node scale affects billboards' size.
-      isScaled(): boolean;
-      // Return whether billboards are sorted.
-      isSorted(): boolean;
-      // Return how the billboards rotate in relation to the camera.
-      getFaceCameraMode(): FaceCameraMode;
-      // Return animation LOD bias.
-      getAnimationLodBias(): number;
-
-   }
-
-   export class CustomGeometry extends Drawable {
-
-      numOccluderTriangles: number;
-      numGeometries: number;
-      dynamic: boolean;
-
-      // Construct.
-      constructor();
-
-      // Return number of occlusion geometry triangles.
-      getNumOccluderTriangles(): number;
-      // Clear all geometries.
-      clear(): void;
-      // Set number of geometries.
-      setNumGeometries(num: number): void;
-      // Set vertex buffer dynamic mode. A dynamic buffer should be faster to update frequently. Effective at the next Commit() call.
-      setDynamic(enable: boolean): void;
-      // Begin defining a geometry. Clears existing vertices in that index.
-      beginGeometry(index: number, type: PrimitiveType): void;
-      // Define a vertex position. This begins a new vertex.
-      defineVertex(position: Vector3): void;
-      // Define a vertex normal.
-      defineNormal(normal: Vector3): void;
-      // Define a vertex color.
-      defineColor(color: Color): void;
-      // Define a vertex UV coordinate.
-      defineTexCoord(texCoord: Vector2): void;
-      // Define a vertex tangent.
-      defineTangent(tangent: Vector4): void;
-      // Set the primitive type, number of vertices and elements in a geometry, after which the vertices can be edited with GetVertex(). An alternative to BeginGeometry() / DefineVertex().
-      defineGeometry(index: number, type: PrimitiveType, numVertices: number, hasNormals: boolean, hasColors: boolean, hasTexCoords: boolean, hasTangents: boolean): void;
-      // Update vertex buffer and calculate the bounding box. Call after finishing defining geometry.
-      commit(): void;
-      // Return number of geometries.
-      getNumGeometries(): number;
-      // Return number of vertices in a geometry.
-      getNumVertices(index: number): number;
-      // Return whether vertex buffer dynamic mode is enabled.
-      isDynamic(): boolean;
-      // Return material by geometry index.
-      getMaterial(index?: number): Material;
-
-   }
-
-   export class DecalSet extends Drawable {
-
-      updateGeometryType: UpdateGeometryType;
-      material: Material;
-      maxVertices: number;
-      maxIndices: number;
-      numDecals: number;
-      numVertices: number;
-      numIndices: number;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-      getUpdateGeometryType(): UpdateGeometryType;
-      // Set material. The material should use a small negative depth bias to avoid Z-fighting.
-      setMaterial(material: Material): void;
-      // Set maximum number of decal vertices.
-      setMaxVertices(num: number): void;
-      // Set maximum number of decal vertex indices.
-      setMaxIndices(num: number): void;
-      // Add a decal at world coordinates, using a target drawable's geometry for reference. If the decal needs to move with the target, the decal component should be created to the target's node. Return true if successful.
-      addDecal(target: Drawable, worldPosition: Vector3, worldRotation: Quaternion, size: number, aspectRatio: number, depth: number, topLeftUV: Vector2, bottomRightUV: Vector2, timeToLive?: number, normalCutoff?: number, subGeometry?: number): boolean;
-      // Remove n oldest decals.
-      removeDecals(num: number): void;
-      // Remove all decals.
-      removeAllDecals(): void;
-      // Return material.
-      getMaterial(): Material;
-      // Return number of decals.
-      getNumDecals(): number;
-      // Retur number of vertices in the decals.
-      getNumVertices(): number;
-      // Retur number of vertex indices in the decals.
-      getNumIndices(): number;
-      // Return maximum number of decal vertices.
-      getMaxVertices(): number;
-      // Return maximum number of decal vertex indices.
-      getMaxIndices(): number;
-
-   }
-
-   export class Model extends Resource {
-
-      boundingBox: BoundingBox;
-      numGeometries: number;
-      numMorphs: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Set local-space bounding box.
-      setBoundingBox(box: BoundingBox): void;
-      // Set number of geometries.
-      setNumGeometries(num: number): void;
-      // Set number of LOD levels in a geometry.
-      setNumGeometryLodLevels(index: number, num: number): boolean;
-      // Set geometry center.
-      setGeometryCenter(index: number, center: Vector3): boolean;
-      // Clone the model. The geometry data is deep-copied and can be modified in the clone without affecting the original.
-      clone(cloneName?: string): Model;
-      // Return bounding box.
-      getBoundingBox(): BoundingBox;
-      // Return number of geometries.
-      getNumGeometries(): number;
-      // Return number of LOD levels in geometry.
-      getNumGeometryLodLevels(index: number): number;
-      // Return geometry center by index.
-      getGeometryCenter(index: number): Vector3;
-      // Return number of vertex morphs.
-      getNumMorphs(): number;
-      // Return vertex buffer morph range start.
-      getMorphRangeStart(bufferIndex: number): number;
-      // Return vertex buffer morph range vertex count.
-      getMorphRangeCount(bufferIndex: number): number;
-
-   }
-
-   export class ParticleEffect extends Resource {
-
-      material: Material;
-      numParticles: number;
-      updateInvisible: boolean;
-      relative: boolean;
-      scaled: boolean;
-      sorted: boolean;
-      animationLodBias: number;
-      emitterType: EmitterType;
-      emitterSize: Vector3;
-      minDirection: Vector3;
-      maxDirection: Vector3;
-      constantForce: Vector3;
-      dampingForce: number;
-      activeTime: number;
-      inactiveTime: number;
-      minEmissionRate: number;
-      maxEmissionRate: number;
-      minParticleSize: Vector2;
-      maxParticleSize: Vector2;
-      minTimeToLive: number;
-      maxTimeToLive: number;
-      minVelocity: number;
-      maxVelocity: number;
-      minRotation: number;
-      maxRotation: number;
-      minRotationSpeed: number;
-      maxRotationSpeed: number;
-      sizeAdd: number;
-      sizeMul: number;
-      numColorFrames: number;
-      numTextureFrames: number;
-      randomDirection: Vector3;
-      randomSize: Vector2;
-      randomVelocity: number;
-      randomTimeToLive: number;
-      randomRotationSpeed: number;
-      randomRotation: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Set material.
-      setMaterial(material: Material): void;
-      // Set maximum number of particles.
-      setNumParticles(num: number): void;
-      // Set whether to update when particles are not visible.
-      setUpdateInvisible(enable: boolean): void;
-      // Set whether billboards are relative to the scene node. Default true.
-      setRelative(enable: boolean): void;
-      // Set scaled.
-      setScaled(enable: boolean): void;
-      // Set sorted.
-      setSorted(enable: boolean): void;
-      // Set animation LOD bias.
-      setAnimationLodBias(lodBias: number): void;
-      // Set emitter type.
-      setEmitterType(type: EmitterType): void;
-      // Set emitter size.
-      setEmitterSize(size: Vector3): void;
-      // Set negative direction limit.
-      setMinDirection(direction: Vector3): void;
-      // Set positive direction limit.
-      setMaxDirection(direction: Vector3): void;
-      // Set constant force acting on particles.
-      setConstantForce(force: Vector3): void;
-      // Set particle velocity damping force.
-      setDampingForce(force: number): void;
-      // Set emission active period length (0 = infinite.)
-      setActiveTime(time: number): void;
-      // Set emission inactive period length (0 = infinite.)
-      setInactiveTime(time: number): void;
-      // Set minimum emission rate.
-      setMinEmissionRate(rate: number): void;
-      // Set maximum emission rate.
-      setMaxEmissionRate(rate: number): void;
-      // Set particle minimum size.
-      setMinParticleSize(size: Vector2): void;
-      // Set particle maximum size.
-      setMaxParticleSize(size: Vector2): void;
-      // Set particle minimum time to live.
-      setMinTimeToLive(time: number): void;
-      // Set particle maximum time to live.
-      setMaxTimeToLive(time: number): void;
-      // Set particle minimum velocity.
-      setMinVelocity(velocity: number): void;
-      // Set particle maximum velocity.
-      setMaxVelocity(velocity: number): void;
-      // Set particle minimum rotation.
-      setMinRotation(rotation: number): void;
-      // Set particle maximum rotation.
-      setMaxRotation(rotation: number): void;
-      // Set particle minimum rotation speed.
-      setMinRotationSpeed(speed: number): void;
-      // Set particle maximum rotation speed.
-      setMaxRotationSpeed(speed: number): void;
-      // Set particle size additive modifier.
-      setSizeAdd(sizeAdd: number): void;
-      // Set particle size multiplicative modifier.
-      setSizeMul(sizeMul: number): void;
-      // Add a color frame sorted in the correct position based on time.
-      addColorTime(color: Color, time: number): void;
-      // Remove color frame at index
-      removeColorFrame(index: number): void;
-      // Set number of color frames.
-      setNumColorFrames(number: number): void;
-      // Sort the list of color frames based on time.
-      sortColorFrames(): void;
-      // Add a texture frame sorted in the correct position based on time.
-      addTextureTime(uv: Rect, time: number): void;
-      // Remove texture frame at index
-      removeTextureFrame(index: number): void;
-      // Set number of texture frames.
-      setNumTextureFrames(number: number): void;
-      // Sort the list of texture frames based on time.
-      sortTextureFrames(): void;
-      // Return material.
-      getMaterial(): Material;
-      // Return maximum number of particles.
-      getNumParticles(): number;
-      // Return whether to update when particles are not visible.
-      getUpdateInvisible(): boolean;
-      // Return whether billboards are relative to the scene node.
-      isRelative(): boolean;
-      // Return whether scene node scale affects billboards' size.
-      isScaled(): boolean;
-      // Return whether billboards are sorted.
-      isSorted(): boolean;
-      // Return animation Lod bias.
-      getAnimationLodBias(): number;
-      // Return emitter type.
-      getEmitterType(): EmitterType;
-      // Return emitter size.
-      getEmitterSize(): Vector3;
-      // Return negative direction limit.
-      getMinDirection(): Vector3;
-      // Return positive direction limit.
-      getMaxDirection(): Vector3;
-      // Return constant force acting on particles.
-      getConstantForce(): Vector3;
-      // Return particle velocity damping force.
-      getDampingForce(): number;
-      // Return emission active period length (0 = infinite.)
-      getActiveTime(): number;
-      // Return emission inactive period length (0 = infinite.)
-      getInactiveTime(): number;
-      // Return minimum emission rate.
-      getMinEmissionRate(): number;
-      // Return maximum emission rate.
-      getMaxEmissionRate(): number;
-      // Return particle minimum size.
-      getMinParticleSize(): Vector2;
-      // Return particle maximum size.
-      getMaxParticleSize(): Vector2;
-      // Return particle minimum time to live.
-      getMinTimeToLive(): number;
-      // Return particle maximum time to live.
-      getMaxTimeToLive(): number;
-      // Return particle minimum velocity.
-      getMinVelocity(): number;
-      // Return particle maximum velocity.
-      getMaxVelocity(): number;
-      // Return particle minimum rotation.
-      getMinRotation(): number;
-      // Return particle maximum rotation.
-      getMaxRotation(): number;
-      // Return particle minimum rotation speed.
-      getMinRotationSpeed(): number;
-      // Return particle maximum rotation speed.
-      getMaxRotationSpeed(): number;
-      // Return particle size additive modifier.
-      getSizeAdd(): number;
-      // Return particle size multiplicative modifier.
-      getSizeMul(): number;
-      // Return number of color animation frames.
-      getNumColorFrames(): number;
-      // Return number of texture animation frames.
-      getNumTextureFrames(): number;
-      // Return random direction.
-      getRandomDirection(): Vector3;
-      // Return random size.
-      getRandomSize(): Vector2;
-      // Return random velocity.
-      getRandomVelocity(): number;
-      // Return random timetolive.
-      getRandomTimeToLive(): number;
-      // Return random rotationspeed.
-      getRandomRotationSpeed(): number;
-      // Return random rotation.
-      getRandomRotation(): number;
-
-   }
-
-   export class ParticleEmitter extends BillboardSet {
-
-      effect: ParticleEffect;
-      numParticles: number;
-      emitting: boolean;
-      serializeParticles: boolean;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Set particle effect.
-      setEffect(effect: ParticleEffect): void;
-      // Set maximum number of particles.
-      setNumParticles(num: number): void;
-      // Set whether should be emitting. If the state was changed, also resets the emission period timer.
-      setEmitting(enable: boolean): void;
-      // Set whether particles should be serialized. Default true, set false to reduce scene file size.
-      setSerializeParticles(enable: boolean): void;
-      // Reset the emission period timer.
-      resetEmissionTimer(): void;
-      // Remove all current particles.
-      removeAllParticles(): void;
-      // Reset the particle emitter completely. Removes current particles, sets emitting state on, and resets the emission timer.
-      reset(): void;
-      // Apply not continuously updated values such as the material, the number of particles and sorting mode from the particle effect. Call this if you change the effect programmatically.
-      applyEffect(): void;
-      // Return particle effect.
-      getEffect(): ParticleEffect;
-      // Return maximum number of particles.
-      getNumParticles(): number;
-      // Return whether is currently emitting.
-      isEmitting(): boolean;
-      // Return whether particles are to be serialized.
-      getSerializeParticles(): boolean;
-
-   }
-
-   export class Skybox extends StaticModel {
-
-      // Construct.
-      constructor();
-
-
-   }
-
-   export class StaticModel extends Drawable {
-
-      numOccluderTriangles: number;
-      model: Model;
-      material: Material;
-      occlusionLodLevel: number;
-      numGeometries: number;
-
-      // Construct.
-      constructor();
-
-      // Return number of occlusion geometry triangles.
-      getNumOccluderTriangles(): number;
-      // Set model.
-      setModel(model: Model): void;
-      // Set material on all geometries.
-      setMaterial(material: Material): void;
-      // Set occlusion LOD level. By default (M_MAX_UNSIGNED) same as visible.
-      setOcclusionLodLevel(level: number): void;
-      // Apply default materials from a material list file. If filename is empty (default), the model's resource name with extension .txt will be used.
-      applyMaterialList(fileName?: string): void;
-      // Return model.
-      getModel(): Model;
-      // Return number of geometries.
-      getNumGeometries(): number;
-      // Return material by geometry index.
-      getMaterial(index?: number): Material;
-      // Return occlusion LOD level.
-      getOcclusionLodLevel(): number;
-      // Determines if the given world space point is within the model geometry.
-      isInside(point: Vector3): boolean;
-      // Determines if the given local space point is within the model geometry.
-      isInsideLocal(point: Vector3): boolean;
-      function setMaterialIndex(index:number, material:Material);
-
-   }
-
-   export class StaticModelGroup extends StaticModel {
-
-      numOccluderTriangles: number;
-      numInstanceNodes: number;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Return number of occlusion geometry triangles.
-      getNumOccluderTriangles(): number;
-      // Add an instance scene node. It does not need any drawable components of its own.
-      addInstanceNode(node: Node): void;
-      // Remove an instance scene node.
-      removeInstanceNode(node: Node): void;
-      // Remove all instance scene nodes.
-      removeAllInstanceNodes(): void;
-      // Return number of instance nodes.
-      getNumInstanceNodes(): number;
-      // Return instance node by index.
-      getInstanceNode(index: number): Node;
-
-   }
-
-   export class Terrain extends Component {
-
-      patchSize: number;
-      spacing: Vector3;
-      smoothing: boolean;
-      material: Material;
-      drawDistance: number;
-      shadowDistance: number;
-      lodBias: number;
-      viewMask: number;
-      lightMask: number;
-      shadowMask: number;
-      zoneMask: number;
-      maxLights: number;
-      castShadows: boolean;
-      occluder: boolean;
-      occludee: boolean;
-      numVertices: IntVector2;
-      numPatches: IntVector2;
-      heightMap: Image;
-      patchSizeAttr: number;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Set patch quads per side. Must be a power of two.
-      setPatchSize(size: number): void;
-      // Set vertex (XZ) and height (Y) spacing.
-      setSpacing(spacing: Vector3): void;
-      // Set smoothing of heightmap.
-      setSmoothing(enable: boolean): void;
-      // Set heightmap image. Dimensions should be a power of two + 1. Uses 8-bit grayscale, or optionally red as MSB and green as LSB for 16-bit accuracy. Return true if successful.
-      setHeightMap(image: Image): boolean;
-      // Set material.
-      setMaterial(material: Material): void;
-      // Set draw distance for patches.
-      setDrawDistance(distance: number): void;
-      // Set shadow draw distance for patches.
-      setShadowDistance(distance: number): void;
-      // Set LOD bias for patches. Affects which terrain LOD to display.
-      setLodBias(bias: number): void;
-      // Set view mask for patches. Is and'ed with camera's view mask to see if the object should be rendered.
-      setViewMask(mask: number): void;
-      // Set light mask for patches. Is and'ed with light's and zone's light mask to see if the object should be lit.
-      setLightMask(mask: number): void;
-      // Set shadow mask for patches. Is and'ed with light's light mask and zone's shadow mask to see if the object should be rendered to a shadow map.
-      setShadowMask(mask: number): void;
-      // Set zone mask for patches. Is and'ed with zone's zone mask to see if the object should belong to the zone.
-      setZoneMask(mask: number): void;
-      // Set maximum number of per-pixel lights for patches. Default 0 is unlimited.
-      setMaxLights(num: number): void;
-      // Set shadowcaster flag for patches.
-      setCastShadows(enable: boolean): void;
-      // Set occlusion flag for patches. Occlusion uses the coarsest LOD and may potentially be too aggressive, so use with caution.
-      setOccluder(enable: boolean): void;
-      // Set occludee flag for patches.
-      setOccludee(enable: boolean): void;
-      // Apply changes from the heightmap image.
-      applyHeightMap(): void;
-      // Return patch quads per side.
-      getPatchSize(): number;
-      // Return vertex and height spacing.
-      getSpacing(): Vector3;
-      // Return heightmap size in vertices.
-      getNumVertices(): IntVector2;
-      // Return heightmap size in patches.
-      getNumPatches(): IntVector2;
-      // Return whether smoothing is in use.
-      getSmoothing(): boolean;
-      // Return heightmap image.
-      getHeightMap(): Image;
-      // Return material.
-      getMaterial(): Material;
-      // Return height at world coordinates.
-      getHeight(worldPosition: Vector3): number;
-      // Return normal at world coordinates.
-      getNormal(worldPosition: Vector3): Vector3;
-      // Convert world position to heightmap pixel position. Note that the internal height data representation is reversed vertically, but in the heightmap image north is at the top.
-      worldToHeightMap(worldPosition: Vector3): IntVector2;
-      // Return draw distance.
-      getDrawDistance(): number;
-      // Return shadow draw distance.
-      getShadowDistance(): number;
-      // Return LOD bias.
-      getLodBias(): number;
-      // Return view mask.
-      getViewMask(): number;
-      // Return light mask.
-      getLightMask(): number;
-      // Return shadow mask.
-      getShadowMask(): number;
-      // Return zone mask.
-      getZoneMask(): number;
-      // Return maximum number of per-pixel lights.
-      getMaxLights(): number;
-      // Return visible flag.
-      isVisible(): boolean;
-      // Return shadowcaster flag.
-      getCastShadows(): boolean;
-      // Return occluder flag.
-      isOccluder(): boolean;
-      // Return occludee flag.
-      isOccludee(): boolean;
-      // Regenerate patch geometry.
-      createPatchGeometry(patch: TerrainPatch): void;
-      // Update patch based on LOD and neighbor LOD.
-      updatePatchLod(patch: TerrainPatch): void;
-      // Set patch size attribute.
-      setPatchSizeAttr(value: number): void;
-
-   }
-
-   export class TerrainPatch extends Drawable {
-
-      updateGeometryType: UpdateGeometryType;
-      numOccluderTriangles: number;
-      owner: Terrain;
-      material: Material;
-      boundingBox: BoundingBox;
-      coordinates: IntVector2;
-      occlusionOffset: number;
-      northPatch: TerrainPatch;
-      southPatch: TerrainPatch;
-      westPatch: TerrainPatch;
-      eastPatch: TerrainPatch;
-      lodLevel: number;
-
-      // Construct.
-      constructor();
-
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-      getUpdateGeometryType(): UpdateGeometryType;
-      // Return number of occlusion geometry triangles.
-      getNumOccluderTriangles(): number;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set owner terrain.
-      setOwner(terrain: Terrain): void;
-      // Set neighbor patches.
-      setNeighbors(north: TerrainPatch, south: TerrainPatch, west: TerrainPatch, east: TerrainPatch): void;
-      // Set material.
-      setMaterial(material: Material): void;
-      // Set local-space bounding box.
-      setBoundingBox(box: BoundingBox): void;
-      // Set patch coordinates.
-      setCoordinates(coordinates: IntVector2): void;
-      // Set vertical offset for occlusion geometry. Should be negative.
-      setOcclusionOffset(offset: number): void;
-      // Reset to LOD level 0.
-      resetLod(): void;
-      // Return owner terrain.
-      getOwner(): Terrain;
-      // Return north neighbor patch.
-      getNorthPatch(): TerrainPatch;
-      // Return south neighbor patch.
-      getSouthPatch(): TerrainPatch;
-      // Return west neighbor patch.
-      getWestPatch(): TerrainPatch;
-      // Return east neighbor patch.
-      getEastPatch(): TerrainPatch;
-      // Return patch coordinates.
-      getCoordinates(): IntVector2;
-      // Return current LOD level.
-      getLodLevel(): number;
-      // Return vertical offset for occlusion geometry..
-      getOcclusionOffset(): number;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Atomic2D
-//----------------------------------------------------
-
-
-   export class AnimatedSprite2D extends StaticSprite2D {
-
-      speed: number;
-      animationSet: AnimationSet2D;
-      loopMode: LoopMode2D;
-      animation: string;
-      rootNode: Node;
-      animationAttr: string;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Set speed.
-      setSpeed(speed: number): void;
-      // Set animation by name and loop mode.
-      setAnimation(name: string, loopMode?: LoopMode2D): void;
-      // Set animation set.
-      setAnimationSet(animationSet: AnimationSet2D): void;
-      // Set loop mode.
-      setLoopMode(loopMode: LoopMode2D): void;
-      // Return speed.
-      getSpeed(): number;
-      // Return animation name.
-      getAnimation(): string;
-      // Return animation.
-      getAnimationSet(): AnimationSet2D;
-      // Return loop mode.
-      getLoopMode(): LoopMode2D;
-      // Return root node.
-      getRootNode(): Node;
-      // Set animation by name.
-      setAnimationAttr(name: string): void;
-
-   }
-
-   export class Animation2D extends RefCounted {
-
-      name: string;
-      length: number;
-      looped: boolean;
-      animationSet: AnimationSet2D;
-      numTracks: number;
-
-      // Construct.
-      constructor(animationSet: AnimationSet2D);
-
-      // Set name.
-      setName(name: string): void;
-      // Set length.
-      setLength(length: number): void;
-      // Set looped.
-      setLooped(looped: boolean): void;
-      // Return animation set.
-      getAnimationSet(): AnimationSet2D;
-      // Return name.
-      getName(): string;
-      // Return length.
-      getLength(): number;
-      // Return looped.
-      isLooped(): boolean;
-      // Return number of animation tracks.
-      getNumTracks(): number;
-
-   }
-
-   export class AnimationSet2D extends Resource {
-
-      numAnimations: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Get number of animations.
-      getNumAnimations(): number;
-
-   }
-
-   export class CollisionBox2D extends CollisionShape2D {
-
-      size: Vector2;
-      angle: number;
-      center: Vector2;
-
-      // Construct.
-      constructor();
-
-      // Set size.
-      setSize(size: Vector2): void;
-      // Set angle.
-      setAngle(angle: number): void;
-      // Return size.
-      getSize(): Vector2;
-      // Return center.
-      getCenter(): Vector2;
-      // Return angle.
-      getAngle(): number;
-
-   }
-
-   export class CollisionChain2D extends CollisionShape2D {
-
-      loop: boolean;
-      vertexCount: number;
-
-      // Construct.
-      constructor();
-
-      // Set loop.
-      setLoop(loop: boolean): void;
-      // Set vertex count.
-      setVertexCount(count: number): void;
-      // Set vertex.
-      setVertex(index: number, vertex: Vector2): void;
-      // Return loop.
-      getLoop(): boolean;
-      // Return vertex count.
-      getVertexCount(): number;
-      // Return vertex.
-      getVertex(index: number): Vector2;
-
-   }
-
-   export class CollisionCircle2D extends CollisionShape2D {
-
-      radius: number;
-      center: Vector2;
-
-      // Construct.
-      constructor();
-
-      // Set radius.
-      setRadius(radius: number): void;
-      // Return radius.
-      getRadius(): number;
-      // Return center.
-      getCenter(): Vector2;
-
-   }
-
-   export class CollisionEdge2D extends CollisionShape2D {
-
-      vertex1: Vector2;
-      vertex2: Vector2;
-
-      // Construct.
-      constructor();
-
-      // Set vertex 1.
-      setVertex1(vertex: Vector2): void;
-      // Set vertex 2.
-      setVertex2(vertex: Vector2): void;
-      // Set vertices.
-      setVertices(vertex1: Vector2, vertex2: Vector2): void;
-      // Return vertex 1.
-      getVertex1(): Vector2;
-      // Return vertex 2.
-      getVertex2(): Vector2;
-
-   }
-
-   export class CollisionPolygon2D extends CollisionShape2D {
-
-      vertexCount: number;
-
-      // Construct.
-      constructor();
-
-      // Set vertex count.
-      setVertexCount(count: number): void;
-      // Set vertex.
-      setVertex(index: number, vertex: Vector2): void;
-      // Return vertex count.
-      getVertexCount(): number;
-      // Return vertex.
-      getVertex(index: number): Vector2;
-
-   }
-
-   export class CollisionShape2D extends Component {
-
-      trigger: boolean;
-      categoryBits: number;
-      maskBits: number;
-      groupIndex: number;
-      density: number;
-      friction: number;
-      restitution: number;
-      mass: number;
-      inertia: number;
-      massCenter: Vector2;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Set trigger.
-      setTrigger(trigger: boolean): void;
-      // Set filter category bits.
-      setCategoryBits(categoryBits: number): void;
-      // Set filter mask bits.
-      setMaskBits(maskBits: number): void;
-      // Set filter group index.
-      setGroupIndex(groupIndex: number): void;
-      // Set density.
-      setDensity(density: number): void;
-      // Set friction.
-      setFriction(friction: number): void;
-      // Set restitution .
-      setRestitution(restitution: number): void;
-      // Create fixture.
-      createFixture(): void;
-      // Release fixture.
-      releaseFixture(): void;
-      // Return trigger.
-      isTrigger(): boolean;
-      // Return filter category bits.
-      getCategoryBits(): number;
-      // Return filter mask bits.
-      getMaskBits(): number;
-      // Return filter group index.
-      getGroupIndex(): number;
-      // Return density.
-      getDensity(): number;
-      // Return friction.
-      getFriction(): number;
-      // Return restitution.
-      getRestitution(): number;
-      // Return mass.
-      getMass(): number;
-      // Return inertia.
-      getInertia(): number;
-      // Return mass center.
-      getMassCenter(): Vector2;
-
-   }
-
-   export class Constraint2D extends Component {
-
-      otherBody: RigidBody2D;
-      collideConnected: boolean;
-      attachedConstraint: Constraint2D;
-      ownerBody: RigidBody2D;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Create Joint.
-      createJoint(): void;
-      // Release Joint.
-      releaseJoint(): void;
-      // Set other rigid body.
-      setOtherBody(body: RigidBody2D): void;
-      // Set collide connected.
-      setCollideConnected(collideConnected: boolean): void;
-      // Set attached constriant (for gear).
-      setAttachedConstraint(constraint: Constraint2D): void;
-      // Return owner body.
-      getOwnerBody(): RigidBody2D;
-      // Return other body.
-      getOtherBody(): RigidBody2D;
-      // Return collide connected.
-      getCollideConnected(): boolean;
-      // Return attached constraint (for gear).
-      getAttachedConstraint(): Constraint2D;
-
-   }
-
-   export class ConstraintDistance2D extends Constraint2D {
-
-      ownerBodyAnchor: Vector2;
-      otherBodyAnchor: Vector2;
-      frequencyHz: number;
-      dampingRatio: number;
-
-      // Construct.
-      constructor();
-
-      // Set owner body anchor.
-      setOwnerBodyAnchor(anchor: Vector2): void;
-      // Set other body anchor.
-      setOtherBodyAnchor(anchor: Vector2): void;
-      // Set frequency Hz.
-      setFrequencyHz(frequencyHz: number): void;
-      // Set damping ratio.
-      setDampingRatio(dampingRatio: number): void;
-      // Return owner body anchor.
-      getOwnerBodyAnchor(): Vector2;
-      // Return other body anchor.
-      getOtherBodyAnchor(): Vector2;
-      // Return frequency Hz.
-      getFrequencyHz(): number;
-      // Return damping ratio.
-      getDampingRatio(): number;
-
-   }
-
-   export class ConstraintFriction2D extends Constraint2D {
-
-      anchor: Vector2;
-      maxForce: number;
-      maxTorque: number;
-
-      // Construct.
-      constructor();
-
-      // Set anchor.
-      setAnchor(anchor: Vector2): void;
-      // Set max force.
-      setMaxForce(maxForce: number): void;
-      // Set max torque.
-      setMaxTorque(maxTorque: number): void;
-      // Return anchor.
-      getAnchor(): Vector2;
-      // Set max force.
-      getMaxForce(): number;
-      // Set max torque.
-      getMaxTorque(): number;
-
-   }
-
-   export class ConstraintGear2D extends Constraint2D {
-
-      ownerConstraint: Constraint2D;
-      otherConstraint: Constraint2D;
-      ratio: number;
-
-      // Construct.
-      constructor();
-
-      // Set owner constraint.
-      setOwnerConstraint(constraint: Constraint2D): void;
-      // Set other constraint.
-      setOtherConstraint(constraint: Constraint2D): void;
-      // Set ratio.
-      setRatio(ratio: number): void;
-      // Return owner constraint.
-      getOwnerConstraint(): Constraint2D;
-      // Return other constraint.
-      getOtherConstraint(): Constraint2D;
-      // Return ratio.
-      getRatio(): number;
-
-   }
-
-   export class ConstraintMotor2D extends Constraint2D {
-
-      linearOffset: Vector2;
-      angularOffset: number;
-      maxForce: number;
-      maxTorque: number;
-      correctionFactor: number;
-
-      // Construct.
-      constructor();
-
-      // Set linear offset.
-      setLinearOffset(linearOffset: Vector2): void;
-      // Set angular offset.
-      setAngularOffset(angularOffset: number): void;
-      // Set max force.
-      setMaxForce(maxForce: number): void;
-      // Set max torque.
-      setMaxTorque(maxTorque: number): void;
-      // Set correction factor.
-      setCorrectionFactor(correctionFactor: number): void;
-      // Return linear offset.
-      getLinearOffset(): Vector2;
-      // Return angular offset.
-      getAngularOffset(): number;
-      // Return max force.
-      getMaxForce(): number;
-      // Return max torque.
-      getMaxTorque(): number;
-      // Return correction factor.
-      getCorrectionFactor(): number;
-
-   }
-
-   export class ConstraintMouse2D extends Constraint2D {
-
-      target: Vector2;
-      maxForce: number;
-      frequencyHz: number;
-      dampingRatio: number;
-
-      // Construct.
-      constructor();
-
-      // Set target.
-      setTarget(target: Vector2): void;
-      // Set max force.
-      setMaxForce(maxForce: number): void;
-      // Set frequency Hz.
-      setFrequencyHz(frequencyHz: number): void;
-      // Set damping ratio.
-      setDampingRatio(dampingRatio: number): void;
-      // Return target.
-      getTarget(): Vector2;
-      // Return max force.
-      getMaxForce(): number;
-      // Return frequency Hz.
-      getFrequencyHz(): number;
-      // Return damping ratio.
-      getDampingRatio(): number;
-
-   }
-
-   export class ConstraintPrismatic2D extends Constraint2D {
-
-      anchor: Vector2;
-      axis: Vector2;
-      enableLimit: boolean;
-      lowerTranslation: number;
-      upperTranslation: number;
-      enableMotor: boolean;
-      maxMotorForce: number;
-      motorSpeed: number;
-
-      // Construct.
-      constructor();
-
-      // Set anchor.
-      setAnchor(anchor: Vector2): void;
-      // Set axis.
-      setAxis(axis: Vector2): void;
-      // Set enable limit.
-      setEnableLimit(enableLimit: boolean): void;
-      // Set lower translation.
-      setLowerTranslation(lowerTranslation: number): void;
-      // Set upper translation.
-      setUpperTranslation(upperTranslation: number): void;
-      // Set enable motor.
-      setEnableMotor(enableMotor: boolean): void;
-      // Set maxmotor force.
-      setMaxMotorForce(maxMotorForce: number): void;
-      // Set motor speed.
-      setMotorSpeed(motorSpeed: number): void;
-      // Return anchor.
-      getAnchor(): Vector2;
-      // Return axis.
-      getAxis(): Vector2;
-      // Return enable limit.
-      getEnableLimit(): boolean;
-      // Return lower translation.
-      getLowerTranslation(): number;
-      // Return upper translation.
-      getUpperTranslation(): number;
-      // Return enable motor.
-      getEnableMotor(): boolean;
-      // Return maxmotor force.
-      getMaxMotorForce(): number;
-      // Return motor speed.
-      getMotorSpeed(): number;
-
-   }
-
-   export class ConstraintPulley2D extends Constraint2D {
-
-      ownerBodyGroundAnchor: Vector2;
-      otherBodyGroundAnchor: Vector2;
-      ownerBodyAnchor: Vector2;
-      otherBodyAnchor: Vector2;
-      ratio: number;
-
-      // Construct.
-      constructor();
-
-      // Set other body ground anchor point.
-      setOwnerBodyGroundAnchor(groundAnchor: Vector2): void;
-      // Set other body ground anchor point.
-      setOtherBodyGroundAnchor(groundAnchor: Vector2): void;
-      // Set owner body anchor point.
-      setOwnerBodyAnchor(anchor: Vector2): void;
-      // Set other body anchor point.
-      setOtherBodyAnchor(anchor: Vector2): void;
-      // Set ratio.
-      setRatio(ratio: number): void;
-      // Return owner body ground anchor.
-      getOwnerBodyGroundAnchor(): Vector2;
-      // return other body ground anchor.
-      getOtherBodyGroundAnchor(): Vector2;
-      // Return owner body anchor.
-      getOwnerBodyAnchor(): Vector2;
-      // Return other body anchor.
-      getOtherBodyAnchor(): Vector2;
-      // Return ratio.
-      getRatio(): number;
-
-   }
-
-   export class ConstraintRevolute2D extends Constraint2D {
-
-      anchor: Vector2;
-      enableLimit: boolean;
-      lowerAngle: number;
-      upperAngle: number;
-      enableMotor: boolean;
-      motorSpeed: number;
-      maxMotorTorque: number;
-
-      // Construct.
-      constructor();
-
-      // Set anchor.
-      setAnchor(anchor: Vector2): void;
-      // Set enable limit.
-      setEnableLimit(enableLimit: boolean): void;
-      // Set lower angle.
-      setLowerAngle(lowerAngle: number): void;
-      // Set upper angle.
-      setUpperAngle(upperAngle: number): void;
-      // Set enable motor.
-      setEnableMotor(enableMotor: boolean): void;
-      // Set motor speed.
-      setMotorSpeed(motorSpeed: number): void;
-      // Set max motor torque.
-      setMaxMotorTorque(maxMotorTorque: number): void;
-      // Return anchor.
-      getAnchor(): Vector2;
-      // Return enable limit.
-      getEnableLimit(): boolean;
-      // Return lower angle.
-      getLowerAngle(): number;
-      // Return upper angle.
-      getUpperAngle(): number;
-      // Return enable motor.
-      getEnableMotor(): boolean;
-      // Return motor speed.
-      getMotorSpeed(): number;
-      // Return max motor torque.
-      getMaxMotorTorque(): number;
-
-   }
-
-   export class ConstraintRope2D extends Constraint2D {
-
-      ownerBodyAnchor: Vector2;
-      otherBodyAnchor: Vector2;
-      maxLength: number;
-
-      // Construct.
-      constructor();
-
-      // Set owner body anchor.
-      setOwnerBodyAnchor(anchor: Vector2): void;
-      // Set other body anchor.
-      setOtherBodyAnchor(anchor: Vector2): void;
-      // Set max length.
-      setMaxLength(maxLength: number): void;
-      // Return owner body anchor.
-      getOwnerBodyAnchor(): Vector2;
-      // Return other body anchor.
-      getOtherBodyAnchor(): Vector2;
-      // Return max length.
-      getMaxLength(): number;
-
-   }
-
-   export class ConstraintWeld2D extends Constraint2D {
-
-      anchor: Vector2;
-      frequencyHz: number;
-      dampingRatio: number;
-
-      // Construct.
-      constructor();
-
-      // Set anchor.
-      setAnchor(anchor: Vector2): void;
-      // Set frequency Hz.
-      setFrequencyHz(frequencyHz: number): void;
-      // Set damping ratio.
-      setDampingRatio(dampingRatio: number): void;
-      // Return anchor.
-      getAnchor(): Vector2;
-      // Return frequency Hz.
-      getFrequencyHz(): number;
-      // Return damping ratio.
-      getDampingRatio(): number;
-
-   }
-
-   export class ConstraintWheel2D extends Constraint2D {
-
-      anchor: Vector2;
-      axis: Vector2;
-      enableMotor: boolean;
-      maxMotorTorque: number;
-      motorSpeed: number;
-      frequencyHz: number;
-      dampingRatio: number;
-
-      // Construct.
-      constructor();
-
-      // Set anchor.
-      setAnchor(anchor: Vector2): void;
-      // Set axis.
-      setAxis(axis: Vector2): void;
-      // Set enable motor.
-      setEnableMotor(enableMotor: boolean): void;
-      // Set max motor torque.
-      setMaxMotorTorque(maxMotorTorque: number): void;
-      // Set motor speed.
-      setMotorSpeed(motorSpeed: number): void;
-      // Set frequency Hz.
-      setFrequencyHz(frequencyHz: number): void;
-      // Set damping ratio.
-      setDampingRatio(dampingRatio: number): void;
-      // Return anchor.
-      getAnchor(): Vector2;
-      // Return axis.
-      getAxis(): Vector2;
-      // Return enable motor.
-      getEnableMotor(): boolean;
-      // Return maxMotor torque.
-      getMaxMotorTorque(): number;
-      // Return motor speed.
-      getMotorSpeed(): number;
-      // Return frequency Hz.
-      getFrequencyHz(): number;
-      // Return damping ratio.
-      getDampingRatio(): number;
-
-   }
-
-   export class Drawable2D extends Drawable {
-
-      layer: number;
-      orderInLayer: number;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Set layer.
-      setLayer(layer: number): void;
-      // Set order in layer.
-      setOrderInLayer(orderInLayer: number): void;
-      // Return layer.
-      getLayer(): number;
-      // Return order in layer.
-      getOrderInLayer(): number;
-
-   }
-
-   export class Light2D extends Component {
-
-      lightGroupID: number;
-      color: Color;
-      numRays: number;
-      lightType: LightType2D;
-      castShadows: boolean;
-      softShadows: boolean;
-      softShadowLength: number;
-      backtrace: boolean;
-
-      // Construct.
-      constructor();
-
-      setLightGroupID(id: number): void;
-      getLightGroupID(): number;
-      getColor(): Color;
-      setColor(color: Color): void;
-      updateVertices(): void;
-      setNumRays(numRays: number): void;
-      getNumRays(): number;
-      onSetEnabled(): void;
-      getLightType(): LightType2D;
-      getCastShadows(): boolean;
-      setCastShadows(castShadows: boolean): void;
-      getSoftShadows(): boolean;
-      setSoftShadows(softShadows: boolean): void;
-      getSoftShadowLength(): number;
-      setSoftShadowLength(softShadowLength: number): void;
-      getBacktrace(): boolean;
-      setBacktrace(backtrace: boolean): void;
-
-   }
-
-   export class DirectionalLight2D extends Light2D {
-
-      direction: number;
-
-      // Construct.
-      constructor();
-
-      updateVertices(): void;
-      getDirection(): number;
-      setDirection(direction: number): void;
-
-   }
-
-   export class PositionalLight2D extends Light2D {
-
-      // Construct.
-      constructor();
-
-      updateVertices(): void;
-
-   }
-
-   export class PointLight2D extends PositionalLight2D {
-
-      radius: number;
-
-      // Construct.
-      constructor();
-
-      updateVertices(): void;
-      setRadius(radius: number): void;
-      getRadius(): number;
-
-   }
-
-   export class Light2DGroup extends Drawable2D {
-
-      physicsWorld: PhysicsWorld2D;
-      ambientColor: Color;
-      lightGroupID: number;
-      frustumBox: BoundingBox;
-
-      // Construct.
-      constructor();
-
-      getPhysicsWorld(): PhysicsWorld2D;
-      addLight2D(light: Light2D): void;
-      removeLight2D(light: Light2D): void;
-      setDirty(): void;
-      setAmbientColor(color: Color): void;
-      getAmbientColor(): Color;
-      setLightGroupID(id: number): void;
-      getLightGroupID(): number;
-      getFrustumBox(): BoundingBox;
-
-   }
-
-   export class ParticleEffect2D extends Resource {
-
-      sprite: Sprite2D;
-      sourcePositionVariance: Vector2;
-      speed: number;
-      speedVariance: number;
-      particleLifeSpan: number;
-      particleLifespanVariance: number;
-      angle: number;
-      angleVariance: number;
-      gravity: Vector2;
-      radialAcceleration: number;
-      tangentialAcceleration: number;
-      radialAccelVariance: number;
-      tangentialAccelVariance: number;
-      startColor: Color;
-      startColorVariance: Color;
-      finishColor: Color;
-      finishColorVariance: Color;
-      maxParticles: number;
-      startParticleSize: number;
-      startParticleSizeVariance: number;
-      finishParticleSize: number;
-      finishParticleSizeVariance: number;
-      duration: number;
-      emitterType: EmitterType2D;
-      maxRadius: number;
-      maxRadiusVariance: number;
-      minRadius: number;
-      minRadiusVariance: number;
-      rotatePerSecond: number;
-      rotatePerSecondVariance: number;
-      blendMode: BlendMode;
-      rotationStart: number;
-      rotationStartVariance: number;
-      rotationEnd: number;
-      rotationEndVariance: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Set sprite.
-      setSprite(sprite: Sprite2D): void;
-      // Set source position variance.
-      setSourcePositionVariance(sourcePositionVariance: Vector2): void;
-      // Set speed.
-      setSpeed(speed: number): void;
-      // Set speed variance.
-      setSpeedVariance(speedVariance: number): void;
-      // Set particle lifespan.
-      setParticleLifeSpan(particleLifeSpan: number): void;
-      // Set particle lifespan variance.
-      setParticleLifespanVariance(particleLifespanVariance: number): void;
-      // Set angle.
-      setAngle(angle: number): void;
-      // Set angle variance.
-      setAngleVariance(angleVariance: number): void;
-      // Set gravity.
-      setGravity(gravity: Vector2): void;
-      // Set radial acceleration.
-      setRadialAcceleration(radialAcceleration: number): void;
-      // Set tangential acceleration.
-      setTangentialAcceleration(tangentialAcceleration: number): void;
-      // Set radial acceleration variance.
-      setRadialAccelVariance(radialAccelVariance: number): void;
-      // Set tangential acceleration variance.
-      setTangentialAccelVariance(tangentialAccelVariance: number): void;
-      // Set start color.
-      setStartColor(startColor: Color): void;
-      // Set start color variance.
-      setStartColorVariance(startColorVariance: Color): void;
-      // Set finish color.
-      setFinishColor(finishColor: Color): void;
-      // Set finish color variance.
-      setFinishColorVariance(finishColorVariance: Color): void;
-      // Set max particles.
-      setMaxParticles(maxParticles: number): void;
-      // Set start particle size.
-      setStartParticleSize(startParticleSize: number): void;
-      // Set start particle size variance.
-      setStartParticleSizeVariance(startParticleSizeVariance: number): void;
-      // Set finish particle size.
-      setFinishParticleSize(finishParticleSize: number): void;
-      // Set finish particle size variance.
-      setFinishParticleSizeVariance(FinishParticleSizeVariance: number): void;
-      // Set duration.
-      setDuration(duration: number): void;
-      // Set emitter type.
-      setEmitterType(emitterType: EmitterType2D): void;
-      // Set max radius.
-      setMaxRadius(maxRadius: number): void;
-      // Set max radius variance.
-      setMaxRadiusVariance(maxRadiusVariance: number): void;
-      // Set min radius.
-      setMinRadius(minRadius: number): void;
-      // Set min radius variance.
-      setMinRadiusVariance(minRadiusVariance: number): void;
-      // Set rotate per second.
-      setRotatePerSecond(rotatePerSecond: number): void;
-      // Set rotate per second variance.
-      setRotatePerSecondVariance(rotatePerSecondVariance: number): void;
-      // Set blend mode.
-      setBlendMode(blendMode: BlendMode): void;
-      // Set rotation start.
-      setRotationStart(rotationStart: number): void;
-      // Set rotation start variance.
-      setRotationStartVariance(rotationStartVariance: number): void;
-      // Set rotation end.
-      setRotationEnd(rotationEnd: number): void;
-      // Set rotation end variance.
-      setRotationEndVariance(rotationEndVariance: number): void;
-      // Return sprite.
-      getSprite(): Sprite2D;
-      // Return source position variance.
-      getSourcePositionVariance(): Vector2;
-      // Return speed.
-      getSpeed(): number;
-      // Return speed variance.
-      getSpeedVariance(): number;
-      // Return particle lifespan.
-      getParticleLifeSpan(): number;
-      // Return particle lifespan variance.
-      getParticleLifespanVariance(): number;
-      // Return angle.
-      getAngle(): number;
-      // Return angle variance.
-      getAngleVariance(): number;
-      // Return gravity.
-      getGravity(): Vector2;
-      // Return radial acceleration.
-      getRadialAcceleration(): number;
-      // Return tangential acceleration.
-      getTangentialAcceleration(): number;
-      // Return radial acceleration variance.
-      getRadialAccelVariance(): number;
-      // Return tangential acceleration variance.
-      getTangentialAccelVariance(): number;
-      // Return start color.
-      getStartColor(): Color;
-      // Return start color variance.
-      getStartColorVariance(): Color;
-      // Return finish color.
-      getFinishColor(): Color;
-      // Return finish color variance.
-      getFinishColorVariance(): Color;
-      // Return max particles.
-      getMaxParticles(): number;
-      // Return start particle size.
-      getStartParticleSize(): number;
-      // Return start particle size variance.
-      getStartParticleSizeVariance(): number;
-      // Return finish particle size.
-      getFinishParticleSize(): number;
-      // Return finish particle size variance.
-      getFinishParticleSizeVariance(): number;
-      // Return duration.
-      getDuration(): number;
-      // Return emitter type.
-      getEmitterType(): EmitterType2D;
-      // Return max radius.
-      getMaxRadius(): number;
-      // Return max radius variance.
-      getMaxRadiusVariance(): number;
-      // Return min radius.
-      getMinRadius(): number;
-      // Return min radius variance.
-      getMinRadiusVariance(): number;
-      // Return rotate per second.
-      getRotatePerSecond(): number;
-      // Return rotate per second variance.
-      getRotatePerSecondVariance(): number;
-      // Return blend mode.
-      getBlendMode(): BlendMode;
-      // Return rotation start.
-      getRotationStart(): number;
-      // Return rotation start variance.
-      getRotationStartVariance(): number;
-      // Return rotation end.
-      getRotationEnd(): number;
-      // Return rotation end variance.
-      getRotationEndVariance(): number;
-
-   }
-
-   export class ParticleEmitter2D extends Drawable2D {
-
-      effect: ParticleEffect2D;
-      sprite: Sprite2D;
-      blendMode: BlendMode;
-      maxParticles: number;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Set particle effect.
-      setEffect(effect: ParticleEffect2D): void;
-      // Set sprite.
-      setSprite(sprite: Sprite2D): void;
-      // Set blend mode.
-      setBlendMode(blendMode: BlendMode): void;
-      // Set max particles.
-      setMaxParticles(maxParticles: number): void;
-      // Return particle effect.
-      getEffect(): ParticleEffect2D;
-      // Return sprite.
-      getSprite(): Sprite2D;
-      // Return blend mode.
-      getBlendMode(): BlendMode;
-      // Return max particles.
-      getMaxParticles(): number;
-
-   }
-
-   export class PhysicsWorld2D extends Component {
-
-      drawShape: boolean;
-      drawJoint: boolean;
-      drawAabb: boolean;
-      drawPair: boolean;
-      drawCenterOfMass: boolean;
-      allowSleeping: boolean;
-      warmStarting: boolean;
-      continuousPhysics: boolean;
-      subStepping: boolean;
-      gravity: Vector2;
-      autoClearForces: boolean;
-      velocityIterations: number;
-      positionIterations: number;
-      applyingTransforms: boolean;
-
-      // Construct.
-      constructor();
-
-      // Step the simulation forward.
-      update(timeStep: number): void;
-      // Add debug geometry to the debug renderer.
-      drawDebugGeometry(): void;
-      // Set draw shape.
-      setDrawShape(drawShape: boolean): void;
-      // Set draw joint.
-      setDrawJoint(drawJoint: boolean): void;
-      // Set draw aabb.
-      setDrawAabb(drawAabb: boolean): void;
-      // Set draw pair.
-      setDrawPair(drawPair: boolean): void;
-      // Set draw center of mass.
-      setDrawCenterOfMass(drawCenterOfMass: boolean): void;
-      // Set allow sleeping.
-      setAllowSleeping(enable: boolean): void;
-      // Set warm starting.
-      setWarmStarting(enable: boolean): void;
-      // Set continuous physics.
-      setContinuousPhysics(enable: boolean): void;
-      // Set sub stepping.
-      setSubStepping(enable: boolean): void;
-      // Set gravity.
-      setGravity(gravity: Vector2): void;
-      // Set auto clear forces.
-      setAutoClearForces(enable: boolean): void;
-      // Set velocity iterations.
-      setVelocityIterations(velocityIterations: number): void;
-      // Set position iterations.
-      setPositionIterations(positionIterations: number): void;
-      // Add rigid body.
-      addRigidBody(rigidBody: RigidBody2D): void;
-      // Remove rigid body.
-      removeRigidBody(rigidBody: RigidBody2D): void;
-      // Return draw shape.
-      getDrawShape(): boolean;
-      // Return draw joint.
-      getDrawJoint(): boolean;
-      // Return draw aabb.
-      getDrawAabb(): boolean;
-      // Return draw pair.
-      getDrawPair(): boolean;
-      // Return draw center of mass.
-      getDrawCenterOfMass(): boolean;
-      // Return allow sleeping.
-      getAllowSleeping(): boolean;
-      // Return warm starting.
-      getWarmStarting(): boolean;
-      // Return continuous physics.
-      getContinuousPhysics(): boolean;
-      // Return sub stepping.
-      getSubStepping(): boolean;
-      // Return auto clear forces.
-      getAutoClearForces(): boolean;
-      // Return gravity.
-      getGravity(): Vector2;
-      // Return velocity iterations.
-      getVelocityIterations(): number;
-      // Return position iterations.
-      getPositionIterations(): number;
-      // Set node dirtying to be disregarded.
-      setApplyingTransforms(enable: boolean): void;
-      // Return whether node dirtying should be disregarded.
-      isApplyingTransforms(): boolean;
-
-   }
-
-   export class RigidBody2D extends Component {
-
-      bodyType: BodyType2D;
-      mass: number;
-      inertia: number;
-      massCenter: Vector2;
-      useFixtureMass: boolean;
-      linearDamping: number;
-      angularDamping: number;
-      allowSleep: boolean;
-      fixedRotation: boolean;
-      bullet: boolean;
-      gravityScale: number;
-      awake: boolean;
-      linearVelocity: Vector2;
-      angularVelocity: number;
-      castShadows: boolean;
-
-      // Construct.
-      constructor();
-
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Set body type.
-      setBodyType(bodyType: BodyType2D): void;
-      // Set Mass.
-      setMass(mass: number): void;
-      // Set inertia.
-      setInertia(inertia: number): void;
-      // Set mass center.
-      setMassCenter(center: Vector2): void;
-      // Use fixture mass (default is true).
-      setUseFixtureMass(useFixtureMass: boolean): void;
-      // Set linear damping.
-      setLinearDamping(linearDamping: number): void;
-      // Set angular damping.
-      setAngularDamping(angularDamping: number): void;
-      // Set allow sleep.
-      setAllowSleep(allowSleep: boolean): void;
-      // Set fixed rotation.
-      setFixedRotation(fixedRotation: boolean): void;
-      // Set bullet.
-      setBullet(bullet: boolean): void;
-      // Set gravity scale.
-      setGravityScale(gravityScale: number): void;
-      // Set awake.
-      setAwake(awake: boolean): void;
-      // Set linear velocity.
-      setLinearVelocity(linearVelocity: Vector2): void;
-      // Set angular velocity.
-      setAngularVelocity(angularVelocity: number): void;
-      // Apply force.
-      applyForce(force: Vector2, point: Vector2, wake: boolean): void;
-      // Apply force to center.
-      applyForceToCenter(force: Vector2, wake: boolean): void;
-      // Apply Torque.
-      applyTorque(torque: number, wake: boolean): void;
-      // Apply linear impulse.
-      applyLinearImpulse(impulse: Vector2, point: Vector2, wake: boolean): void;
-      // Apply angular impulse.
-      applyAngularImpulse(impulse: number, wake: boolean): void;
-      // Create body.
-      createBody(): void;
-      // Release body.
-      releaseBody(): void;
-      // Apply world transform.
-      applyWorldTransform(): void;
-      // Add collision shape.
-      addCollisionShape2D(collisionShape: CollisionShape2D): void;
-      // Remove collision shape.
-      removeCollisionShape2D(collisionShape: CollisionShape2D): void;
-      // Add constraint.
-      addConstraint2D(constraint: Constraint2D): void;
-      // Remove constraint.
-      removeConstraint2D(constraint: Constraint2D): void;
-      // Return body type.
-      getBodyType(): BodyType2D;
-      // Return Mass.
-      getMass(): number;
-      // Return inertia.
-      getInertia(): number;
-      // Return mass center.
-      getMassCenter(): Vector2;
-      // Return use fixture mass.
-      getUseFixtureMass(): boolean;
-      // Return linear damping.
-      getLinearDamping(): number;
-      // Return angular damping.
-      getAngularDamping(): number;
-      // Return allow sleep.
-      isAllowSleep(): boolean;
-      // Return fixed rotation.
-      isFixedRotation(): boolean;
-      // Return bullet.
-      isBullet(): boolean;
-      // Return gravity scale.
-      getGravityScale(): number;
-      // Return awake.
-      isAwake(): boolean;
-      // Return linear velocity.
-      getLinearVelocity(): Vector2;
-      // Return angular velocity.
-      getAngularVelocity(): number;
-      getCastShadows(): boolean;
-      setCastShadows(castShadows: boolean): void;
-
-   }
-
-   export class Sprite2D extends Resource {
-
-      texture: Texture2D;
-      rectangle: IntRect;
-      hotSpot: Vector2;
-      offset: IntVector2;
-      spriteSheet: SpriteSheet2D;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Set texture.
-      setTexture(texture: Texture2D): void;
-      // Set rectangle.
-      setRectangle(rectangle: IntRect): void;
-      // Set hot spot.
-      setHotSpot(hotSpot: Vector2): void;
-      // Set offset.
-      setOffset(offset: IntVector2): void;
-      // Set sprite sheet.
-      setSpriteSheet(spriteSheet: SpriteSheet2D): void;
-      // Return texture.
-      getTexture(): Texture2D;
-      // Return rectangle.
-      getRectangle(): IntRect;
-      // Return hot spot.
-      getHotSpot(): Vector2;
-      // Return offset.
-      getOffset(): IntVector2;
-      // Return sprite sheet.
-      getSpriteSheet(): SpriteSheet2D;
-      // Return texture rectangle.
-      getTextureRectangle(rect: Rect, flipX?: boolean, flipY?: boolean): boolean;
-
-   }
-
-   export class SpriteSheet2D extends Resource {
-
-      texture: Texture2D;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Return texture.
-      getTexture(): Texture2D;
-      // Return sprite.
-      getSprite(name: string): Sprite2D;
-      // Define sprite.
-      defineSprite(name: string, rectangle: IntRect, hotSpot?: Vector2, offset?: IntVector2): void;
-
-   }
-
-   export class StaticSprite2D extends Drawable2D {
-
-      sprite: Sprite2D;
-      blendMode: BlendMode;
-      flipX: boolean;
-      flipY: boolean;
-      color: Color;
-      alpha: number;
-      useHotSpot: boolean;
-      hotSpot: Vector2;
-      customMaterial: Material;
-
-      // Construct.
-      constructor();
-
-      // Set sprite.
-      setSprite(sprite: Sprite2D): void;
-      // Set blend mode.
-      setBlendMode(blendMode: BlendMode): void;
-      // Set flip.
-      setFlip(flipX: boolean, flipY: boolean): void;
-      // Set flip X.
-      setFlipX(flipX: boolean): void;
-      // Set flip Y.
-      setFlipY(flipY: boolean): void;
-      // Set color.
-      setColor(color: Color): void;
-      // Set alpha.
-      setAlpha(alpha: number): void;
-      // Set use hot spot.
-      setUseHotSpot(useHotSpot: boolean): void;
-      // Set hot spot.
-      setHotSpot(hotspot: Vector2): void;
-      // Set custom material.
-      setCustomMaterial(customMaterial: Material): void;
-      // Return sprite.
-      getSprite(): Sprite2D;
-      // Return blend mode.
-      getBlendMode(): BlendMode;
-      // Return flip X.
-      getFlipX(): boolean;
-      // Return flip Y.
-      getFlipY(): boolean;
-      // Return color.
-      getColor(): Color;
-      // Return alpha.
-      getAlpha(): number;
-      // Return use hot spot.
-      getUseHotSpot(): boolean;
-      // Return hot spot.
-      getHotSpot(): Vector2;
-      // Return custom material.
-      getCustomMaterial(): Material;
-
-   }
-
-   export class TileMap2D extends Component {
-
-      tmxFile: TmxFile2D;
-      numLayers: number;
-
-      // Construct.
-      constructor();
-
-      // Set tmx file.
-      setTmxFile(tmxFile: TmxFile2D): void;
-      // Return tmx file.
-      getTmxFile(): TmxFile2D;
-      // Return number of layers.
-      getNumLayers(): number;
-      // Return tile map layer at index.
-      getLayer(index: number): TileMapLayer2D;
-      getLayerByName(name: string): TileMapLayer2D;
-      // Convert tile index to position.
-      tileIndexToPosition(x: number, y: number): Vector2;
-
-   }
-
-   export class PropertySet2D extends RefCounted {
-
-      constructor();
-
-      // Return has property.
-      hasProperty(name: string): boolean;
-      // Return property value.
-      getProperty(name: string): string;
-
-   }
-
-   export class Tile2D extends RefCounted {
-
-      gid: number;
-      sprite: Sprite2D;
-      objectGroup: TmxObjectGroup2D;
-
-      // Construct.
-      constructor();
-
-      // Return gid.
-      getGid(): number;
-      // Return sprite.
-      getSprite(): Sprite2D;
-      // Return Object Group.
-      getObjectGroup(): TmxObjectGroup2D;
-      // Return has property.
-      hasProperty(name: string): boolean;
-      // Return property.
-      getProperty(name: string): string;
-
-   }
-
-   export class TileMapObject2D extends RefCounted {
-
-      objectType: TileMapObjectType2D;
-      name: string;
-      type: string;
-      position: Vector2;
-      size: Vector2;
-      numPoints: number;
-      tileGid: number;
-      tileSprite: Sprite2D;
-
-      constructor();
-
-      // Return type.
-      getObjectType(): TileMapObjectType2D;
-      // Return name.
-      getName(): string;
-      // Return type.
-      getType(): string;
-      // Return position.
-      getPosition(): Vector2;
-      // Return size (for rectangle and ellipse).
-      getSize(): Vector2;
-      // Return number of points (use for script).
-      getNumPoints(): number;
-      // Return point at index (use for script).
-      getPoint(index: number): Vector2;
-      // Return tile Gid.
-      getTileGid(): number;
-      // Return tile sprite.
-      getTileSprite(): Sprite2D;
-      // Return has property.
-      hasProperty(name: string): boolean;
-      // Return property value.
-      getProperty(name: string): string;
-      validCollisionShape(): boolean;
-      createCollisionShape(node: Node): CollisionShape2D;
-
-   }
-
-   export class TileMapLayer2D extends Component {
-
-      drawOrder: number;
-      visible: boolean;
-      tileMap: TileMap2D;
-      tmxLayer: TmxLayer2D;
-      layerType: TileMapLayerType2D;
-      width: number;
-      height: number;
-      numObjects: number;
-      imageNode: Node;
-      name: string;
-
-      // Construct.
-      constructor();
-
-      // Add debug geometry to the debug renderer.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Initialize with tile map and tmx layer.
-      initialize(tileMap: TileMap2D, tmxLayer: TmxLayer2D): void;
-      // Set draw order
-      setDrawOrder(drawOrder: number): void;
-      // Set visible.
-      setVisible(visible: boolean): void;
-      // Return tile map.
-      getTileMap(): TileMap2D;
-      // Return tmx layer.
-      getTmxLayer(): TmxLayer2D;
-      // Return draw order.
-      getDrawOrder(): number;
-      // Return visible.
-      isVisible(): boolean;
-      // Return has property
-      hasProperty(name: string): boolean;
-      // Return property.
-      getProperty(name: string): string;
-      // Return layer type.
-      getLayerType(): TileMapLayerType2D;
-      // Return width (for tile layer only).
-      getWidth(): number;
-      // Return height (for tile layer only).
-      getHeight(): number;
-      // Return tile node (for tile layer only).
-      getTileNode(x: number, y: number): Node;
-      // Return tile (for tile layer only).
-      getTile(x: number, y: number): Tile2D;
-      // Return number of tile map objects (for object group only).
-      getNumObjects(): number;
-      // Return tile map object (for object group only).
-      getObject(index: number): TileMapObject2D;
-      // Return object node (for object group only).
-      getObjectNode(index: number): Node;
-      // Return image node (for image layer only).
-      getImageNode(): Node;
-      getName(): string;
-
-   }
-
-   export class TmxLayer2D extends RefCounted {
-
-      tmxFile: TmxFile2D;
-      type: TileMapLayerType2D;
-      name: string;
-      width: number;
-      height: number;
-
-      constructor(tmxFile: TmxFile2D, type: TileMapLayerType2D);
-
-      // Return tmx file.
-      getTmxFile(): TmxFile2D;
-      // Return type.
-      getType(): TileMapLayerType2D;
-      // Return name.
-      getName(): string;
-      // Return width.
-      getWidth(): number;
-      // Return height.
-      getHeight(): number;
-      // Return is visible.
-      isVisible(): boolean;
-      // Return has property (use for script).
-      hasProperty(name: string): boolean;
-      // Return property value (use for script).
-      getProperty(name: string): string;
-
-   }
-
-   export class TmxTileLayer2D extends TmxLayer2D {
-
-      constructor(tmxFile: TmxFile2D);
-
-      // Return tile.
-      getTile(x: number, y: number): Tile2D;
-
-   }
-
-   export class TmxObjectGroup2D extends TmxLayer2D {
-
-      numObjects: number;
-
-      constructor(tmxFile: TmxFile2D);
-
-      // Return number of objects.
-      getNumObjects(): number;
-      // Return tile map object at index.
-      getObject(index: number): TileMapObject2D;
-
-   }
-
-   export class TmxImageLayer2D extends TmxLayer2D {
-
-      position: Vector2;
-      source: string;
-      sprite: Sprite2D;
-
-      constructor(tmxFile: TmxFile2D);
-
-      // Return position.
-      getPosition(): Vector2;
-      // Return source.
-      getSource(): string;
-      // Return sprite.
-      getSprite(): Sprite2D;
-
-   }
-
-   export class TmxFile2D extends Resource {
-
-      numLayers: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Return tile sprite by gid, if not exist return 0.
-      getTileSprite(gid: number): Sprite2D;
-      // Return tile property set by gid, if not exist return 0.
-      getTilePropertySet(gid: number): PropertySet2D;
-      // Return tile object group by gid, if not exist return 0.
-      getTileObjectGroup(gid: number): TmxObjectGroup2D;
-      // Return number of layers.
-      getNumLayers(): number;
-      // Return layer at index.
-      getLayer(index: number): TmxLayer2D;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Audio
-//----------------------------------------------------
-
-
-   export class Sound extends Resource {
-
-      size: number;
-      looped: boolean;
-      length: number;
-      dataSize: number;
-      sampleSize: number;
-      frequency: number;
-      intFrequency: number;
-
-      // Construct.
-      constructor();
-
-      // Set sound size in bytes. Also resets the sound to be uncompressed and one-shot.
-      setSize(dataSize: number): void;
-      // Set uncompressed sound data format.
-      setFormat(frequency: number, sixteenBit: boolean, stereo: boolean): void;
-      // Set loop on/off. If loop is enabled, sets the full sound as loop range.
-      setLooped(enable: boolean): void;
-      // Define loop.
-      setLoop(repeatOffset: number, endOffset: number): void;
-      // Return length in seconds.
-      getLength(): number;
-      // Return total sound data size.
-      getDataSize(): number;
-      // Return sample size.
-      getSampleSize(): number;
-      // Return default frequency as a float.
-      getFrequency(): number;
-      // Return default frequency as an integer.
-      getIntFrequency(): number;
-      // Return whether is looped.
-      isLooped(): boolean;
-      // Return whether data is sixteen bit.
-      isSixteenBit(): boolean;
-      // Return whether data is stereo.
-      isStereo(): boolean;
-      // Return whether is compressed.
-      isCompressed(): boolean;
-      // Fix interpolation by copying data from loop start to loop end (looped), or adding silence (oneshot.) Called internally, does not normally need to be called, unless the sound data is modified manually on the fly.
-      fixInterpolation(): void;
-
-   }
-
-   export class SoundSource extends Component {
-
-      soundType: string;
-      frequency: number;
-      gain: number;
-      attenuation: number;
-      panning: number;
-      autoRemove: boolean;
-      sound: Sound;
-      timePosition: number;
-      positionAttr: number;
-      playingAttr: boolean;
-
-      // Construct.
-      constructor();
-
-      // Play a sound.
-      play(sound: Sound): void;
-      // Stop playback.
-      stop(): void;
-      // Set sound type, determines the master gain group.
-      setSoundType(type: string): void;
-      // Set frequency.
-      setFrequency(frequency: number): void;
-      // Set gain. 0.0 is silence, 1.0 is full volume.
-      setGain(gain: number): void;
-      // Set attenuation. 1.0 is unaltered. Used for distance attenuated playback.
-      setAttenuation(attenuation: number): void;
-      // Set stereo panning. -1.0 is full left and 1.0 is full right.
-      setPanning(panning: number): void;
-      // Set whether sound source will be automatically removed from the scene node when playback stops.
-      setAutoRemove(enable: boolean): void;
-      // Return sound.
-      setSound(sound: Sound): void;
-      // Return sound.
-      getSound(): Sound;
-      // Return sound type, determines the master gain group.
-      getSoundType(): string;
-      // Return playback time position.
-      getTimePosition(): number;
-      // Return frequency.
-      getFrequency(): number;
-      // Return gain.
-      getGain(): number;
-      // Return attenuation.
-      getAttenuation(): number;
-      // Return stereo panning.
-      getPanning(): number;
-      // Return autoremove mode.
-      getAutoRemove(): boolean;
-      // Return whether is playing.
-      isPlaying(): boolean;
-      // Update the sound source. Perform subclass specific operations. Called by Audio.
-      update(timeStep: number): void;
-      // Update the effective master gain. Called internally and by Audio when the master gain changes.
-      updateMasterGain(): void;
-      // Set sound position attribute.
-      setPositionAttr(value: number): void;
-      // Set sound playing attribute
-      setPlayingAttr(value: boolean): void;
-      // Return sound position attribute.
-      getPositionAttr(): number;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Physics
-//----------------------------------------------------
-
-
-   export class CollisionShape extends Component {
-
-      terrain: number;
-      shapeType: ShapeType;
-      size: Vector3;
-      position: Vector3;
-      rotation: Quaternion;
-      margin: number;
-      model: Model;
-      lodLevel: number;
-      physicsWorld: PhysicsWorld;
-      worldBoundingBox: BoundingBox;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set as a box.
-      setBox(size: Vector3, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a sphere.
-      setSphere(diameter: number, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a static plane.
-      setStaticPlane(position?: Vector3, rotation?: Quaternion): void;
-      // Set as a cylinder.
-      setCylinder(diameter: number, height: number, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a capsule.
-      setCapsule(diameter: number, height: number, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a cone.
-      setCone(diameter: number, height: number, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a triangle mesh from Model. If you update a model's geometry and want to reapply the shape, call physicsWorld->RemoveCachedGeometry(model) first.
-      setTriangleMesh(model: Model, lodLevel?: number, scale?: Vector3, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a triangle mesh from CustomGeometry.
-      setCustomTriangleMesh(custom: CustomGeometry, scale?: Vector3, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a convex hull from Model.
-      setConvexHull(model: Model, lodLevel?: number, scale?: Vector3, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a convex hull from CustomGeometry.
-      setCustomConvexHull(custom: CustomGeometry, scale?: Vector3, position?: Vector3, rotation?: Quaternion): void;
-      // Set as a terrain. Only works if the same scene node contains a Terrain component.
-      setTerrain(lodLevel?: number): void;
-      // Set shape type.
-      setShapeType(type: ShapeType): void;
-      // Set shape size.
-      setSize(size: Vector3): void;
-      // Set offset position.
-      setPosition(position: Vector3): void;
-      // Set offset rotation.
-      setRotation(rotation: Quaternion): void;
-      // Set offset transform.
-      setTransform(position: Vector3, rotation: Quaternion): void;
-      // Set collision margin.
-      setMargin(margin: number): void;
-      // Set triangle mesh / convex hull model.
-      setModel(model: Model): void;
-      // Set model LOD level.
-      setLodLevel(lodLevel: number): void;
-      // Return physics world.
-      getPhysicsWorld(): PhysicsWorld;
-      // Return shape type.
-      getShapeType(): ShapeType;
-      // Return shape size.
-      getSize(): Vector3;
-      // Return offset position.
-      getPosition(): Vector3;
-      // Return offset rotation.
-      getRotation(): Quaternion;
-      // Return collision margin.
-      getMargin(): number;
-      // Return triangle mesh / convex hull model.
-      getModel(): Model;
-      // Return model LOD level.
-      getLodLevel(): number;
-      // Return world-space bounding box.
-      getWorldBoundingBox(): BoundingBox;
-      // Update the new collision shape to the RigidBody.
-      notifyRigidBody(updateMass?: boolean): void;
-      // Release the collision shape.
-      releaseShape(): void;
-
-   }
-
-   export class Constraint extends Component {
-
-      constraintType: ConstraintType;
-      otherBody: RigidBody;
-      position: Vector3;
-      rotation: Quaternion;
-      axis: Vector3;
-      otherPosition: Vector3;
-      otherRotation: Quaternion;
-      otherAxis: Vector3;
-      worldPosition: Vector3;
-      highLimit: Vector2;
-      lowLimit: Vector2;
-      erp: number;
-      cfm: number;
-      disableCollision: boolean;
-      physicsWorld: PhysicsWorld;
-      ownBody: RigidBody;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set constraint type and recreate the constraint.
-      setConstraintType(type: ConstraintType): void;
-      // Set other body to connect to. Set to null to connect to the static world.
-      setOtherBody(body: RigidBody): void;
-      // Set constraint position relative to own body.
-      setPosition(position: Vector3): void;
-      // Set constraint rotation relative to own body.
-      setRotation(rotation: Quaternion): void;
-      // Set constraint rotation relative to own body by specifying the axis.
-      setAxis(axis: Vector3): void;
-      // Set constraint position relative to the other body. If connected to the static world, is a world space position.
-      setOtherPosition(position: Vector3): void;
-      // Set constraint rotation relative to the other body. If connected to the static world, is a world space rotation.
-      setOtherRotation(rotation: Quaternion): void;
-      // Set constraint rotation relative to the other body by specifying the axis.
-      setOtherAxis(axis: Vector3): void;
-      // Set constraint world space position. Resets both own and other body relative position, ie. zeroes the constraint error.
-      setWorldPosition(position: Vector3): void;
-      // Set high limit. Interpretation is constraint type specific.
-      setHighLimit(limit: Vector2): void;
-      // Set low limit. Interpretation is constraint type specific.
-      setLowLimit(limit: Vector2): void;
-      // Set constraint error reduction parameter. Zero = leave to default.
-      setERP(erp: number): void;
-      // Set constraint force mixing parameter. Zero = leave to default.
-      setCFM(cfm: number): void;
-      // Set whether to disable collisions between connected bodies.
-      setDisableCollision(disable: boolean): void;
-      // Return physics world.
-      getPhysicsWorld(): PhysicsWorld;
-      // Return constraint type.
-      getConstraintType(): ConstraintType;
-      // Return rigid body in own scene node.
-      getOwnBody(): RigidBody;
-      // Return the other rigid body. May be null if connected to the static world.
-      getOtherBody(): RigidBody;
-      // Return constraint position relative to own body.
-      getPosition(): Vector3;
-      // Return constraint rotation relative to own body.
-      getRotation(): Quaternion;
-      // Return constraint position relative to other body.
-      getOtherPosition(): Vector3;
-      // Return constraint rotation relative to other body.
-      getOtherRotation(): Quaternion;
-      // Return constraint world position, calculated from own body.
-      getWorldPosition(): Vector3;
-      // Return high limit.
-      getHighLimit(): Vector2;
-      // Return low limit.
-      getLowLimit(): Vector2;
-      // Return constraint error reduction parameter.
-      getERP(): number;
-      // Return constraint force mixing parameter.
-      getCFM(): number;
-      // Return whether collisions between connected bodies are disabled.
-      getDisableCollision(): boolean;
-      // Release the constraint.
-      releaseConstraint(): void;
-      // Apply constraint frames.
-      applyFrames(): void;
-
-   }
-
-   export class PhysicsWorld extends Component {
-
-      fps: number;
-      gravity: Vector3;
-      maxSubSteps: number;
-      numIterations: number;
-      interpolation: boolean;
-      internalEdge: boolean;
-      splitImpulse: boolean;
-      maxNetworkAngularVelocity: number;
-      debugRenderer: DebugRenderer;
-      debugDepthTest: boolean;
-      applyingTransforms: boolean;
-
-      // Construct.
-      constructor();
-
-      // Set debug draw flags.
-      setDebugMode(debugMode: number): void;
-      // Return debug draw flags.
-      getDebugMode(): number;
-      // Step the simulation forward.
-      update(timeStep: number): void;
-      // Refresh collisions only without updating dynamics.
-      updateCollisions(): void;
-      // Set simulation substeps per second.
-      setFps(fps: number): void;
-      // Set gravity.
-      setGravity(gravity: Vector3): void;
-      // Set maximum number of physics substeps per frame. 0 (default) is unlimited. Positive values cap the amount. Use a negative value to enable an adaptive timestep. This may cause inconsistent physics behavior.
-      setMaxSubSteps(num: number): void;
-      // Set number of constraint solver iterations.
-      setNumIterations(num: number): void;
-      // Set whether to interpolate between simulation steps.
-      setInterpolation(enable: boolean): void;
-      // Set whether to use Bullet's internal edge utility for trimesh collisions. Disabled by default.
-      setInternalEdge(enable: boolean): void;
-      // Set split impulse collision mode. This is more accurate, but slower. Disabled by default.
-      setSplitImpulse(enable: boolean): void;
-      // Set maximum angular velocity for network replication.
-      setMaxNetworkAngularVelocity(velocity: number): void;
-      // Invalidate cached collision geometry for a model.
-      removeCachedGeometry(model: Model): void;
-      // Return gravity.
-      getGravity(): Vector3;
-      // Return maximum number of physics substeps per frame.
-      getMaxSubSteps(): number;
-      // Return number of constraint solver iterations.
-      getNumIterations(): number;
-      // Return whether interpolation between simulation steps is enabled.
-      getInterpolation(): boolean;
-      // Return whether Bullet's internal edge utility for trimesh collisions is enabled.
-      getInternalEdge(): boolean;
-      // Return whether split impulse collision mode is enabled.
-      getSplitImpulse(): boolean;
-      // Return simulation steps per second.
-      getFps(): number;
-      // Return maximum angular velocity for network replication.
-      getMaxNetworkAngularVelocity(): number;
-      // Add a rigid body to keep track of. Called by RigidBody.
-      addRigidBody(body: RigidBody): void;
-      // Remove a rigid body. Called by RigidBody.
-      removeRigidBody(body: RigidBody): void;
-      // Add a collision shape to keep track of. Called by CollisionShape.
-      addCollisionShape(shape: CollisionShape): void;
-      // Remove a collision shape. Called by CollisionShape.
-      removeCollisionShape(shape: CollisionShape): void;
-      // Add a constraint to keep track of. Called by Constraint.
-      addConstraint(joint: Constraint): void;
-      // Remove a constraint. Called by Constraint.
-      removeConstraint(joint: Constraint): void;
-      // Set debug renderer to use. Called both by PhysicsWorld itself and physics components.
-      setDebugRenderer(debug: DebugRenderer): void;
-      // Set debug geometry depth test mode. Called both by PhysicsWorld itself and physics components.
-      setDebugDepthTest(enable: boolean): void;
-      // Clean up the geometry cache.
-      cleanupGeometryCache(): void;
-      // Set node dirtying to be disregarded.
-      setApplyingTransforms(enable: boolean): void;
-      // Return whether node dirtying should be disregarded.
-      isApplyingTransforms(): boolean;
-
-   }
-
-   export class RigidBody extends Component {
-
-      mass: number;
-      position: Vector3;
-      rotation: Quaternion;
-      linearVelocity: Vector3;
-      linearFactor: Vector3;
-      linearRestThreshold: number;
-      linearDamping: number;
-      angularVelocity: Vector3;
-      angularFactor: Vector3;
-      angularRestThreshold: number;
-      angularDamping: number;
-      friction: number;
-      anisotropicFriction: Vector3;
-      rollingFriction: number;
-      restitution: number;
-      contactProcessingThreshold: number;
-      ccdRadius: number;
-      ccdMotionThreshold: number;
-      useGravity: boolean;
-      gravityOverride: Vector3;
-      kinematic: boolean;
-      trigger: boolean;
-      collisionLayer: number;
-      collisionMask: number;
-      collisionEventMode: CollisionEventMode;
-      physicsWorld: PhysicsWorld;
-      centerOfMass: Vector3;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Handle enabled/disabled state change.
-      onSetEnabled(): void;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set mass. Zero mass makes the body static.
-      setMass(mass: number): void;
-      // Set rigid body position in world space.
-      setPosition(position: Vector3): void;
-      // Set rigid body rotation in world space.
-      setRotation(rotation: Quaternion): void;
-      // Set rigid body position and rotation in world space as an atomic operation.
-      setTransform(position: Vector3, rotation: Quaternion): void;
-      // Set linear velocity.
-      setLinearVelocity(velocity: Vector3): void;
-      // Set linear degrees of freedom. Use 1 to enable an axis or 0 to disable. Default is all axes enabled (1, 1, 1).
-      setLinearFactor(factor: Vector3): void;
-      // Set linear velocity deactivation threshold.
-      setLinearRestThreshold(threshold: number): void;
-      // Set linear velocity damping factor.
-      setLinearDamping(damping: number): void;
-      // Set angular velocity.
-      setAngularVelocity(angularVelocity: Vector3): void;
-      // Set angular degrees of freedom. Use 1 to enable an axis or 0 to disable. Default is all axes enabled (1, 1, 1).
-      setAngularFactor(factor: Vector3): void;
-      // Set angular velocity deactivation threshold.
-      setAngularRestThreshold(threshold: number): void;
-      // Set angular velocity damping factor.
-      setAngularDamping(factor: number): void;
-      // Set friction coefficient.
-      setFriction(friction: number): void;
-      // Set anisotropic friction.
-      setAnisotropicFriction(friction: Vector3): void;
-      // Set rolling friction coefficient.
-      setRollingFriction(friction: number): void;
-      // Set restitution coefficient.
-      setRestitution(restitution: number): void;
-      // Set contact processing threshold.
-      setContactProcessingThreshold(threshold: number): void;
-      // Set continuous collision detection swept sphere radius.
-      setCcdRadius(radius: number): void;
-      // Set continuous collision detection motion-per-simulation-step threshold. 0 disables, which is the default.
-      setCcdMotionThreshold(threshold: number): void;
-      // Set whether gravity is applied to rigid body.
-      setUseGravity(enable: boolean): void;
-      // Set gravity override. If zero, uses physics world's gravity.
-      setGravityOverride(gravity: Vector3): void;
-      // Set rigid body kinematic mode. In kinematic mode forces are not applied to the rigid body.
-      setKinematic(enable: boolean): void;
-      // Set rigid body trigger mode. In trigger mode collisions are reported but do not apply forces.
-      setTrigger(enable: boolean): void;
-      // Set collision layer.
-      setCollisionLayer(layer: number): void;
-      // Set collision mask.
-      setCollisionMask(mask: number): void;
-      // Set collision group and mask.
-      setCollisionLayerAndMask(layer: number, mask: number): void;
-      // Set collision event signaling mode. Default is to signal when rigid bodies are active.
-      setCollisionEventMode(mode: CollisionEventMode): void;
-      // Apply torque.
-      applyTorque(torque: Vector3): void;
-      // Apply impulse to center of mass.
-      applyImpulse(impulse: Vector3): void;
-      // Apply torque impulse.
-      applyTorqueImpulse(torque: Vector3): void;
-      // Reset accumulated forces.
-      resetForces(): void;
-      // Activate rigid body if it was resting.
-      activate(): void;
-      // Readd rigid body to the physics world to clean up internal state like stale contacts.
-      reAddBodyToWorld(): void;
-      // Disable mass update. Call this to optimize performance when adding or editing multiple collision shapes in the same node.
-      disableMassUpdate(): void;
-      // Re-enable mass update and recalculate the mass/inertia by calling UpdateMass(). Call when collision shape changes are finished.
-      enableMassUpdate(): void;
-      // Return physics world.
-      getPhysicsWorld(): PhysicsWorld;
-      // Return mass.
-      getMass(): number;
-      // Return rigid body position in world space.
-      getPosition(): Vector3;
-      // Return rigid body rotation in world space.
-      getRotation(): Quaternion;
-      // Return linear velocity.
-      getLinearVelocity(): Vector3;
-      // Return linear degrees of freedom.
-      getLinearFactor(): Vector3;
-      // Return linear velocity at local point.
-      getVelocityAtPoint(position: Vector3): Vector3;
-      // Return linear velocity deactivation threshold.
-      getLinearRestThreshold(): number;
-      // Return linear velocity damping factor.
-      getLinearDamping(): number;
-      // Return angular velocity.
-      getAngularVelocity(): Vector3;
-      // Return angular degrees of freedom.
-      getAngularFactor(): Vector3;
-      // Return angular velocity deactivation threshold.
-      getAngularRestThreshold(): number;
-      // Return angular velocity damping factor.
-      getAngularDamping(): number;
-      // Return friction coefficient.
-      getFriction(): number;
-      // Return anisotropic friction.
-      getAnisotropicFriction(): Vector3;
-      // Return rolling friction coefficient.
-      getRollingFriction(): number;
-      // Return restitution coefficient.
-      getRestitution(): number;
-      // Return contact processing threshold.
-      getContactProcessingThreshold(): number;
-      // Return continuous collision detection swept sphere radius.
-      getCcdRadius(): number;
-      // Return continuous collision detection motion-per-simulation-step threshold.
-      getCcdMotionThreshold(): number;
-      // Return whether rigid body uses gravity.
-      getUseGravity(): boolean;
-      // Return gravity override. If zero (default), uses the physics world's gravity.
-      getGravityOverride(): Vector3;
-      // Return center of mass offset.
-      getCenterOfMass(): Vector3;
-      // Return kinematic mode flag.
-      isKinematic(): boolean;
-      // Return whether this RigidBody is acting as a trigger.
-      isTrigger(): boolean;
-      // Return whether rigid body is active (not sleeping.)
-      isActive(): boolean;
-      // Return collision layer.
-      getCollisionLayer(): number;
-      // Return collision mask.
-      getCollisionMask(): number;
-      // Return collision event signaling mode.
-      getCollisionEventMode(): CollisionEventMode;
-      // Apply new world transform after a simulation step. Called internally.
-      applyWorldTransform(newWorldPosition: Vector3, newWorldRotation: Quaternion): void;
-      // Update mass and inertia to the Bullet rigid body.
-      updateMass(): void;
-      // Update gravity parameters to the Bullet rigid body.
-      updateGravity(): void;
-      // Add a constraint that refers to this rigid body.
-      addConstraint(constraint: Constraint): void;
-      // Remove a constraint that refers to this rigid body.
-      removeConstraint(constraint: Constraint): void;
-      // Remove the rigid body.
-      releaseBody(): void;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Navigation
-//----------------------------------------------------
-
-
-   export class Navigable extends Component {
-
-      recursive: boolean;
-
-      // Construct.
-      constructor();
-
-      // Set whether geometry is automatically collected from child nodes. Default true.
-      setRecursive(enable: boolean): void;
-      // Return whether geometry is automatically collected from child nodes.
-      isRecursive(): boolean;
-
-   }
-
-   export class NavigationMesh extends Component {
-
-      tileSize: number;
-      cellSize: number;
-      cellHeight: number;
-      agentHeight: number;
-      agentRadius: number;
-      agentMaxClimb: number;
-      agentMaxSlope: number;
-      regionMinSize: number;
-      regionMergeSize: number;
-      edgeMaxLength: number;
-      edgeMaxError: number;
-      detailSampleDistance: number;
-      detailSampleMaxError: number;
-      padding: Vector3;
-      randomPoint: Vector3;
-      meshName: string;
-      boundingBox: BoundingBox;
-      worldBoundingBox: BoundingBox;
-      numTiles: IntVector2;
-      partitionType: NavmeshPartitionType;
-      drawOffMeshConnections: boolean;
-      drawNavAreas: boolean;
-
-      // Construct.
-      constructor();
-
-      // Set tile size.
-      setTileSize(size: number): void;
-      // Set cell size.
-      setCellSize(size: number): void;
-      // Set cell height.
-      setCellHeight(height: number): void;
-      // Set navigation agent height.
-      setAgentHeight(height: number): void;
-      // Set navigation agent radius.
-      setAgentRadius(radius: number): void;
-      // Set navigation agent max vertical climb.
-      setAgentMaxClimb(maxClimb: number): void;
-      // Set navigation agent max slope.
-      setAgentMaxSlope(maxSlope: number): void;
-      // Set region minimum size.
-      setRegionMinSize(size: number): void;
-      // Set region merge size.
-      setRegionMergeSize(size: number): void;
-      // Set edge max length.
-      setEdgeMaxLength(length: number): void;
-      // Set edge max error.
-      setEdgeMaxError(error: number): void;
-      // Set detail sampling distance.
-      setDetailSampleDistance(distance: number): void;
-      // Set detail sampling maximum error.
-      setDetailSampleMaxError(error: number): void;
-      // Set padding of the navigation mesh bounding box. Having enough padding allows to add geometry on the extremities of the navigation mesh when doing partial rebuilds.
-      setPadding(padding: Vector3): void;
-      // Set the cost of an area.
-      setAreaCost(areaID: number, cost: number): void;
-      // Find the nearest point on the navigation mesh to a given point. Extens specifies how far out from the specified point to check along each axis.
-      findNearestPoint(point: Vector3, extents?: Vector3): Vector3;
-      // Try to move along the surface from one point to another.
-      moveAlongSurface(start: Vector3, end: Vector3, extents?: Vector3, maxVisited?: number): Vector3;
-      // Return a random point on the navigation mesh.
-      getRandomPoint(): Vector3;
-      // Return a random point on the navigation mesh within a circle. The circle radius is only a guideline and in practice the returned point may be further away.
-      getRandomPointInCircle(center: Vector3, radius: number, extents?: Vector3): Vector3;
-      // Return distance to wall from a point. Maximum search radius must be specified.
-      getDistanceToWall(point: Vector3, radius: number, extents?: Vector3): number;
-      // Perform a walkability raycast on the navigation mesh between start and end and return the point where a wall was hit, or the end point if no walls.
-      raycast(start: Vector3, end: Vector3, extents?: Vector3): Vector3;
-      // Return the given name of this navigation mesh.
-      getMeshName(): string;
-      // Set the name of this navigation mesh.
-      setMeshName(newName: string): void;
-      // Return tile size.
-      getTileSize(): number;
-      // Return cell size.
-      getCellSize(): number;
-      // Return cell height.
-      getCellHeight(): number;
-      // Return navigation agent height.
-      getAgentHeight(): number;
-      // Return navigation agent radius.
-      getAgentRadius(): number;
-      // Return navigation agent max vertical climb.
-      getAgentMaxClimb(): number;
-      // Return navigation agent max slope.
-      getAgentMaxSlope(): number;
-      // Return region minimum size.
-      getRegionMinSize(): number;
-      // Return region merge size.
-      getRegionMergeSize(): number;
-      // Return edge max length.
-      getEdgeMaxLength(): number;
-      // Return edge max error.
-      getEdgeMaxError(): number;
-      // Return detail sampling distance.
-      getDetailSampleDistance(): number;
-      // Return detail sampling maximum error.
-      getDetailSampleMaxError(): number;
-      // Return navigation mesh bounding box padding.
-      getPadding(): Vector3;
-      // Get the current cost of an area
-      getAreaCost(areaID: number): number;
-      // Return whether has been initialized with valid navigation data.
-      isInitialized(): boolean;
-      // Return local space bounding box of the navigation mesh.
-      getBoundingBox(): BoundingBox;
-      // Return world space bounding box of the navigation mesh.
-      getWorldBoundingBox(): BoundingBox;
-      // Return number of tiles.
-      getNumTiles(): IntVector2;
-      // Set the partition type used for polygon generation.
-      setPartitionType(aType: NavmeshPartitionType): void;
-      // Return Partition Type.
-      getPartitionType(): NavmeshPartitionType;
-      // Draw debug geometry for OffMeshConnection components.
-      setDrawOffMeshConnections(enable: boolean): void;
-      // Return whether to draw OffMeshConnection components.
-      getDrawOffMeshConnections(): boolean;
-      // Draw debug geometry for NavArea components.
-      setDrawNavAreas(enable: boolean): void;
-      // Return whether to draw NavArea components.
-      getDrawNavAreas(): boolean;
-
-   }
-
-   export class OffMeshConnection extends Component {
-
-      endPoint: Node;
-      radius: number;
-      bidirectional: boolean;
-      mask: number;
-      areaID: number;
-
-      // Construct.
-      constructor();
-
-      // Apply attribute changes that can not be applied immediately. Called after scene load or a network update.
-      applyAttributes(): void;
-      // Visualize the component as debug geometry.
-      drawDebugGeometry(debug: DebugRenderer, depthTest: boolean): void;
-      // Set endpoint node.
-      setEndPoint(node: Node): void;
-      // Set radius.
-      setRadius(radius: number): void;
-      // Set bidirectional flag. Default true.
-      setBidirectional(enabled: boolean): void;
-      // Set a user assigned mask
-      setMask(newMask: number): void;
-      // Sets the assigned area Id for the connection
-      setAreaID(newAreaID: number): void;
-      // Return endpoint node.
-      getEndPoint(): Node;
-      // Return radius.
-      getRadius(): number;
-      // Return whether is bidirectional.
-      isBidirectional(): boolean;
-      // Return the user assigned mask
-      getMask(): number;
-      // Return the user assigned area ID
-      getAreaID(): number;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Input
-//----------------------------------------------------
-
-
-   export class Input extends AObject {
-
-      toggleFullscreen: boolean;
-      mouseGrabbed: boolean;
-      mouseMode: MouseMode;
-      screenKeyboardVisible: boolean;
-      touchEmulation: boolean;
-      qualifiers: number;
-      mousePosition: IntVector2;
-      mouseMove: IntVector2;
-      mouseMoveX: number;
-      mouseMoveY: number;
-      mouseMoveWheel: number;
-      numTouches: number;
-      numJoysticks: number;
-      screenKeyboardSupport: boolean;
-
-      // Construct.
-      constructor();
-
-      // Poll for window messages. Called by HandleBeginFrame().
-      update(): void;
-      // Set whether ALT-ENTER fullscreen toggle is enabled.
-      setToggleFullscreen(enable: boolean): void;
-      // Set whether the operating system mouse cursor is visible. When not visible (default), is kept centered to prevent leaving the window. Mouse visibility event can be suppressed-- this also recalls any unsuppressed SetMouseVisible which can be returned by ResetMouseVisible().
-      setMouseVisible(enable: boolean, suppressEvent?: boolean): void;
-      // Reset last mouse visibility that was not suppressed in SetMouseVisible.
-      resetMouseVisible(): void;
-      // Set whether the mouse is currently being grabbed by an operation.
-      setMouseGrabbed(grab: boolean): void;
-      setMouseMode(mode: MouseMode): void;
-      // Show or hide on-screen keyboard on platforms that support it. When shown, keypresses from it are delivered as key events.
-      setScreenKeyboardVisible(enable: boolean): void;
-      // Set touch emulation by mouse. Only available on desktop platforms. When enabled, actual mouse events are no longer sent and the mouse cursor is forced visible.
-      setTouchEmulation(enable: boolean): void;
-      // Begin recording a touch gesture. Return true if successful. The E_GESTURERECORDED event (which contains the ID for the new gesture) will be sent when recording finishes.
-      recordGesture(): boolean;
-      // Remove an in-memory gesture by ID. Return true if was found.
-      removeGesture(gestureID: number): boolean;
-      // Remove all in-memory gestures.
-      removeAllGestures(): void;
-      // Return keycode from key name.
-      getKeyFromName(name: string): number;
-      // Return keycode from scancode.
-      getKeyFromScancode(scancode: number): number;
-      // Return name of key from keycode.
-      getKeyName(key: number): string;
-      // Return scancode from keycode.
-      getScancodeFromKey(key: number): number;
-      // Return scancode from key name.
-      getScancodeFromName(name: string): number;
-      // Return name of key from scancode.
-      getScancodeName(scancode: number): string;
-      // Check if a key is held down.
-      getKeyDown(key: number): boolean;
-      // Check if a key has been pressed on this frame.
-      getKeyPress(key: number): boolean;
-      // Check if a key is held down by scancode.
-      getScancodeDown(scancode: number): boolean;
-      // Check if a key has been pressed on this frame by scancode.
-      getScancodePress(scancode: number): boolean;
-      // Check if a mouse button is held down.
-      getMouseButtonDown(button: number): boolean;
-      // Check if a mouse button has been pressed on this frame.
-      getMouseButtonPress(button: number): boolean;
-      // Check if a qualifier key is held down.
-      getQualifierDown(qualifier: number): boolean;
-      // Check if a qualifier key has been pressed on this frame.
-      getQualifierPress(qualifier: number): boolean;
-      // Return the currently held down qualifiers.
-      getQualifiers(): number;
-      // Return mouse position within window. Should only be used with a visible mouse cursor.
-      getMousePosition(): IntVector2;
-      // Return mouse movement since last frame.
-      getMouseMove(): IntVector2;
-      // Return horizontal mouse movement since last frame.
-      getMouseMoveX(): number;
-      // Return vertical mouse movement since last frame.
-      getMouseMoveY(): number;
-      // Return mouse wheel movement since last frame.
-      getMouseMoveWheel(): number;
-      // Return number of active finger touches.
-      getNumTouches(): number;
-      // Return number of connected joysticks.
-      getNumJoysticks(): number;
-      // Return whether fullscreen toggle is enabled.
-      getToggleFullscreen(): boolean;
-      // Return whether on-screen keyboard is supported.
-      getScreenKeyboardSupport(): boolean;
-      // Return whether on-screen keyboard is being shown.
-      isScreenKeyboardVisible(): boolean;
-      // Return whether touch emulation is enabled.
-      getTouchEmulation(): boolean;
-      // Return whether the operating system mouse cursor is visible.
-      isMouseVisible(): boolean;
-      // Return whether the mouse is currently being grabbed by an operation.
-      isMouseGrabbed(): boolean;
-      // Return the mouse mode.
-      getMouseMode(): MouseMode;
-      // Return whether application window has input focus.
-      hasFocus(): boolean;
-      // Return whether application window is minimized.
-      isMinimized(): boolean;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: UI
-//----------------------------------------------------
-
-
-   export class UIButton extends UIWidget {
-
-      squeezable: boolean;
-
-      constructor(createWidget?: boolean);
-
-      setSqueezable(value: boolean): void;
-      onClick: () => void;
-
-   }
-
-   export class UICheckBox extends UIWidget {
-
-      constructor(createWidget?: boolean);
-
-
-   }
-
-   export class UIClickLabel extends UIWidget {
-
-      constructor(createWidget?: boolean);
-
-
-   }
-
-   export class UIContainer extends UIWidget {
-
-      constructor(createWidget?: boolean);
-
-
-   }
-
-   export class UIDimmer extends UIWidget {
-
-      constructor(createWidget?: boolean);
-
-
-   }
-
-   export class UIDragObject extends AObject {
-
-      text: string;
-      icon: string;
-      object: AObject;
-      filenames: string[];
-
-      // Construct.
-      constructor(object?: AObject, text?: string, icon?: string);
-
-      getText(): string;
-      getIcon(): string;
-      getObject(): AObject;
-      getFilenames(): string[];
-      setText(text: string): void;
-      setIcon(icon: string): void;
-      setObject(object: AObject): void;
-      addFilename(filename: string): void;
-
-   }
-
-   export class UIEditField extends UIWidget {
-
-      textAlign: TEXT_ALIGN;
-      editType: UI_EDIT_TYPE;
-      readOnly: boolean;
-      wrapping: boolean;
-
-      constructor(createWidget?: boolean);
-
-      appendText(text: string): void;
-      setTextAlign(align: TEXT_ALIGN): void;
-      setEditType(type: UI_EDIT_TYPE): void;
-      setReadOnly(readonly: boolean): void;
-      scrollTo(x: number, y: number): void;
-      setWrapping(wrap: boolean): void;
-      getWrapping(): boolean;
-
-   }
-
-   export class UIFontDescription extends AObject {
-
-      id: string;
-      size: number;
-
-      constructor();
-
-      setId(id: string): void;
-      setSize(size: number): void;
-
-   }
-
-   export class UIImageWidget extends UIWidget {
-
-      image: string;
-
-      constructor(createWidget?: boolean);
-
-      setImage(imagePath: string): void;
-
-   }
-
-   export class UIInlineSelect extends UIWidget {
-
-      editFieldLayoutParams: UILayoutParams;
-
-      constructor(createWidget?: boolean);
-
-      setLimits(minimum: number, maximum: number): void;
-      setEditFieldLayoutParams(params: UILayoutParams): void;
-
-   }
-
-   export class UILayoutParams extends AObject {
-
-      width: number;
-      height: number;
-      minWidth: number;
-      minHeight: number;
-      maxWidth: number;
-      maxHeight: number;
-
-      constructor();
-
-      setWidth(width: number): void;
-      setHeight(height: number): void;
-      setMinWidth(width: number): void;
-      setMinHeight(height: number): void;
-      setMaxWidth(width: number): void;
-      setMaxHeight(height: number): void;
-
-   }
-
-   export class UILayout extends UIWidget {
-
-      spacing: number;
-      axis: UI_AXIS;
-      layoutSize: UI_LAYOUT_SIZE;
-      layoutPosition: UI_LAYOUT_POSITION;
-      layoutDistribution: UI_LAYOUT_DISTRIBUTION;
-      layoutDistributionPosition: UI_LAYOUT_DISTRIBUTION_POSITION;
-
-      constructor(axis?: UI_AXIS, createWidget?: boolean);
-
-      setSpacing(spacing: number): void;
-      setAxis(axis: UI_AXIS): void;
-      setLayoutSize(size: UI_LAYOUT_SIZE): void;
-      setLayoutPosition(position: UI_LAYOUT_POSITION): void;
-      setLayoutDistribution(distribution: UI_LAYOUT_DISTRIBUTION): void;
-      setLayoutDistributionPosition(distribution_pos: UI_LAYOUT_DISTRIBUTION_POSITION): void;
-
-   }
-
-   export class UIListView extends UIWidget {
-
-      hoverItemID: string;
-      selectedItemID: string;
-      rootList: UISelectList;
-
-      // Construct.
-      constructor(createWidget?: boolean);
-
-      addRootItem(text: string, icon: string, id: string): number;
-      addChildItem(parentItemID: number, text: string, icon: string, id: string): number;
-      setItemText(id: string, text: string): void;
-      setItemTextSkin(id: string, skin: string): void;
-      setItemIcon(id: string, icon: string): void;
-      deleteItemByID(id: string): void;
-      setExpanded(itemID: number, value: boolean): void;
-      deleteAllItems(): void;
-      selectItemByID(id: string): void;
-      getHoverItemID(): string;
-      getSelectedItemID(): string;
-      getRootList(): UISelectList;
-
-   }
-
-   export class UIMenuItem extends UISelectItem {
-
-      constructor(str?: string, id?: string, shortcut?: string, skinBg?: string);
-
-
-   }
-
-   export class UIMenuItemSource extends UISelectItemSource {
-
-      constructor();
-
-
-   }
-
-   export class UIMenuWindow extends UIWidget {
-
-      constructor(target: UIWidget, id: string);
-
-      show(source: UISelectItemSource, x?: number, y?: number): void;
-      close(): void;
-
-   }
-
-   export class UIMessageWindow extends UIWindow {
-
-      constructor(target: UIWidget, id: string, createWidget?: boolean);
-
-      show(title: string, message: string, settings: UI_MESSAGEWINDOW_SETTINGS, dimmer: boolean, width: number, height: number): void;
-
-   }
-
-   export class UIPreferredSize extends RefCounted {
-
-      minWidth: number;
-      minHeight: number;
-      maxWidth: number;
-      maxHeight: number;
-      prefWidth: number;
-      prefHeight: number;
-      sizeDep: UI_SIZE_DEP;
-
-      constructor(w?: number, h?: number);
-
-      getMinWidth(): number;
-      getMinHeight(): number;
-      getMaxWidth(): number;
-      getMaxHeight(): number;
-      getPrefWidth(): number;
-      getPrefHeight(): number;
-      getSizeDep(): UI_SIZE_DEP;
-      setMinWidth(w: number): void;
-      setMinHeight(h: number): void;
-      setMaxWidth(w: number): void;
-      setMaxHeight(h: number): void;
-      setPrefWidth(w: number): void;
-      setPrefHeight(h: number): void;
-      setSizeDep(dep: UI_SIZE_DEP): void;
-
-   }
-
-   export class UISceneView extends UIWidget {
-
-      format: number;
-      autoUpdate: boolean;
-      scene: Scene;
-      cameraNode: Node;
-      renderTexture: Texture2D;
-      depthTexture: Texture2D;
-      viewport: Viewport;
-      size: IntVector2;
-
-      constructor(createWidget?: boolean);
-
-      // React to resize.
-      onResize(newSize: IntVector2): void;
-      // Define the scene and camera to use in rendering. When ownScene is true the View3D will take ownership of them with shared pointers.
-      setView(scene: Scene, camera: Camera): void;
-      // Set render texture pixel format. Default is RGB.
-      setFormat(format: number): void;
-      // Set render target auto update mode. Default is true.
-      setAutoUpdate(enable: boolean): void;
-      // Queue manual update on the render texture.
-      queueUpdate(): void;
-      // Return render texture pixel format.
-      getFormat(): number;
-      // Return whether render target updates automatically.
-      getAutoUpdate(): boolean;
-      // Return scene.
-      getScene(): Scene;
-      // Return camera scene node.
-      getCameraNode(): Node;
-      // Return render texture.
-      getRenderTexture(): Texture2D;
-      // Return depth stencil texture.
-      getDepthTexture(): Texture2D;
-      // Return viewport.
-      getViewport(): Viewport;
-      setResizeRequired(): void;
-      getSize(): IntVector2;
-
-   }
-
-   export class UIScrollContainer extends UIWidget {
-
-      scrollMode: UI_SCROLL_MODE;
-      adaptToContentSize: boolean;
-      adaptContentSize: boolean;
-
-      constructor(createWidget?: boolean);
-
-      setScrollMode(mode: UI_SCROLL_MODE): void;
-      getScrollMode(): UI_SCROLL_MODE;
-      // Set to true if the preferred size of this container should adapt to the preferred size of the content. This is disabled by default.
-      setAdaptToContentSize(adapt: boolean): void;
-      getAdaptToContentSize(): boolean;
-      // Set to true if the content should adapt to the available size of this container when it's larger than the preferred size. */
-      setAdaptContentSize(adapt: boolean): void;
-      getAdaptContentSize(): boolean;
-
-   }
-
-   export class UISection extends UIWidget {
-
-      constructor(createWidget?: boolean);
-
-
-   }
-
-   export class UISelectItem extends AObject {
-
-      string: string;
-      id: string;
-      skinImage: string;
-      subSource: UISelectItemSource;
-
-      constructor(str?: string, id?: string, skinImage?: string);
-
-      setString(str: string): void;
-      setID(id: string): void;
-      setSkinImage(skinImage: string): void;
-      setSubSource(subSource: UISelectItemSource): void;
-
-   }
-
-   export class UISelectItemSource extends AObject {
-
-      constructor();
-
-      addItem(item: UISelectItem): void;
-      clear(): void;
-
-   }
-
-   export class UISelectList extends UIWidget {
-
-      filter: string;
-      source: UISelectItemSource;
-      value: number;
-      hoverItemID: string;
-      selectedItemID: string;
-
-      constructor(createWidget?: boolean);
-
-      setFilter(filter: string): void;
-      setSource(source: UISelectItemSource): void;
-      invalidateList(): void;
-      setValue(value: number): void;
-      getValue(): number;
-      getHoverItemID(): string;
-      getSelectedItemID(): string;
-
-   }
-
-   export class UISeparator extends UIWidget {
-
-      constructor(createWidget?: boolean);
-
-
-   }
-
-   export class UISkinImage extends UIWidget {
-
-      constructor(bitmapID: string, createWidget?: boolean);
-
-
-   }
-
-   export class UITabContainer extends UIWidget {
-
-      numPages: number;
-      currentPage: number;
-      currentPageWidget: UIWidget;
-
-      constructor(createWidget?: boolean);
-
-      getNumPages(): number;
-      setCurrentPage(page: number): void;
-      getCurrentPageWidget(): UIWidget;
-
-   }
-
-   export class UITextField extends UIWidget {
-
-      textAlign: UI_TEXT_ALIGN;
-
-      constructor(createWidget?: boolean);
-
-      setTextAlign(align: UI_TEXT_ALIGN): void;
-
-   }
-
-   export class UITextureWidget extends UIWidget {
-
-      texture: Texture;
-
-      constructor(createWidget?: boolean);
-
-      setTexture(texture: Texture): void;
-      getTexture(): Texture;
-
-   }
-
-   export class UIView extends UIWidget {
-
-      constructor();
-
-
-   }
-
-   export class UIWidget extends AObject {
-
-      id: string;
-      parent: UIWidget;
-      contentRoot: UIWidget;
-      rect: IntRect;
-      preferredSize: UIPreferredSize;
-      text: string;
-      skinBg: string;
-      layoutParams: UILayoutParams;
-      fontDescription: UIFontDescription;
-      gravity: UI_GRAVITY;
-      value: number;
-      focus: boolean;
-      visibility: UI_WIDGET_VISIBILITY;
-      stateRaw: number;
-      dragObject: UIDragObject;
-      firstChild: UIWidget;
-      next: UIWidget;
-      isFocusable: boolean;
-      view: UIView;
-
-      constructor(createWidget?: boolean);
-
-      load(filename: string): boolean;
-      getId(): string;
-      getParent(): UIWidget;
-      getContentRoot(): UIWidget;
-      getRect(): IntRect;
-      getPreferredSize(): UIPreferredSize;
-      getText(): string;
-      setRect(r: IntRect): void;
-      setSize(width: number, height: number): void;
-      setPosition(x: number, y: number): void;
-      setText(text: string): void;
-      setSkinBg(id: string): void;
-      setLayoutParams(params: UILayoutParams): void;
-      setFontDescription(fd: UIFontDescription): void;
-      removeChild(child: UIWidget, cleanup?: boolean): void;
-      deleteAllChildren(): void;
-      setId(id: string): void;
-      center(): void;
-      setGravity(gravity: UI_GRAVITY): void;
-      setValue(value: number): void;
-      getValue(): number;
-      setFocus(): void;
-      getFocus(): boolean;
-      // Set focus to first widget which accepts it
-      setFocusRecursive(): void;
-      onFocusChanged(focused: boolean): void;
-      setState(state: number, on: boolean): void;
-      getState(state: number): boolean;
-      setVisibility(visibility: UI_WIDGET_VISIBILITY): void;
-      getVisibility(): UI_WIDGET_VISIBILITY;
-      setStateRaw(state: number): void;
-      getStateRaw(): number;
-      invalidate(): void;
-      die(): void;
-      setDragObject(object: UIDragObject): void;
-      getDragObject(): UIDragObject;
-      getFirstChild(): UIWidget;
-      getNext(): UIWidget;
-      isAncestorOf(widget: UIWidget): boolean;
-      setIsFocusable(value: boolean): void;
-      getWidget(id: string): UIWidget;
-      getView(): UIView;
-      addChild(child: UIWidget): void;
-      // This takes a relative Z and insert the child before or after the given reference widget.*/
-      addChildRelative(child: UIWidget, z: UI_WIDGET_Z_REL, reference: UIWidget): void;
-
-   }
-
-   export class UIWindow extends UIWidget {
-
-      settings: UI_WINDOW_SETTINGS;
-
-      constructor(createWidget?: boolean);
-
-      getSettings(): UI_WINDOW_SETTINGS;
-      setSettings(settings: UI_WINDOW_SETTINGS): void;
-      resizeToFitContent(): void;
-      addChild(child: UIWidget): void;
-      close(): void;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Resource
-//----------------------------------------------------
-
-
-   export class Image extends Resource {
-
-      width: number;
-      height: number;
-      depth: number;
-      components: number;
-      compressedFormat: CompressedFormat;
-      numCompressedLevels: number;
-      nextLevel: Image;
-
-      // Construct empty.
-      constructor();
-
-      // Flip image horizontally. Return true if successful.
-      flipHorizontal(): boolean;
-      // Flip image vertically. Return true if successful.
-      flipVertical(): boolean;
-      // Resize image by bilinear resampling. Return true if successful.
-      resize(width: number, height: number): boolean;
-      // Clear the image with a color.
-      clear(color: Color): void;
-      // Clear the image with an integer color. R component is in the 8 lowest bits.
-      clearInt(uintColor: number): void;
-      // Save in BMP format. Return true if successful.
-      saveBMP(fileName: string): boolean;
-      // Save in PNG format. Return true if successful.
-      savePNG(fileName: string): boolean;
-      // Save in TGA format. Return true if successful.
-      saveTGA(fileName: string): boolean;
-      // Save in JPG format with compression quality. Return true if successful.
-      saveJPG(fileName: string, quality: number): boolean;
-      // Return a bilinearly sampled 2D pixel color. X and Y have the range 0-1.
-      getPixelBilinear(x: number, y: number): Color;
-      // Return a trilinearly sampled 3D pixel color. X, Y and Z have the range 0-1.
-      getPixelTrilinear(x: number, y: number, z: number): Color;
-      // Return width.
-      getWidth(): number;
-      // Return height.
-      getHeight(): number;
-      // Return depth.
-      getDepth(): number;
-      // Return number of color components.
-      getComponents(): number;
-      // Return whether is compressed.
-      isCompressed(): boolean;
-      // Return compressed format.
-      getCompressedFormat(): CompressedFormat;
-      // Return number of compressed mip levels.
-      getNumCompressedLevels(): number;
-      // Return next mip level by bilinear filtering.
-      getNextLevel(): Image;
-      // Return image converted to 4-component (RGBA) to circumvent modern rendering API's not supporting e.g. the luminance-alpha format.
-      convertToRGBA(): Image;
-      // Return subimage from the image by the defined rect or null if failed. 3D images are not supported. You must free the subimage yourself.
-      getSubimage(rect: IntRect): Image;
-      // Precalculate the mip levels. Used by asynchronous texture loading.
-      precalculateLevels(): void;
-
-   }
-
-   export class JSONFile extends Resource {
-
-      // Construct.
-      constructor();
-
-
-   }
-
-   export class PListFile extends Resource {
-
-      // Construct.
-      constructor();
-
-
-   }
-
-   export class Resource extends AObject {
-
-      name: string;
-      memoryUse: number;
-      asyncLoadState: AsyncLoadState;
-      nameHash: string;
-      useTimer: number;
-
-      // Construct.
-      constructor();
-
-      // Finish resource loading. Always called from the main thread. Return true if successful.
-      endLoad(): boolean;
-      // Set name.
-      setName(name: string): void;
-      // Set memory use in bytes, possibly approximate.
-      setMemoryUse(size: number): void;
-      // Reset last used timer.
-      resetUseTimer(): void;
-      // Set the asynchronous loading state. Called by ResourceCache. Resources in the middle of asynchronous loading are not normally returned to user.
-      setAsyncLoadState(newState: AsyncLoadState): void;
-      // Return name.
-      getName(): string;
-      // Return name hash.
-      getNameHash(): string;
-      // Return memory use in bytes, possibly approximate.
-      getMemoryUse(): number;
-      // Return time since last use in milliseconds. If referred to elsewhere than in the resource cache, returns always zero.
-      getUseTimer(): number;
-      // Return the asynchronous loading state.
-      getAsyncLoadState(): AsyncLoadState;
-
-   }
-
-   export class ResourceCache extends AObject {
-
-      autoReloadResources: boolean;
-      returnFailedResources: boolean;
-      searchPackagesFirst: boolean;
-      finishBackgroundResourcesMs: number;
-      numBackgroundLoadResources: number;
-      resourceDirs: string[];
-      totalMemoryUse: number;
-
-      // Construct.
-      constructor();
-
-      // Add a resource load directory. Optional priority parameter which will control search order.
-      addResourceDir(pathName: string, priority?: number): boolean;
-      // Add a package file for loading resources from by name. Optional priority parameter which will control search order.
-      addPackageFile(fileName: string, priority?: number): boolean;
-      // Add a manually created resource. Must be uniquely named.
-      addManualResource(resource: Resource): boolean;
-      // Remove a resource load directory.
-      removeResourceDir(pathName: string): void;
-      // Remove a package file by name. Optionally release the resources loaded from it.
-      removePackageFile(fileName: string, releaseResources?: boolean, forceRelease?: boolean): void;
-      // Release a resource by name.
-      releaseResource(type: string, name: string, force?: boolean): void;
-      // Release all resources. When called with the force flag false, releases all currently unused resources.
-      releaseAllResources(force?: boolean): void;
-      // Reload a resource. Return true on success. The resource will not be removed from the cache in case of failure.
-      reloadResource(resource: Resource): boolean;
-      // Reload a resource based on filename. Causes also reload of dependent resources if necessary.
-      reloadResourceWithDependencies(fileName: string): void;
-      // Set memory budget for a specific resource type, default 0 is unlimited.
-      setMemoryBudget(type: string, budget: number): void;
-      // Enable or disable automatic reloading of resources as files are modified. Default false.
-      setAutoReloadResources(enable: boolean): void;
-      // Enable or disable returning resources that failed to load. Default false. This may be useful in editing to not lose resource ref attributes.
-      setReturnFailedResources(enable: boolean): void;
-      // Define whether when getting resources should check package files or directories first. True for packages, false for directories.
-      setSearchPackagesFirst(value: boolean): void;
-      // Set how many milliseconds maximum per frame to spend on finishing background loaded resources.
-      setFinishBackgroundResourcesMs(ms: number): void;
-      // Open and return a file from the resource load paths or from inside a package file. If not found, use a fallback search with absolute path. Return null if fails. Can be called from outside the main thread.
-      getFile(name: string, sendEventOnFailure?: boolean): File;
-      // Return a resource by type and name. Load if not loaded yet. Return null if not found or if fails, unless SetReturnFailedResources(true) has been called. Can be called only from the main thread.
-      getResource(type: string, name: string, sendEventOnFailure?: boolean): Resource;
-      // Load a resource without storing it in the resource cache. Return null if not found or if fails. Can be called from outside the main thread if the resource itself is safe to load completely (it does not possess for example GPU data.)
-      getTempResource(type: string, name: string, sendEventOnFailure?: boolean): Resource;
-      // Background load a resource. An event will be sent when complete. Return true if successfully stored to the load queue, false if eg. already exists. Can be called from outside the main thread.
-      backgroundLoadResource(type: string, name: string, sendEventOnFailure?: boolean, caller?: Resource): boolean;
-      // Return number of pending background-loaded resources.
-      getNumBackgroundLoadResources(): number;
-      // Return an already loaded resource of specific type & name, or null if not found. Will not load if does not exist.
-      getExistingResource(type: string, name: string): Resource;
-      // Return added resource load directories.
-      getResourceDirs(): string[];
-      // Return whether a file exists by name.
-      exists(name: string): boolean;
-      // Return memory budget for a resource type.
-      getMemoryBudget(type: string): number;
-      // Return total memory use for a resource type.
-      getMemoryUse(type: string): number;
-      // Return total memory use for all resources.
-      getTotalMemoryUse(): number;
-      // Return full absolute file name of resource if possible.
-      getResourceFileName(name: string): string;
-      // Return whether automatic resource reloading is enabled.
-      getAutoReloadResources(): boolean;
-      // Return whether resources that failed to load are returned.
-      getReturnFailedResources(): boolean;
-      // Return whether when getting resources should check package files or directories first.
-      getSearchPackagesFirst(): boolean;
-      // Return how many milliseconds maximum to spend on finishing background loaded resources.
-      getFinishBackgroundResourcesMs(): number;
-      // Return either the path itself or its parent, based on which of them has recognized resource subdirectories.
-      getPreferredResourceDir(path: string): string;
-      // Remove unsupported constructs from the resource name to prevent ambiguity, and normalize absolute filename to resource path relative if possible.
-      sanitateResourceName(name: string): string;
-      // Remove unnecessary constructs from a resource directory name and ensure it to be an absolute path.
-      sanitateResourceDirName(name: string): string;
-      // Store a dependency for a resource. If a dependency file changes, the resource will be reloaded.
-      storeResourceDependency(resource: Resource, dependency: string): void;
-      // Reset dependencies for a resource.
-      resetDependencies(resource: Resource): void;
-
-   }
-
-   export class XMLFile extends Resource {
-
-      // Construct.
-      constructor();
-
-      // Deserialize from a string. Return true if successful.
-      fromString(source: string): boolean;
-      // Serialize the XML content to a string.
-      toString(indentation?: string): string;
-      // Patch the XMLFile with another XMLFile. Based on RFC 5261.
-      patch(patchFile: XMLFile): void;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Network
-//----------------------------------------------------
-
-
-   export class HttpRequest extends RefCounted {
-
-      url: string;
-      verb: string;
-      error: string;
-      state: HttpRequestState;
-      availableSize: number;
-
-      // Construct with parameters.
-      constructor(url: string, verb: string, headers: string[], postData: string);
-
-      // Process the connection in the worker thread until closed.
-      threadFunction(): void;
-      // Set position from the beginning of the stream. Not supported.
-      seek(position: number): number;
-      // Return URL used in the request.
-      getURL(): string;
-      // Return verb used in the request. Default GET if empty verb specified on construction.
-      getVerb(): string;
-      // Return error. Only non-empty in the error state.
-      getError(): string;
-      // Return connection state.
-      getState(): HttpRequestState;
-      // Return amount of bytes in the read buffer.
-      getAvailableSize(): number;
-      // Return whether connection is in the open state.
-      isOpen(): boolean;
-
-   }
-
-   export class Network extends AObject {
-
-      updateFps: number;
-      simulatedLatency: number;
-      simulatedPacketLoss: number;
-      packageCacheDir: string;
-
-      // Construct.
-      constructor();
-
-      // Disconnect the connection to the server. If wait time is non-zero, will block while waiting for disconnect to finish.
-      disconnect(waitMSec?: number): void;
-      // Start a server on a port using UDP protocol. Return true if successful.
-      startServer(port: number): boolean;
-      // Stop the server.
-      stopServer(): void;
-      // Set network update FPS.
-      setUpdateFps(fps: number): void;
-      // Set simulated latency in milliseconds. This adds a fixed delay before sending each packet.
-      setSimulatedLatency(ms: number): void;
-      // Set simulated packet loss probability between 0.0 - 1.0.
-      setSimulatedPacketLoss(probability: number): void;
-      // Register a remote event as allowed to be received. There is also a fixed blacklist of events that can not be allowed in any case, such as ConsoleCommand.
-      registerRemoteEvent(eventType: string): void;
-      // Unregister a remote event as allowed to received.
-      unregisterRemoteEvent(eventType: string): void;
-      // Unregister all remote events.
-      unregisterAllRemoteEvents(): void;
-      // Set the package download cache directory.
-      setPackageCacheDir(path: string): void;
-      // Perform an HTTP request to the specified URL. Empty verb defaults to a GET request. Return a request object which can be used to read the response data.
-      makeHttpRequest(url: string, verb?: string, headers?: string[], postData?: string): HttpRequest;
-      // Return network update FPS.
-      getUpdateFps(): number;
-      // Return simulated latency in milliseconds.
-      getSimulatedLatency(): number;
-      // Return simulated packet loss probability.
-      getSimulatedPacketLoss(): number;
-      // Return whether the server is running.
-      isServerRunning(): boolean;
-      // Return whether a remote event is allowed to be received.
-      checkRemoteEvent(eventType: string): boolean;
-      // Return the package download cache directory.
-      getPackageCacheDir(): string;
-      // Process incoming messages from connections. Called by HandleBeginFrame.
-      update(timeStep: number): void;
-      // Send outgoing messages after frame logic. Called by HandleRenderUpdate.
-      postUpdate(timeStep: number): void;
-
-   }
-
-   export class NetworkPriority extends Component {
-
-      basePriority: number;
-      distanceFactor: number;
-      minPriority: number;
-      alwaysUpdateOwner: boolean;
-
-      // Construct.
-      constructor();
-
-      // Set base priority. Default 100 (send updates at full frequency.)
-      setBasePriority(priority: number): void;
-      // Set priority reduction distance factor. Default 0 (no effect.)
-      setDistanceFactor(factor: number): void;
-      // Set minimum priority. Default 0 (no updates when far away enough.)
-      setMinPriority(priority: number): void;
-      // Set whether updates to owner should be sent always at full rate. Default true.
-      setAlwaysUpdateOwner(enable: boolean): void;
-      // Return base priority.
-      getBasePriority(): number;
-      // Return priority reduction distance factor.
-      getDistanceFactor(): number;
-      // Return minimum priority.
-      getMinPriority(): number;
-      // Return whether updates to owner should be sent always at full rate.
-      getAlwaysUpdateOwner(): boolean;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: IO
-//----------------------------------------------------
-
-
-   export class File extends AObject {
-
-      name: string;
-      checksum: number;
-      fullPath: string;
-      mode: FileMode;
-
-      // Construct and open a filesystem file.
-      constructor(fileName: string, mode?: FileMode);
-
-      // Set position from the beginning of the file.
-      seek(position: number): number;
-      // Return the file name.
-      getName(): string;
-      // Return a checksum of the file contents using the SDBM hash algorithm.
-      getChecksum(): number;
-      // Open a filesystem file. Return true if successful.
-      open(fileName: string, mode?: FileMode): boolean;
-      // Close the file.
-      close(): void;
-      // Flush any buffered output to the file.
-      flush(): void;
-      // Change the file name. Used by the resource system.
-      setName(name: string): void;
-      // Set the fullpath to the file
-      setFullPath(path: string): void;
-      // Return the open mode.
-      getMode(): FileMode;
-      // Return whether is open.
-      isOpen(): boolean;
-      // Return whether the file originates from a package.
-      isPackaged(): boolean;
-      // Return the fullpath to the file
-      getFullPath(): string;
-      // Unlike FileSystem.Copy this copy works when the source file is in a package file
-      copy(srcFile: File): boolean;
-      readText():string;
-      writeString(text:string):void;
-
-   }
-
-   export class FileSystem extends AObject {
-
-      executeConsoleCommands: boolean;
-      currentDir: string;
-      programDir: string;
-      userDocumentsDir: string;
-      appBundleResourceFolder: string;
-
-      // Construct.
-      constructor();
-
-      // Set the current working directory.
-      setCurrentDir(pathName: string): boolean;
-      // Create a directory.
-      createDir(pathName: string): boolean;
-      // Set whether to execute engine console commands as OS-specific system command.
-      setExecuteConsoleCommands(enable: boolean): void;
-      // Run a program using the command interpreter, block until it exits and return the exit code. Will fail if any allowed paths are defined.
-      systemCommand(commandLine: string, redirectStdOutToLog?: boolean): number;
-      // Run a specific program, block until it exits and return the exit code. Will fail if any allowed paths are defined.
-      systemRun(fileName: string, args: string[]): number;
-      // Run a program using the command interpreter asynchronously. Return a request ID or M_MAX_UNSIGNED if failed. The exit code will be posted together with the request ID in an AsyncExecFinished event. Will fail if any allowed paths are defined.
-      systemCommandAsync(commandLine: string): number;
-      // Run a specific program asynchronously. Return a request ID or M_MAX_UNSIGNED if failed. The exit code will be posted together with the request ID in an AsyncExecFinished event. Will fail if any allowed paths are defined.
-      systemRunAsync(fileName: string, args: string[]): number;
-      // Open a file in an external program, with mode such as "edit" optionally specified. Will fail if any allowed paths are defined.
-      systemOpen(fileName: string, mode?: string): boolean;
-      // Copy a file. Return true if successful.
-      copy(srcFileName: string, destFileName: string): boolean;
-      // Rename a file. Return true if successful.
-      rename(srcFileName: string, destFileName: string): boolean;
-      // Delete a file. Return true if successful.
-      delete(fileName: string): boolean;
-      // Register a path as allowed to access. If no paths are registered, all are allowed. Registering allowed paths is considered securing the Atomic execution environment: running programs and opening files externally through the system will fail afterward.
-      registerPath(pathName: string): void;
-      // Set a file's last modified time as seconds since 1.1.1970. Return true on success.
-      setLastModifiedTime(fileName: string, newTime: number): boolean;
-      // Return the absolute current working directory.
-      getCurrentDir(): string;
-      // Return whether is executing engine console commands as OS-specific system command.
-      getExecuteConsoleCommands(): boolean;
-      // Return whether paths have been registered.
-      hasRegisteredPaths(): boolean;
-      // Check if a path is allowed to be accessed. If no paths are registered, all are allowed.
-      checkAccess(pathName: string): boolean;
-      // Returns the file's last modified time as seconds since 1.1.1970, or 0 if can not be accessed.
-      getLastModifiedTime(fileName: string): number;
-      // Check if a file exists.
-      fileExists(fileName: string): boolean;
-      // Check if a directory exists.
-      dirExists(pathName: string): boolean;
-      // Return the program's directory. If it does not contain the Atomic default CoreData and Data directories, and the current working directory does, return the working directory instead.
-      getProgramDir(): string;
-      // Return the user documents directory.
-      getUserDocumentsDir(): string;
-      // Return the application preferences directory.
-      getAppPreferencesDir(org: string, app: string): string;
-      getAppBundleResourceFolder(): string;
-      // Remove a directory
-      removeDir(directoryIn: string, recursive: boolean): boolean;
-      // Create directory and all necessary subdirectories below a given root
-      createDirs(root: string, subdirectory: string): boolean;
-      // Copy a directory, directoryOut must not exist
-      copyDir(directoryIn: string, directoryOut: string): boolean;
-      // Check if a file or directory exists at the specified path
-      exists(pathName: string): boolean;
-      createDirsRecursive(directoryIn: string, directoryOut: string): boolean;
-      scanDir(pathName:string, filter:string, flags:number, recursive:boolean):Array<string>;
-
-   }
-
-   export class FileWatcher extends AObject {
-
-      delay: number;
-      path: string;
-
-      // Construct.
-      constructor();
-
-      // Directory watching loop.
-      threadFunction(): void;
-      // Start watching a directory. Return true if successful.
-      startWatching(pathName: string, watchSubDirs: boolean): boolean;
-      // Stop watching the directory.
-      stopWatching(): void;
-      // Set the delay in seconds before file changes are notified. This (hopefully) avoids notifying when a file save is still in progress. Default 1 second.
-      setDelay(interval: number): void;
-      // Add a file change into the changes queue.
-      addChange(fileName: string): void;
-      // Return the path being watched, or empty if not watching.
-      getPath(): string;
-      // Return the delay in seconds for notifying file changes.
-      getDelay(): number;
-
-   }
-
-   export class Log extends AObject {
-
-      level: number;
-      timeStamp: boolean;
-      quiet: boolean;
-      lastMessage: string;
-
-      // Construct.
-      constructor();
-
-      // Open the log file.
-      open(fileName: string): void;
-      // Close the log file.
-      close(): void;
-      // Set logging level.
-      setLevel(level: number): void;
-      // Set whether to timestamp log messages.
-      setTimeStamp(enable: boolean): void;
-      // Set quiet mode ie. only print error entries to standard error stream (which is normally redirected to console also). Output to log file is not affected by this mode.
-      setQuiet(quiet: boolean): void;
-      // Return logging level.
-      getLevel(): number;
-      // Return whether log messages are timestamped.
-      getTimeStamp(): boolean;
-      // Return last log message.
-      getLastMessage(): string;
-      // Return whether log is in quiet mode (only errors printed to standard error stream).
-      isQuiet(): boolean;
-      // Write to the log. If logging level is higher than the level of the message, the message is ignored.
-      write(level: number, message: string): void;
-      // Write raw output to the log.
-      writeRaw(message: string, error?: boolean): void;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Engine
-//----------------------------------------------------
-
-
-   export class Engine extends AObject {
-
-      minFps: number;
-      maxFps: number;
-      maxInactiveFps: number;
-      timeStepSmoothing: number;
-      pauseMinimized: boolean;
-      autoExit: boolean;
-      nextTimeStep: number;
-
-      // Construct.
-      constructor();
-
-      // Run one frame.
-      runFrame(): void;
-      // Set minimum frames per second. If FPS goes lower than this, time will appear to slow down.
-      setMinFps(fps: number): void;
-      // Set maximum frames per second. The engine will sleep if FPS is higher than this.
-      setMaxFps(fps: number): void;
-      // Set maximum frames per second when the application does not have input focus.
-      setMaxInactiveFps(fps: number): void;
-      // Set how many frames to average for timestep smoothing. Default is 2. 1 disables smoothing.
-      setTimeStepSmoothing(frames: number): void;
-      // Set whether to pause update events and audio when minimized.
-      setPauseMinimized(enable: boolean): void;
-      // Set whether to exit automatically on exit request (window close button.)
-      setAutoExit(enable: boolean): void;
-      // Override timestep of the next frame. Should be called in between RunFrame() calls.
-      setNextTimeStep(seconds: number): void;
-      // Close the graphics window and set the exit flag. No-op on iOS, as an iOS application can not legally exit.
-      exit(): void;
-      // Dump profiling information to the log.
-      dumpProfiler(): void;
-      // Dump information of all resources to the log.
-      dumpResources(dumpFileName?: boolean): void;
-      // Dump information of all memory allocations to the log. Supported in MSVC debug mode only.
-      dumpMemory(): void;
-      // Get timestep of the next frame. Updated by ApplyFrameLimit().
-      getNextTimeStep(): number;
-      // Return the minimum frames per second.
-      getMinFps(): number;
-      // Return the maximum frames per second.
-      getMaxFps(): number;
-      // Return the maximum frames per second when the application does not have input focus.
-      getMaxInactiveFps(): number;
-      // Return how many frames to average for timestep smoothing.
-      getTimeStepSmoothing(): number;
-      // Return whether to pause update events and audio when minimized.
-      getPauseMinimized(): boolean;
-      // Return whether to exit automatically on exit request.
-      getAutoExit(): boolean;
-      // Return whether engine has been initialized.
-      isInitialized(): boolean;
-      // Return whether exit has been requested.
-      isExiting(): boolean;
-      // Return whether the engine has been created in headless mode.
-      isHeadless(): boolean;
-      // Send frame update events.
-      update(): void;
-      // Render after frame update.
-      render(): void;
-      // Get the timestep for the next frame and sleep for frame limiting if necessary.
-      applyFrameLimit(): void;
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Javascript
-//----------------------------------------------------
-
-
-   export class JSComponent extends Component {
-
-      componentFile: JSComponentFile;
-      updateEventMask: number;
-
-      // Construct.
-      constructor();
-
-      applyAttributes(): void;
-      getComponentFile(): JSComponentFile;
-      // Match script name
-      matchScriptName(path: string): boolean;
-      // Handle enabled/disabled state change. Changes update event subscription.
-      onSetEnabled(): void;
-      // Set what update events should be subscribed to. Use this for optimization: by default all are in use. Note that this is not an attribute and is not saved or network-serialized, therefore it should always be called eg. in the subclass constructor.
-      setUpdateEventMask(mask: number): void;
-      // Return what update events are subscribed to.
-      getUpdateEventMask(): number;
-      // Return whether the DelayedStart() function has been called.
-      isDelayedStartCalled(): boolean;
-      setComponentFile(cfile: JSComponentFile): void;
-      setDestroyed(): void;
-      initInstance(hasArgs?: boolean, argIdx?: number): void;
-
-   }
-
-   export class JSComponentFile extends Resource {
-
-      scriptClass: boolean;
-
-      // Construct.
-      constructor();
-
-      getScriptClass(): boolean;
-      createJSComponent(): JSComponent;
-      pushModule(): boolean;
-
-   }
-
-   export class JSEventHelper extends AObject {
-
-      // Construct.
-      constructor(object: AObject);
-
-
-   }
-
-   export class ScriptObject extends AObject {
-
-      // Construct.
-      constructor();
-
-
-   }
-
-
-
-//----------------------------------------------------
-// MODULE: Environment
-//----------------------------------------------------
-
-
-   export class ProcSky extends Drawable {
-
-      dayTime: number;
-      autoUpdate: boolean;
-      updateGeometryType: UpdateGeometryType;
-      timeOfDay: number;
-
-      constructor();
-
-      setDayTime(time: number): number;
-      getDayTime(): number;
-      setAutoUpdate(autoUpdate: boolean): void;
-      // Return whether a geometry update is necessary, and if it can happen in a worker thread.
-      getUpdateGeometryType(): UpdateGeometryType;
-      getTimeOfDay(): number;
-
-   }
-
-
-
-}

+ 0 - 28
Script/TypeScript/AtomicPlayer.d.ts

@@ -1,28 +0,0 @@
-//Atomic TypeScript Definitions
-
-
-/// <reference path="Atomic.d.ts" />
-
-declare module AtomicPlayer {
-
-
-//----------------------------------------------------
-// MODULE: Player
-//----------------------------------------------------
-
-
-   export class Player extends Atomic.AObject {
-
-      currentScene: Atomic.Scene;
-
-      // Construct.
-      constructor();
-
-      loadScene(filename: string, camera?: Atomic.Camera): Atomic.Scene;
-      getCurrentScene(): Atomic.Scene;
-
-   }
-
-
-
-}

+ 0 - 137
Script/TypeScript/Editor.d.ts

@@ -1,137 +0,0 @@
-//Atomic TypeScript Definitions
-
-
-/// <reference path="Atomic.d.ts" />
-
-declare module Editor {
-
-
-   // enum EditMode
-   export type EditMode = number;
-   export var EDIT_SELECT: EditMode;
-   export var EDIT_MOVE: EditMode;
-   export var EDIT_ROTATE: EditMode;
-   export var EDIT_SCALE: EditMode;
-
-
-   // enum AxisMode
-   export type AxisMode = number;
-   export var AXIS_WORLD: AxisMode;
-   export var AXIS_LOCAL: AxisMode;
-
-
-   export var FINDTEXT_FLAG_NONE: number;
-   export var FINDTEXT_FLAG_CASESENSITIVE: number;
-   export var FINDTEXT_FLAG_WHOLEWORD: number;
-   export var FINDTEXT_FLAG_WRAP: number;
-   export var FINDTEXT_FLAG_NEXT: number;
-   export var FINDTEXT_FLAG_PREV: number;
-   export var EDITOR_MODALERROR: number;
-   export var EDITOR_MODALINFO: number;
-
-
-//----------------------------------------------------
-// MODULE: Editor
-//----------------------------------------------------
-
-
-   export class FileUtils extends Atomic.AObject {
-
-      // Construct.
-      constructor();
-
-      createDirs(folder: string): boolean;
-      openProjectFileDialog(): string;
-      newProjectFileDialog(): string;
-      revealInFinder(fullpath: string): void;
-
-   }
-
-   export class EditorMode extends Atomic.AObject {
-
-      // Construct.
-      constructor();
-
-      playProject(): boolean;
-
-   }
-
-   export class PlayerMode extends Atomic.AObject {
-
-      // Construct.
-      constructor();
-
-      launchedByEditor(): boolean;
-
-   }
-
-   export class JSResourceEditor extends ResourceEditor {
-
-      constructor(fullpath: string, container: Atomic.UITabContainer);
-
-      findText(findText: string, flags: number): boolean;
-      findTextClose(): void;
-      gotoTokenPos(tokenPos: number): void;
-      gotoLineNumber(lineNumber: number): void;
-      formatCode(): void;
-      setFocus(): void;
-      hasUnsavedModifications(): boolean;
-      save(): boolean;
-
-   }
-
-   export class ResourceEditor extends Atomic.AObject {
-
-      button: Atomic.UIButton;
-      fullPath: string;
-      rootContentWidget: Atomic.UIWidget;
-
-      constructor(fullpath: string, container: Atomic.UITabContainer);
-
-      getButton(): Atomic.UIButton;
-      hasUnsavedModifications(): boolean;
-      setFocus(): void;
-      close(navigateToAvailableResource?: boolean): void;
-      findText(text: string, flags: number): boolean;
-      findTextClose(): void;
-      requiresInspector(): boolean;
-      getFullPath(): string;
-      save(): boolean;
-      getRootContentWidget(): Atomic.UIWidget;
-
-   }
-
-   export class SceneEditor3D extends ResourceEditor {
-
-      scene: Atomic.Scene;
-
-      constructor(fullpath: string, container: Atomic.UITabContainer);
-
-      selectNode(node: Atomic.Node): void;
-      getScene(): Atomic.Scene;
-      setFocus(): void;
-      requiresInspector(): boolean;
-      close(navigateToAvailableResource?: boolean): void;
-      save(): boolean;
-
-   }
-
-   export class SceneView3D extends Atomic.UISceneView {
-
-      pitch: number;
-      yaw: number;
-
-      constructor(sceneEditor: SceneEditor3D);
-
-      selectNode(node: Atomic.Node): void;
-      setPitch(pitch: number): void;
-      setYaw(yaw: number): void;
-      enable(): void;
-      disable(): void;
-      isEnabled(): boolean;
-
-   }
-
-
-
-}

+ 0 - 451
Script/TypeScript/ToolCore.d.ts

@@ -1,451 +0,0 @@
-//Atomic TypeScript Definitions
-
-
-/// <reference path="Atomic.d.ts" />
-
-declare module ToolCore {
-
-
-   // enum PlatformID
-   export type PlatformID = number;
-   export var PLATFORMID_UNDEFINED: PlatformID;
-   export var PLATFORMID_WINDOWS: PlatformID;
-   export var PLATFORMID_MAC: PlatformID;
-   export var PLATFORMID_ANDROID: PlatformID;
-   export var PLATFORMID_IOS: PlatformID;
-   export var PLATFORMID_WEB: PlatformID;
-
-
-   export var PROJECTFILE_VERSION: number;
-
-
-//----------------------------------------------------
-// MODULE: ToolCore
-//----------------------------------------------------
-
-
-   export class ToolEnvironment extends Atomic.AObject {
-
-      rootSourceDir: string;
-      rootBuildDir: string;
-      editorBinary: string;
-      playerBinary: string;
-      toolBinary: string;
-      coreDataDir: string;
-      playerDataDir: string;
-      editorDataDir: string;
-      deploymentDataDir: string;
-      projectTemplatesDir: string;
-      examplesDir: string;
-      devConfigFilename: string;
-
-      constructor();
-
-      initFromPackage(): boolean;
-      initFromJSON(atomicTool?: boolean): boolean;
-      // Root source and build directories for development source tree builds
-      setRootSourceDir(sourceDir: string): void;
-      setRootBuildDir(buildDir: string, setBinaryPaths?: boolean): void;
-      getRootSourceDir(): string;
-      getRootBuildDir(): string;
-      // Binaries
-      getEditorBinary(): string;
-      getPlayerBinary(): string;
-      getToolBinary(): string;
-      // Resource directories
-      getCoreDataDir(): string;
-      getPlayerDataDir(): string;
-      getEditorDataDir(): string;
-      // Data directories
-      getDeploymentDataDir(): string;
-      getProjectTemplatesDir(): string;
-      getExamplesDir(): string;
-      getDevConfigFilename(): string;
-      dump(): void;
-
-   }
-
-   export class ToolSystem extends Atomic.AObject {
-
-      project: Project;
-      dataPath: string;
-      currentPlatform: Platform;
-
-      constructor();
-
-      loadProject(fullpath: string): boolean;
-      getProject(): Project;
-      closeProject(): void;
-      getDataPath(): string;
-      setDataPath(path: string): void;
-      registerPlatform(platform: Platform): void;
-      getPlatformByID(platform: PlatformID): Platform;
-      getPlatformByName(name: string): Platform;
-      setCurrentPlatform(platform: PlatformID): void;
-      getCurrentPlatform(): Platform;
-      setCLI(): void;
-      isCLI(): boolean;
-
-   }
-
-   export class Project extends Atomic.AObject {
-
-      resourcePath: string;
-      componentsPath: string;
-      scriptsPath: string;
-      modulesPath: string;
-      projectPath: string;
-      projectFilePath: string;
-      userPrefsFullPath: string;
-      buildSettingsFullPath: string;
-      version: string;
-
-      // Construct.
-      constructor();
-
-      load(fullpath: string): boolean;
-      save(fullpath: string): void;
-      // Paths
-      getResourcePath(): string;
-      setResourcePath(resourcePath: string): void;
-      getComponentsPath(): string;
-      getScriptsPath(): string;
-      getModulesPath(): string;
-      isComponentsDirOrFile(fullPath: string): boolean;
-      isScriptsDirOrFile(fullPath: string): boolean;
-      isModulesDirOrFile(fullPath: string): boolean;
-      addPlatform(platformID: PlatformID): void;
-      containsPlatform(platformID: PlatformID): boolean;
-      removePlatform(platformID: PlatformID): void;
-      isDirty(): boolean;
-      setDirty(): void;
-      getProjectPath(): string;
-      getProjectFilePath(): string;
-      getUserPrefsFullPath(): string;
-      getBuildSettingsFullPath(): string;
-      getVersion(): string;
-      setVersion(version: string): void;
-      saveBuildSettings(): void;
-      loadBuildSettings(): boolean;
-      saveUserPrefs(): void;
-      loadUserPrefs(): boolean;
-
-   }
-
-   export class ProjectFile extends Atomic.AObject {
-
-      // Construct.
-      constructor();
-
-      save(project: Project): void;
-      load(project: Project): boolean;
-      writeNewProject(fullpath: string): void;
-
-   }
-
-   export class Platform extends Atomic.AObject {
-
-      name: string;
-      platformID: PlatformID;
-
-      constructor();
-
-      getName(): string;
-      getPlatformID(): PlatformID;
-
-   }
-
-   export class PlatformMac extends Platform {
-
-      name: string;
-      platformID: PlatformID;
-
-      constructor();
-
-      getName(): string;
-      getPlatformID(): PlatformID;
-
-   }
-
-   export class PlatformWeb extends Platform {
-
-      name: string;
-      platformID: PlatformID;
-
-      constructor();
-
-      getName(): string;
-      getPlatformID(): PlatformID;
-
-   }
-
-   export class PlatformWindows extends Platform {
-
-      name: string;
-      platformID: PlatformID;
-
-      constructor();
-
-      getName(): string;
-      getPlatformID(): PlatformID;
-
-   }
-
-   export class Command extends Atomic.AObject {
-
-      constructor();
-
-      parse(command: string): boolean;
-      run(): void;
-      finished(): void;
-      error(errorMsg: string): void;
-      cancel(): void;
-      requiresProjectLoad(): boolean;
-      requiresLicenseValidation(): boolean;
-
-   }
-
-   export class PlayCmd extends Command {
-
-      constructor();
-
-      run(): void;
-
-   }
-
-   export class OpenAssetImporter extends Atomic.AObject {
-
-      errorMessage: string;
-      importNode: Atomic.Node;
-      startTime: number;
-      endTime: number;
-      scale: number;
-      exportAnimations: boolean;
-      verboseLog: boolean;
-
-      constructor();
-
-      load(assetPath: string): boolean;
-      getErrorMessage(): string;
-      exportModel(outName: string, animName?: string, animationOnly?: boolean): boolean;
-      setImportNode(node: Atomic.Node): void;
-      setStartTime(startTime: number): void;
-      setEndTime(endTime: number): void;
-      setScale(scale: number): void;
-      setExportAnimations(exportAnimations: boolean): void;
-      setVerboseLog(verboseLog: boolean): void;
-
-   }
-
-   export class Asset extends Atomic.AObject {
-
-      guid: string;
-      name: string;
-      path: string;
-      extension: string;
-      relativePath: string;
-      cachePath: string;
-      resource: Atomic.Resource;
-      importerType: string;
-      importerTypeName: string;
-      importer: AssetImporter;
-      parent: Asset;
-      dirty: boolean;
-      fileTimestamp: number;
-      dotAssetFilename: string;
-
-      // Construct.
-      constructor();
-
-      import(): boolean;
-      preload(): boolean;
-      setPath(path: string): boolean;
-      getGUID(): string;
-      getName(): string;
-      getPath(): string;
-      getExtension(): string;
-      // Get the path relative to project
-      getRelativePath(): string;
-      getCachePath(): string;
-      getResource(): Atomic.Resource;
-      getImporterType(): string;
-      getImporterTypeName(): string;
-      getImporter(): AssetImporter;
-      postImportError(message: string): void;
-      getParent(): Asset;
-      setDirty(dirty: boolean): void;
-      isDirty(): boolean;
-      // Get the last timestamp as seen by the AssetDatabase
-      getFileTimestamp(): number;
-      // Sets the time stamp to the asset files current time
-      updateFileTimestamp(): void;
-      getDotAssetFilename(): string;
-      isFolder(): boolean;
-      load(): boolean;
-      save(): boolean;
-
-   }
-
-   export class AssetDatabase extends Atomic.AObject {
-
-      cachePath: string;
-
-      // Construct.
-      constructor();
-
-      getAssetByGUID(guid: string): Asset;
-      getAssetByPath(path: string): Asset;
-      getAssetByCachePath(cachePath: string): Asset;
-      generateAssetGUID(): string;
-      registerGUID(guid: string): void;
-      getCachePath(): string;
-      deleteAsset(asset: Asset): void;
-      scan(): void;
-      getResourceImporterName(resourceTypeName: string): string;
-      getDotAssetFilename(path: string): string;
-      getFolderAssets(folder:string):ToolCore.Asset[];
-      getAssetsByImporterType(type:string):ToolCore.Asset[];
-
-   }
-
-   export class AssetImporter extends Atomic.AObject {
-
-      asset: Asset;
-      resource: Atomic.Resource;
-
-      // Construct.
-      constructor(asset: Asset);
-
-      setDefaults(): void;
-      preload(): boolean;
-      getAsset(): Asset;
-      getResource(): Atomic.Resource;
-      requiresCacheFile(): boolean;
-
-   }
-
-   export class AudioImporter extends AssetImporter {
-
-      // Construct.
-      constructor(asset: Asset);
-
-      setDefaults(): void;
-
-   }
-
-   export class JavascriptImporter extends AssetImporter {
-
-      resource: Atomic.Resource;
-
-      // Construct.
-      constructor(asset: Asset);
-
-      setDefaults(): void;
-      isComponentFile(): boolean;
-      getResource(): Atomic.Resource;
-
-   }
-
-   export class MaterialImporter extends AssetImporter {
-
-      // Construct.
-      constructor(asset: Asset);
-
-      setDefaults(): void;
-      saveMaterial(): void;
-
-   }
-
-   export class AnimationImportInfo extends Atomic.AObject {
-
-      name: string;
-      startTime: number;
-      endTime: number;
-
-      constructor();
-
-      getName(): string;
-      getStartTime(): number;
-      getEndTime(): number;
-      setName(name: string): void;
-      setStartTime(time: number): void;
-      setEndTime(time: number): void;
-
-   }
-
-   export class ModelImporter extends AssetImporter {
-
-      scale: number;
-      importAnimations: boolean;
-      animationCount: number;
-      resource: Atomic.Resource;
-
-      // Construct.
-      constructor(asset: Asset);
-
-      setDefaults(): void;
-      getScale(): number;
-      setScale(scale: number): void;
-      getImportAnimations(): boolean;
-      setImportAnimations(importAnimations: boolean): void;
-      getAnimationCount(): number;
-      setAnimationCount(count: number): void;
-      getResource(): Atomic.Resource;
-      getAnimationInfo(index: number): AnimationImportInfo;
-
-   }
-
-   export class PrefabImporter extends AssetImporter {
-
-      // Construct.
-      constructor(asset: Asset);
-
-      setDefaults(): void;
-      preload(): boolean;
-
-   }
-
-   export class TextureImporter extends AssetImporter {
-
-      // Construct.
-      constructor(asset: Asset);
-
-      setDefaults(): void;
-
-   }
-
-   export class LicenseSystem extends Atomic.AObject {
-
-      key: string;
-      email: string;
-
-      // Construct.
-      constructor();
-
-      initialize(): void;
-      licenseWindows(): boolean;
-      licenseMac(): boolean;
-      licenseAndroid(): boolean;
-      licenseIOS(): boolean;
-      licenseHTML5(): boolean;
-      licenseModule3D(): boolean;
-      // Returns whether there are any platform licenses available
-      isStandardLicense(): boolean;
-      // Returns true if request to deactivate is made
-      deactivate(): boolean;
-      resetLicense(): void;
-      loadLicense(): boolean;
-      // Basic key validation
-      validateKey(key: string): boolean;
-      // Activate on server
-      requestServerActivation(key: string): void;
-      getKey(): string;
-      generateMachineID(): string;
-      getEmail(): string;
-      licenseAgreementConfirmed(): void;
-
-   }
-
-
-
-}