瀏覽代碼

Revert "Tools, Canvas2D & Tests"

This reverts commit a125befca982d607c244f1c9369372d5247e625a.
nockawa 8 年之前
父節點
當前提交
3c5442382e

+ 2 - 2
src/Canvas2d/babylon.brushes2d.ts

@@ -66,7 +66,7 @@
         }
     }
 
-    @className("SolidColorBrush2D", "BABYLON")
+    @className("SolidColorBrush2D")
     /**
      * This class implements a Brush that will be drawn with a uniform solid color (i.e. the same color everywhere in the content where the brush is assigned to).
      */
@@ -113,7 +113,7 @@
         private _color: Color4;
     }
 
-    @className("GradientColorBrush2D", "BABYLON")
+    @className("GradientColorBrush2D")
     /**
      * This class implements a Gradient Color Brush, the brush color will blend from a first given color to a second one.
      */

+ 3 - 3
src/Canvas2d/babylon.canvas2d.ts

@@ -19,7 +19,7 @@
         }
     }
 
-    @className("Canvas2D", "BABYLON")
+    @className("Canvas2D")
     /**
      * The Canvas2D main class.
      * This class is extended in both ScreenSpaceCanvas2D and WorldSpaceCanvas2D which are designed only for semantic use.
@@ -1586,7 +1586,7 @@
         private static _gradientColorBrushes: StringDictionary<IBrush2D> = new StringDictionary<IBrush2D>();
     }
 
-    @className("WorldSpaceCanvas2D", "BABYLON")
+    @className("WorldSpaceCanvas2D")
     /**
      * Class to create a WorldSpace Canvas2D.
      */
@@ -1706,7 +1706,7 @@
         }
     }
 
-    @className("ScreenSpaceCanvas2D", "BABYLON")
+    @className("ScreenSpaceCanvas2D")
     /**
      * Class to create a ScreenSpace Canvas2D
      */

+ 4 - 4
src/Canvas2d/babylon.canvas2dLayoutEngine.ts

@@ -1,10 +1,10 @@
 module BABYLON {
 
-    @className("LayoutEngineBase", "BABYLON")
+    @className("LayoutEngineBase")
     /**
      * This is the base class you have to extend in order to implement your own Layout Engine.
      * Note that for performance reason, each different Layout Engine type can be exposed as one/many singleton or must be instanced each time.
-     * If data has to be associated to a given primitive you can use the SmartPropertyBase.addExternalData API to do it.
+     * If data has to be associated to a given primitive you can use the SmartPropertyPrim.addExternalData API to do it.
      */
     export class LayoutEngineBase implements ILockable {
         constructor() {
@@ -35,7 +35,7 @@
         private _isLocked: boolean;
     }
 
-    @className("CanvasLayoutEngine", "BABYLON")
+    @className("CanvasLayoutEngine")
     /**
      * The default Layout Engine, primitive are positioning into a Canvas, using their x/y coordinates.
      * This layout must be used as a Singleton through the CanvasLayoutEngine.Singleton property.
@@ -82,7 +82,7 @@
     }
 
 
-    @className("StackPanelLayoutEngine", "BABYLON")
+    @className("StackPanelLayoutEngine")
     /**
      * A stack panel layout. Primitive will be stack either horizontally or vertically.
      * This Layout type must be used as a Singleton, use the StackPanelLayoutEngine.Horizontal for an horizontal stack panel or StackPanelLayoutEngine.Vertical for a vertical one.

+ 1 - 1
src/Canvas2d/babylon.ellipse2d.ts

@@ -159,7 +159,7 @@
         }
     }
 
-    @className("Ellipse2D", "BABYLON")
+    @className("Ellipse2D")
     /**
      * Ellipse Primitive class
      */

+ 1 - 1
src/Canvas2d/babylon.group2d.ts

@@ -1,5 +1,5 @@
 module BABYLON {
-    @className("Group2D", "BABYLON")
+    @className("Group2D")
     /**
      * A non renderable primitive that defines a logical group.
      * Can also serve the purpose of caching its content into a bitmap to reduce rendering overhead

+ 1 - 1
src/Canvas2d/babylon.lines2d.ts

@@ -165,7 +165,7 @@
         }
     }
 
-    @className("Lines2D", "BABYLON")
+    @className("Lines2D")
     /**
      * Primitive drawing a series of line segments
      */

+ 19 - 32
src/Canvas2d/babylon.prim2dBase.ts

@@ -1297,12 +1297,12 @@
         }
     }
 
-    @className("Prim2DBase", "BABYLON")
+    @className("Prim2DBase")
     /**
      * Base class for a Primitive of the Canvas2D feature
      */
     export class Prim2DBase extends SmartPropertyPrim {
-        static PRIM2DBASE_PROPCOUNT: number = 15;
+        static PRIM2DBASE_PROPCOUNT: number = 16;
         public  static _bigInt = Math.pow(2, 30);
 
         constructor(settings: {
@@ -1385,12 +1385,14 @@
             this._lastAutoSizeArea = Size.Zero();
             this._contentArea = new Size(null, null);
             this._pointerEventObservable = new Observable<PrimitivePointerInfo>();
+            this._boundingInfo = new BoundingInfo2D();
             this._owner = owner;
             this._parent = null;
             this._margin = null;
             this._padding = null;
             this._marginAlignment = null;
             this._id = settings.id;
+            this.propertyChanged = new Observable<PropertyChangedInfo>();
             this._children = new Array<Prim2DBase>();
             this._localTransform = new Matrix();
             this._globalTransform = null;
@@ -1555,21 +1557,6 @@
             this._positioningDirty();
         }
 
-        // Overload the SmartPropertyBase's method to provide the additional logic of returning the parent's dataSource if there's no dataSource specified at this level.
-        protected _getDataSource(): IPropertyChanged {
-            let levelDS = super._getDataSource();
-            if (levelDS != null) {
-                return levelDS;
-            }
-
-            let p = this.parent;
-            if (p != null) {
-                return p.dataSource;
-            }
-
-            return null;
-        }
-
         public get actionManager(): ActionManager {
             if (!this._actionManager) {
                 this._actionManager = new ActionManager(this.owner.scene);
@@ -1697,7 +1684,7 @@
          */
         public static scaleYProperty: Prim2DPropInfo;
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 0, pi => Prim2DBase.actualPositionProperty = pi, false, false, true)
+        @instanceLevelProperty(1, pi => Prim2DBase.actualPositionProperty = pi, false, false, true)
         /**
          * Return the position where the primitive is rendered in the Canvas, this position may be different than the one returned by the position property due to layout/alignment/margin/padding computing
          */
@@ -1741,7 +1728,7 @@
          * Use this property to set a new Vector2 object, otherwise to change only the x/y use Prim2DBase.x or y properties.
          * Setting this property may have no effect is specific alignment are in effect.
          */
-        @dynamicLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 1, pi => Prim2DBase.positionProperty = pi, false, false, true)
+        @dynamicLevelProperty(2, pi => Prim2DBase.positionProperty = pi, false, false, true)
         public get position(): Vector2 {
             return this._position || Prim2DBase._nullPosition;
         }
@@ -1818,7 +1805,7 @@
          * BEWARE: if you change only size.width or height it won't trigger a property change and you won't have the expected behavior.
          * Use this property to set a new Size object, otherwise to change only the width/height use Prim2DBase.width or height properties.
          */
-        @dynamicLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 2, pi => Prim2DBase.sizeProperty = pi, false, true)
+        @dynamicLevelProperty(3, pi => Prim2DBase.sizeProperty = pi, false, true)
         public get size(): Size {
 
             if (!this._size || this._size.width == null || this._size.height == null) {
@@ -1898,7 +1885,7 @@
             this._positioningDirty();
         }
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 3, pi => Prim2DBase.rotationProperty = pi, false, true)
+        @instanceLevelProperty(4, pi => Prim2DBase.rotationProperty = pi, false, true)
         /**
          * Rotation of the primitive, in radian, along the Z axis
          */
@@ -1910,7 +1897,7 @@
             this._rotation = value;
         }
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 4, pi => Prim2DBase.scaleProperty = pi, false, true)
+        @instanceLevelProperty(5, pi => Prim2DBase.scaleProperty = pi, false, true)
         /**
          * Uniform scale applied on the primitive. If a non-uniform scale is applied through scaleX/scaleY property the getter of this property will return scaleX.
          */
@@ -2000,7 +1987,7 @@
          * 0,1 means the center is top/left
          * @returns The normalized center.
          */
-        @dynamicLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 5, pi => Prim2DBase.originProperty = pi, false, true)
+        @dynamicLevelProperty(6, pi => Prim2DBase.originProperty = pi, false, true)
         public get origin(): Vector2 {
             return this._origin;
         }
@@ -2009,7 +1996,7 @@
             this._origin = value;
         }
 
-        @dynamicLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 6, pi => Prim2DBase.levelVisibleProperty = pi)
+        @dynamicLevelProperty(7, pi => Prim2DBase.levelVisibleProperty = pi)
         /**
          * Let the user defines if the Primitive is hidden or not at its level. As Primitives inherit the hidden status from their parent, only the isVisible property give properly the real visible state.
          * Default is true, setting to false will hide this primitive and its children.
@@ -2022,7 +2009,7 @@
             this._changeFlags(SmartPropertyPrim.flagLevelVisible, value);
         }
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 7, pi => Prim2DBase.isVisibleProperty = pi)
+        @instanceLevelProperty(8, pi => Prim2DBase.isVisibleProperty = pi)
         /**
          * Use ONLY THE GETTER to determine if the primitive is visible or not.
          * The Setter is for internal purpose only!
@@ -2035,7 +2022,7 @@
             this._changeFlags(SmartPropertyPrim.flagIsVisible, value);
         }
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 8, pi => Prim2DBase.zOrderProperty = pi)
+        @instanceLevelProperty(9, pi => Prim2DBase.zOrderProperty = pi)
         /**
          * You can override the default Z Order through this property, but most of the time the default behavior is acceptable
          */
@@ -2059,7 +2046,7 @@
             return this._manualZOrder != null;
         }
 
-        @dynamicLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 9, pi => Prim2DBase.marginProperty = pi)
+        @dynamicLevelProperty(10, pi => Prim2DBase.marginProperty = pi)
         /**
          * You can get/set a margin on the primitive through this property
          * @returns the margin object, if there was none, a default one is created and returned
@@ -2080,7 +2067,7 @@
             return (this._margin !== null) || (this._marginAlignment !== null);
         }
 
-        @dynamicLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 10, pi => Prim2DBase.paddingProperty = pi)
+        @dynamicLevelProperty(11, pi => Prim2DBase.paddingProperty = pi)
         /**
          * You can get/set a margin on the primitive through this property
          * @returns the margin object, if there was none, a default one is created and returned
@@ -2101,7 +2088,7 @@
             return this._padding !== null;
         }
 
-        @dynamicLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 11, pi => Prim2DBase.marginAlignmentProperty = pi)
+        @dynamicLevelProperty(12, pi => Prim2DBase.marginAlignmentProperty = pi)
         /**
          * You can get/set the margin alignment through this property
          */
@@ -2112,7 +2099,7 @@
             return this._marginAlignment;
         }
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 12, pi => Prim2DBase.opacityProperty = pi)
+        @instanceLevelProperty(13, pi => Prim2DBase.opacityProperty = pi)
         /**
          * Get/set the opacity of the whole primitive
          */
@@ -2137,7 +2124,7 @@
             this._updateRenderMode();
         }
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 13, pi => Prim2DBase.scaleXProperty = pi, false, true)
+        @instanceLevelProperty(14, pi => Prim2DBase.scaleXProperty = pi, false, true)
         /**
          * Scale applied on the X axis of the primitive
          */
@@ -2151,7 +2138,7 @@
             return this._scale.x;
         }
 
-        @instanceLevelProperty(SmartPropertyPrim.SMARTPROPERTYPRIM_PROPCOUNT + 14, pi => Prim2DBase.scaleYProperty = pi, false, true)
+        @instanceLevelProperty(15, pi => Prim2DBase.scaleYProperty = pi, false, true)
         /**
          * Scale applied on the Y axis of the primitive
          */

+ 1 - 1
src/Canvas2d/babylon.rectangle2d.ts

@@ -160,7 +160,7 @@
         }
     }
 
-    @className("Rectangle2D", "BABYLON")
+    @className("Rectangle2D")
     /**
      * The Rectangle Primitive type
      */

+ 1 - 1
src/Canvas2d/babylon.renderablePrim2d.ts

@@ -341,7 +341,7 @@
         private _dataElementCount: number;
     }
 
-    @className("RenderablePrim2D", "BABYLON")
+    @className("RenderablePrim2D")
     /**
      * The abstract class for primitive that render into the Canvas2D
      */

+ 1 - 1
src/Canvas2d/babylon.shape2d.ts

@@ -1,6 +1,6 @@
 module BABYLON {
 
-    @className("Shape2D", "BABYLON")
+    @className("Shape2D")
     /**
      * The abstract class for parametric shape based Primitives types.
      * Shape2D based primitives are composed of two parts: fill and border, both are optional but at least one must be specified.

文件差異過大導致無法顯示
+ 214 - 906
src/Canvas2d/babylon.smartPropertyPrim.ts


+ 1 - 1
src/Canvas2d/babylon.sprite2d.ts

@@ -130,7 +130,7 @@
         }
     }
 
-    @className("Sprite2D", "BABYLON")
+    @className("Sprite2D")
     /**
      * Primitive that displays a Sprite/Picture
      */

+ 1 - 1
src/Canvas2d/babylon.text2d.ts

@@ -125,7 +125,7 @@
         }
     }
 
-    @className("Text2D", "BABYLON")
+    @className("Text2D")
     /**
      * Primitive that render text using a specific font
      */

+ 5 - 37
src/Tools/babylon.tools.ts

@@ -1022,7 +1022,7 @@
 
         /**
          * This method will return the name of the class used to create the instance of the given object.
-         * It will works only on Javascript basic data types (number, string, ...) and instance of class declared with the @className decorator or implementing a method getClassName():string.
+         * It will works only on Javascript basic data types (number, string, ...) and instance of class declared with the @className decorator.
          * @param object the object to get the class name from
          * @return the name of the class, will be "object" for a custom data type not using the @className decorator
          */
@@ -1043,37 +1043,7 @@
             return name;
         }
 
-        /**
-         * This method will return the name of the full name of the class, including its owning module (if any).
-         * It will works only on Javascript basic data types (number, string, ...) and instance of class declared with the @className decorator or implementing a method getClassName():string (in which case the module won't be specified).
-         * @param object the object to get the class name from
-         * @return a string that can have two forms: "moduleName.className" if module was specified when the class' Name was registered or "className" if there was not module specified.
-         */
-        public static getFullClassName(object, isType: boolean = false): string {
-            let className = null;
-            let moduleName = null;
-
-            if (!isType && object.getClassName) {
-                className = object.getClassName();
-            } else {
-                if (object instanceof Object) {
-                    let classObj = isType ? object : Object.getPrototypeOf(object);
-                    className  = classObj.constructor["__bjsclassName__"];
-                    moduleName = classObj.constructor["__bjsmoduleName__"];
-                }
-                if (!className) {
-                    className = typeof object;
-                }
-            }
-
-            if (!className) {
-                return null;
-            }
-
-            return ((moduleName!=null) ? (moduleName + ".") : "") + className;
-        }
-
-        public static first<T>(array: Array<T>, predicate: (item: T) => boolean) {
+        public static first<T>(array: Array<T>, predicate: (item) => boolean) {
             for (let el of array) {
                 if (predicate(el)) {
                     return el;
@@ -1263,16 +1233,14 @@
     }
 
     /**
-     * Use this className as a decorator on a given class definition to add it a name and optionally its module.
+     * Use this className as a decorator on a given class definition to add it a name.
      * You can then use the Tools.getClassName(obj) on an instance to retrieve its class name.
      * This method is the only way to get it done in all cases, even if the .js file declaring the class is minified
-     * @param name The name of the class, case should be preserved
-     * @param module The name of the Module hosting the class, optional, but strongly recommended to specify if possible. Case should be preserved.
+     * @param name
      */
-    export function className(name: string, module?: string): (target: Object) => void {
+    export function className(name: string): (target: Object) => void {
         return (target: Object) => {
             target["__bjsclassName__"] = name;
-            target["__bjsmoduleName__"] = (module != null) ? module : null;
         }
     }
 

+ 0 - 98
tests/Canvas2d/Jasmine/DataBindingTest.ts

@@ -1,98 +0,0 @@
-/// <reference path="../../../src/canvas2d/babylon.smartpropertyprim.ts" />
-/// <reference path="testclasses.ts" />
-
-describe("GUI - Data Binding", () => {
-
-    it("target update, no indirection",
-        () => {
-
-            // Create a customer, set its age
-            let c = new BABYLON.Customer();
-            c.age = 18;
-
-            // Create a View Model and a binding
-            let vm = new BABYLON.CustomerViewModel();
-            vm.registerSimpleDataBinding(BABYLON.CustomerViewModel.ageProperty, "age");
-
-            // Setting a dataSource should setup vm.age with the binding source value
-            vm.dataSource = c;
-
-            // Check it's ok
-            expect(vm.age).toBe(18);
-
-            // Change the source value, check the target is updated
-            c.age = 19;
-            expect(vm.age).toBe(19);
-        }
-    );
-
-    it("target update, with indirection",
-        () => {
-
-            // Create a customer, set its city
-            let c = new BABYLON.Customer();
-            c.mainAddress.city = "Pontault Combault";
-
-            // Create a View Model and a binding with an indirection
-            let vm = new BABYLON.CustomerViewModel();
-            vm.registerSimpleDataBinding(BABYLON.CustomerViewModel.cityProperty, "mainAddress.city");
-
-            // Setting a dataSource should setup vm.age with the binding source value
-            vm.dataSource = c;
-
-            // Check it's ok
-            expect(vm.city).toBe("Pontault Combault", "setting a new dataSource didn't immediately update the target");
-
-            // Change the source value, check the target is updated
-            c.mainAddress.city = "Paris";
-            expect(vm.city).toBe("Paris", "changing source property didn't update the target property");
-
-            // Change the address object, target should be updated
-            let address = new BABYLON.Address();
-            address.city = "Seattle";
-
-            let oldAddress = c.mainAddress;
-            c.mainAddress = address;
-            expect(vm.city).toBe("Seattle", "changing intermediate object (the address) didn't update the target");
-
-            // Check that if we change again inside Address, it still works
-            c.mainAddress.city = "Redmond";
-            expect(vm.city).toBe("Redmond", "changing final source property didn't change the target");
-
-            // Now checks that changing the oldAddress city doesn't change the target
-            oldAddress.city = "Berlin";
-            expect(vm.city).not.toBe("Berlin", "Changed old address changed the target, which should not");
-        }
-    );
-
-    it("target, one time update",
-        () => {
-            let c = new BABYLON.Customer();
-            c.firstName = "Loic Baumann";
-
-            // Create a View Model and a binding with an indirection
-            let vm = new BABYLON.CustomerViewModel();
-            vm.registerSimpleDataBinding(BABYLON.CustomerViewModel.firstNameProperty, "firstName");
-
-            // Setting a dataSource should setup vm.age with the binding source value
-            vm.dataSource = c;
-
-            // Check it's ok
-            expect(vm.firstName).toBe("Loic Baumann", "setting a new dataSource didn't immediately update the target with one time binding");
-
-            // A change of the source shouldn't update the target
-            c.firstName = "Nockawa";
-            expect(vm.firstName).not.toBe("Nockawa", "Changing source property of a One Time binding updated the target, which should not");
-
-            // A change of dataSource should update the target
-            let c2 = new BABYLON.Customer();
-            c2.firstName = "John";
-
-            vm.dataSource = c2;
-            expect(vm.firstName).toBe("John", "setting a new dataSource again didn't immediately update the target with one time binding");
-        }
-    );
-
-
-});
-

+ 0 - 173
tests/Canvas2d/Jasmine/TestClasses.ts

@@ -1,173 +0,0 @@
-module BABYLON {
-
-    @className("Address")
-    export class Address extends PropertyChangedBase {
-
-        public get street(): string {
-            return this._street;
-        }
-
-        public set street(value: string) {
-            if (value === this._street) {
-                return;
-            }
-
-            let old = this._street;
-            this._street = value;
-            this.onPropertyChanged("street", old, value);
-        }
-
-        public get city(): string {
-            return this._city;
-        }
-
-        public set city(value: string) {
-            if (value === this._city) {
-                return;
-            }
-
-            let old = this._city;
-            this._city = value;
-            this.onPropertyChanged("city", old, value);
-        }
-
-
-        public get postalCode(): string {
-            return this._postalCode;
-        }
-
-        public set postalCode(value: string) {
-            if (value === this._postalCode) {
-                return;
-            }
-
-            let old = this._postalCode;
-            this._postalCode = value;
-            this.onPropertyChanged("postalCode", old, value);
-        }
-
-        private _street: string;
-        private _city: string;
-        private _postalCode: string;
-    }
-
-    @className("Customer")
-    export class Customer extends PropertyChangedBase {
-
-        /**
-            * Customer First Name
-        **/
-        public get firstName(): string {
-            return this._firstName;
-        }
-
-        public set firstName(value: string) {
-            if (value === this._firstName) {
-                return;
-            }
-
-            let old = this._firstName;
-            this._firstName = value;
-            this.onPropertyChanged("firstName", old, value);
-        }
-
-        /**
-            * Customer Last Name
-        **/
-        public get lastName(): string {
-            return this._lastName;
-        }
-
-        public set lastName(value: string) {
-            if (value === this._lastName) {
-                return;
-            }
-
-            let old = this._lastName;
-            this._lastName = value;
-            this.onPropertyChanged("lastName", old, value);
-        }
-
-        /**
-            * Customer Main Address
-        **/
-        public get mainAddress(): Address {
-            if (!this._mainAddress) {
-                this._mainAddress = new Address();
-            }
-            return this._mainAddress;
-        }
-
-        public set mainAddress(value: Address) {
-            if (value === this._mainAddress) {
-                return;
-            }
-
-            let old = this._mainAddress;
-            this._mainAddress = value;
-            this.onPropertyChanged("mainAddress", old, value);
-        }
-
-        public get age(): number {
-            return this._age;
-        }
-
-        public set age(value: number) {
-            if (value === this._age) {
-                return;
-            }
-
-            let old = this._age;
-            this._age = value;
-            this.onPropertyChanged("age", old, value);
-        }
-
-        private _firstName: string;
-        private _lastName: string;
-        private _mainAddress: Address;
-        private _age: number;
-    }
-
-    @className("CustomerViewModel")
-    export class CustomerViewModel extends SmartPropertyBase {
-        public static firstNameProperty: Prim2DPropInfo;
-        public static ageProperty: Prim2DPropInfo;
-        public static cityProperty: Prim2DPropInfo;
-
-        constructor() {
-            super();
-        }
-
-        @BABYLON.dependencyProperty(0, pi => CustomerViewModel.ageProperty = pi)
-        public get age(): number {
-            return this._age;
-        }
-
-        public set age(value: number) {
-            this._age = value;
-        }
-
-        @BABYLON.dependencyProperty(1, pi => CustomerViewModel.cityProperty = pi)
-        public get city(): string {
-            return this._city;
-        }
-
-        public set city(value: string) {
-            this._city = value;
-        }
-
-        @BABYLON.dependencyProperty(2, pi => CustomerViewModel.firstNameProperty = pi, Binding.MODE_ONETIME)
-        public get firstName(): string {
-            return this._firstName;
-        }
-
-        public set firstName(value: string) {
-            this._firstName = value;
-        }
-
-        private _age: number;
-        private _city: string;
-        private _firstName: string;
-    }
-
-}

+ 0 - 207
tests/Canvas2d/Jasmine/chutzpah.json

@@ -1,207 +0,0 @@
-{
-    "Compile": {
-        "Mode": "External",
-        "Extensions": [ ".ts" ],
-        "ExtensionsWithNoOutput": [ ".d.ts" ]
-    },
-    "References": [
-        { "Path": "../../../src/Math/babylon.math.js" },
-        { "Path": "../../../src/Math/babylon.math.simd.js" },
-        { "Path": "../../../src/Tools/babylon.decorators.js" },
-        { "Path": "../../../src/Tools/babylon.observable.js" },
-        { "Path": "../../../src/Tools/babylon.database.js" },
-        { "Path": "../../../src/Tools/babylon.tools.tga.js" },
-        { "Path": "../../../src/Tools/babylon.tools.dds.js" },
-        { "Path": "../../../src/Tools/babylon.stringDictionary.js" },
-        { "Path": "../../../src/Tools/babylon.smartArray.js" },
-        { "Path": "../../../src/Tools/babylon.dynamicFloatArray.js" },
-        { "Path": "../../../src/Tools/babylon.rectPackingMap.js" },
-        { "Path": "../../../src/Tools/babylon.tools.js" },
-        { "Path": "../../../src/states/babylon.alphaCullingState.js" },
-        { "Path": "../../../src/states/babylon.depthCullingState.js" },
-        { "Path": "../../../src/states/babylon.stencilState.js" },
-        { "Path": "../../../src/babylon.engine.js" },
-        { "Path": "../../../src/babylon.node.js" },
-        { "Path": "../../../src/Tools/babylon.filesInput.js" },
-        { "Path": "../../../src/Collisions/babylon.pickingInfo.js" },
-        { "Path": "../../../src/Culling/babylon.boundingSphere.js" },
-        { "Path": "../../../src/Culling/babylon.boundingBox.js" },
-        { "Path": "../../../src/Culling/babylon.boundingInfo.js" },
-        { "Path": "../../../src/Culling/babylon.ray.js" },
-        { "Path": "../../../src/Mesh/babylon.abstractMesh.js" },
-        { "Path": "../../../src/Lights/babylon.light.js" },
-        { "Path": "../../../src/Lights/babylon.pointLight.js" },
-        { "Path": "../../../src/Lights/babylon.spotLight.js" },
-        { "Path": "../../../src/Lights/babylon.hemisphericLight.js" },
-        { "Path": "../../../src/Lights/babylon.directionalLight.js" },
-        { "Path": "../../../src/Lights/Shadows/babylon.shadowGenerator.js" },
-        { "Path": "../../../src/Collisions/babylon.collider.js" },
-        { "Path": "../../../src/Collisions/babylon.collisionCoordinator.js" },
-        { "Path": "../../../src/Collisions/babylon.collisionWorker.js" },
-        { "Path": "../../../src/Cameras/babylon.camera.js" },
-        { "Path": "../../../src/Cameras/babylon.camerainputsmanager.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.freecamera.input.mouse.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.freecamera.input.keyboard.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.freecamera.input.touch.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.freecamera.input.deviceorientation.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.freecamera.input.gamepad.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.freecamera.input.virtualjoystick.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.arcrotatecamera.input.keyboard.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.arcrotatecamera.input.mousewheel.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.arcrotatecamera.input.pointers.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.arcrotatecamera.input.gamepad.js" },
-        { "Path": "../../../src/cameras/inputs/babylon.arcrotatecamera.input.vrdeviceorientation.js" },
-        { "Path": "../../../src/Cameras/babylon.targetCamera.js" },
-        { "Path": "../../../src/Cameras/babylon.followCamera.js" },
-        { "Path": "../../../src/Cameras/babylon.freeCamera.js" },
-        { "Path": "../../../src/Cameras/babylon.freeCameraInputsManager.js" },
-        { "Path": "../../../src/Cameras/babylon.touchCamera.js" },
-        { "Path": "../../../src/Cameras/babylon.arcRotateCamera.js" },
-        { "Path": "../../../src/Cameras/babylon.arcRotateCameraInputsManager.js" },
-        { "Path": "../../../src/Cameras/babylon.universalCamera.js" },
-        { "Path": "../../../src/Cameras/babylon.deviceOrientationCamera.js" },
-        { "Path": "../../../src/Tools/babylon.gamepads.js" },
-        { "Path": "../../../src/Cameras/babylon.gamepadCamera.js" },
-        { "Path": "../../../src/Rendering/babylon.renderingManager.js" },
-        { "Path": "../../../src/Rendering/babylon.renderingGroup.js" },
-        { "Path": "../../../src/babylon.scene.js" },
-        { "Path": "../../../src/Mesh/babylon.buffer.js" },
-        { "Path": "../../../src/Mesh/babylon.vertexBuffer.js" },
-        { "Path": "../../../src/Mesh/babylon.instancedMesh.js" },
-        { "Path": "../../../src/Mesh/babylon.mesh.js" },
-        { "Path": "../../../src/Mesh/babylon.meshBuilder.js" },
-        { "Path": "../../../src/Mesh/babylon.groundMesh.js" },
-        { "Path": "../../../src/Mesh/babylon.subMesh.js" },
-        { "Path": "../../../src/Materials/textures/babylon.baseTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.texture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.cubeTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.renderTargetTexture.js" },
-        { "Path": "../../../src/Materials/textures/procedurals/babylon.proceduralTexture.js" },
-        { "Path": "../../../src/Materials/textures/procedurals/babylon.customProceduralTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.mirrorTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.refractionTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.dynamicTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.videoTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.fontTexture.js" },
-        { "Path": "../../../src/Materials/textures/babylon.mapTexture.js" },
-        { "Path": "../../../src/Materials/babylon.effect.js" },
-        { "Path": "../../../src/Materials/babylon.materialHelper.js" },
-        { "Path": "../../../src/Materials/babylon.fresnelParameters.js" },
-        { "Path": "../../../src/Materials/babylon.material.js" },
-        { "Path": "../../../src/Materials/babylon.standardMaterial.js" },
-        { "Path": "../../../src/Materials/babylon.pbrMaterial.js" },
-        { "Path": "../../../src/Materials/babylon.multiMaterial.js" },
-        { "Path": "../../../src/Canvas2d/babylon.bounding2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.canvas2dLayoutEngine.js" },
-        { "Path": "../../../src/Canvas2d/babylon.brushes2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.smartPropertyPrim.js" },
-        { "Path": "../../../src/Canvas2d/babylon.prim2dBase.js" },
-        { "Path": "../../../src/Canvas2d/babylon.modelRenderCache.js" },
-        { "Path": "../../../src/Canvas2d/babylon.renderablePrim2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.shape2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.group2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.rectangle2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.sprite2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.text2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.canvas2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.ellipse2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.lines2d.js" },
-        { "Path": "../../../src/Canvas2d/babylon.worldspacecanvas2dNode.js" },
-        { "Path": "../../../src/Loading/babylon.sceneLoader.js" },
-        { "Path": "../../../src/Loading/Plugins/babylon.babylonFileLoader.js" },
-        { "Path": "../../../src/Sprites/babylon.spriteManager.js" },
-        { "Path": "../../../src/Sprites/babylon.sprite.js" },
-        { "Path": "../../../src/Layer/babylon.layer.js" },
-        { "Path": "../../../src/Particles/babylon.particle.js" },
-        { "Path": "../../../src/Particles/babylon.particleSystem.js" },
-        { "Path": "../../../src/Particles/babylon.solidParticle.js" },
-        { "Path": "../../../src/Particles/babylon.solidParticleSystem.js" },
-        { "Path": "../../../src/Animations/babylon.animation.js" },
-        { "Path": "../../../src/Animations/babylon.animatable.js" },
-        { "Path": "../../../src/Animations/babylon.easing.js" },
-        { "Path": "../../../src/Culling/Octrees/babylon.octree.js" },
-        { "Path": "../../../src/Culling/Octrees/babylon.octreeBlock.js" },
-        { "Path": "../../../src/Bones/babylon.bone.js" },
-        { "Path": "../../../src/Bones/babylon.skeleton.js" },
-        { "Path": "../../../src/PostProcess/babylon.postProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.postProcessManager.js" },
-        { "Path": "../../../src/PostProcess/babylon.passPostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.blurPostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.refractionPostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.blackAndWhitePostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.convolutionPostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.filterPostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.fxaaPostProcess.js" },
-        { "Path": "../../../src/LensFlare/babylon.lensFlare.js" },
-        { "Path": "../../../src/LensFlare/babylon.lensFlareSystem.js" },
-        { "Path": "../../../src/Physics/Plugins/babylon.cannonJSPlugin.js" },
-        { "Path": "../../../src/Physics/Plugins/babylon.oimoJSPlugin.js" },
-        { "Path": "../../../src/Physics/babylon.physicsImpostor.js" },
-        { "Path": "../../../src/Physics/babylon.physicsEngine.js" },
-        { "Path": "../../../src/Physics/babylon.physicsJoint.js" },
-        { "Path": "../../../src/Tools/babylon.sceneSerializer.js" },
-        { "Path": "../../../src/Mesh/babylon.csg.js" },
-        { "Path": "../../../src/PostProcess/babylon.vrDistortionCorrectionPostProcess.js" },
-        { "Path": "../../../src/Tools/babylon.virtualJoystick.js" },
-        { "Path": "../../../src/Cameras/babylon.virtualJoysticksCamera.js" },
-        { "Path": "../../../src/Materials/babylon.shaderMaterial.js" },
-        { "Path": "../../../src/Mesh/babylon.mesh.vertexData.js" },
-        { "Path": "../../../src/PostProcess/babylon.anaglyphPostProcess.js" },
-        { "Path": "../../../src/Tools/babylon.tags.js" },
-        { "Path": "../../../src/Tools/babylon.andOrNotEvaluator.js" },
-        { "Path": "../../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPass.js" },
-        { "Path": "../../../src/PostProcess/RenderPipeline/babylon.postProcessRenderEffect.js" },
-        { "Path": "../../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipeline.js" },
-        { "Path": "../../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipelineManager.js" },
-        { "Path": "../../../src/PostProcess/babylon.displayPassPostProcess.js" },
-        { "Path": "../../../src/Rendering/babylon.boundingBoxRenderer.js" },
-        { "Path": "../../../src/Actions/babylon.condition.js" },
-        { "Path": "../../../src/Actions/babylon.action.js" },
-        { "Path": "../../../src/Actions/babylon.actionManager.js" },
-        { "Path": "../../../src/Actions/babylon.interpolateValueAction.js" },
-        { "Path": "../../../src/Actions/babylon.directActions.js" },
-        { "Path": "../../../src/Mesh/babylon.geometry.js" },
-        { "Path": "../../../src/Mesh/babylon.linesMesh.js" },
-        { "Path": "../../../src/Rendering/babylon.outlineRenderer.js" },
-        { "Path": "../../../src/Tools/babylon.assetsManager.js" },
-        { "Path": "../../../src/Cameras/VR/babylon.vrCameraMetrics.js" },
-        { "Path": "../../../src/Cameras/VR/babylon.vrDeviceOrientationCamera.js" },
-        { "Path": "../../../src/Cameras/VR/babylon.webVRCamera.js" },
-        { "Path": "../../../src/Tools/babylon.sceneOptimizer.js" },
-        { "Path": "../../../src/Tools/babylon.earcut.js" },
-        { "Path": "../../../src/Mesh/babylon.meshLODLevel.js" },
-        { "Path": "../../../src/Audio/babylon.audioEngine.js" },
-        { "Path": "../../../src/Audio/babylon.sound.js" },
-        { "Path": "../../../src/Audio/babylon.soundtrack.js" },
-        { "Path": "../../../src/Debug/babylon.skeletonViewer.js" },
-        { "Path": "../../../src/Debug/babylon.debugLayer.js" },
-        { "Path": "../../../src/Materials/Textures/babylon.rawTexture.js" },
-        { "Path": "../../../src/Mesh/babylon.polygonMesh.js" },
-        { "Path": "../../../src/Mesh/babylon.meshSimplification.js" },
-        { "Path": "../../../src/Audio/babylon.analyser.js" },
-        { "Path": "../../../src/Rendering/babylon.depthRenderer.js" },
-        { "Path": "../../../src/PostProcess/babylon.ssaoRenderingPipeline.js" },
-        { "Path": "../../../src/PostProcess/babylon.volumetricLightScatteringPostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.lensRenderingPipeline.js" },
-        { "Path": "../../../src/PostProcess/babylon.colorCorrectionPostProcess.js" },
-        { "Path": "../../../src/PostProcess/babylon.stereoscopicInterlacePostProcess.js" },
-        { "Path": "../../../src/Cameras/babylon.stereoscopicCameras.js" },
-        { "Path": "../../../src/PostProcess/babylon.hdrRenderingPipeline.js" },
-        { "Path": "../../../src/Rendering/babylon.edgesRenderer.js" },
-        { "Path": "../../../src/Tools/babylon.loadingScreen.js" },
-        { "Path": "../../../src/Probes/babylon.reflectionProbe.js" },
-        { "Path": "../../../src/tools/hdr/babylon.tools.pmremGenerator.js" },
-        { "Path": "../../../src/tools/hdr/babylon.tools.cubemapToSphericalPolynomial.js" },
-        { "Path": "../../../src/tools/hdr/babylon.tools.panoramaToCubemap.js" },
-        { "Path": "../../../src/tools/hdr/babylon.tools.hdr.js" },
-        { "Path": "../../../src/materials/textures/babylon.hdrCubeTexture.js" },
-        { "Path": "../../../src/Materials/Textures/babylon.colorGradingTexture.js" },
-        { "Path": "../../../src/Materials/babylon.colorcurves.js" },
-        { "Path": "./TestClasses.js" }
-    ],
-    "Tests": [
-        {
-            "Includes": [ "*.ts" ]
-        }
-    ]
-}