瀏覽代碼

Remove charting

David Catuhe 7 年之前
父節點
當前提交
209065f218

File diff suppressed because it is too large
+ 11044 - 11249
Playground/babylon.d.txt


File diff suppressed because it is too large
+ 12714 - 12714
dist/preview release/babylon.d.ts


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.max.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.no-module.max.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/es6.js


+ 0 - 205
dist/preview release/gui/babylon.gui.d.ts

@@ -487,8 +487,6 @@ declare module BABYLON.GUI {
 declare module BABYLON.GUI {
 declare module BABYLON.GUI {
 }
 }
 declare module BABYLON.GUI {
 declare module BABYLON.GUI {
-}
-declare module BABYLON.GUI {
     /**
     /**
         * Class used to manage 3D user interface
         * Class used to manage 3D user interface
         * @see http://doc.babylonjs.com/how_to/gui3d
         * @see http://doc.babylonjs.com/how_to/gui3d
@@ -2388,207 +2386,4 @@ declare module BABYLON.GUI {
             getClassName(): string;
             getClassName(): string;
             static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): FluentMaterial;
             static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): FluentMaterial;
     }
     }
-}
-declare module BABYLON.GUI {
-    /**
-        * Class used to store data to display
-        * @see http://doc.babylonjs.com/how_to/chart3d
-        */
-    export class DataSeries {
-            /** Gets or sets the label of the series */
-            label: string;
-            /** Gets or sets the color associated with the series */
-            color: BABYLON.Color3;
-            /** Gets or sets the list of dimensions (used to filter data) */
-            dimensions: Array<string>;
-            /** Gets or sets the list of values (data to display) */
-            data: Array<any>;
-            /**
-                * Apply a list of filters to the data and return a list
-                * @param filters defines the filters to apply
-                * @returns an array containing the filtered data
-                */
-            getFilteredData(filters: {
-                    [key: string]: string;
-            }): Array<any>;
-            /**
-                * Get the different values of a dimension
-                * @param key defines the dimension name
-                * @returns An array of values
-                */
-            getDimensionValues(key: string): Array<any>;
-            /**
-                * Create a new DataSeries containing testing values
-                * @returns the new DataSeries
-                */
-            static CreateFakeData(): DataSeries;
-            /**
-                * Create a new DataSeries containing testing spatial values
-                * @returns the new DataSeries
-                */
-            static CreateFakeSpatialData(): DataSeries;
-    }
-}
-declare module BABYLON.GUI {
-    /**
-        * Base class for all chart controls
-        * @see http://doc.babylonjs.com/how_to/chart3d#charts
-        */
-    export abstract class Chart {
-            protected _dataSource: BABYLON.Nullable<DataSeries>;
-            protected _rootNode: BABYLON.TransformNode;
-            protected _dataFilters: {
-                    [key: string]: string;
-            };
-            protected _scene: BABYLON.Scene;
-            protected _blockRefresh: boolean;
-            protected _elementWidth: number;
-            protected _defaultMaterial: BABYLON.Nullable<BABYLON.Material>;
-            /** BABYLON.Observable raised when a refresh was done */
-            onRefreshObservable: BABYLON.Observable<Chart>;
-            /** BABYLON.Observable raised when a new element is created */
-            onElementCreatedObservable: BABYLON.Observable<BABYLON.AbstractMesh>;
-            /**
-                * BABYLON.Observable raised when the point picked by the pointer events changed
-                */
-            onPickedPointChangedObservable: BABYLON.Observable<BABYLON.Nullable<BABYLON.Vector3>>;
-            /**
-                * BABYLON.Observable raised when the pointer enters an element of the chart
-             */
-            onElementEnterObservable: BABYLON.Observable<BABYLON.AbstractMesh>;
-            /**
-                * BABYLON.Observable raised when the pointer leaves an element of the chart
-                */
-            onElementOutObservable: BABYLON.Observable<BABYLON.AbstractMesh>;
-            /** User defined callback used to create labels */
-            labelCreationFunction: BABYLON.Nullable<(label: string, width: number, includeBackground: boolean) => BABYLON.Mesh>;
-            /** User defined callback used to apply specific setup to hover labels */
-            updateHoverLabel: BABYLON.Nullable<(meshLabel: BABYLON.Mesh) => void>;
-            /** Gets or sets the width of each element */
-            elementWidth: number;
-            /** Gets or sets the rotation of the entire chart */
-            rotation: BABYLON.Vector3;
-            /** Gets or sets the position of the entire chart */
-            position: BABYLON.Vector3;
-            /** Gets or sets the scaling of the entire chart */
-            scaling: BABYLON.Vector3;
-            /** Gets or sets the data source used by the graph */
-            dataSource: BABYLON.Nullable<DataSeries>;
-            /** Gets or sets the filters applied to data source */
-            dataFilters: {
-                    [key: string]: string;
-            };
-            /** Gets the root node associated with this graph */
-            readonly rootNode: BABYLON.TransformNode;
-            /** Gets or sets a value indicating if refresh function should be executed (useful when multiple changes will happen and you want to run refresh only at the end) */
-            blockRefresh: boolean;
-            /** Gets or sets the material used by element meshes */
-            defaultMaterial: BABYLON.Nullable<BABYLON.Material>;
-            /** Gets or sets a boolean indicating if labels must be displayed */
-            displayLabels: boolean;
-            /** Gets or sets the dimension used for the labels */
-            labelDimension: string;
-            /** Gets or sets a boolean indicating if glow should be used to highlight element hovering */
-            glowHover: boolean;
-            /** Gets or sets the name of the graph */
-            name: string;
-            /**
-                * Creates a new Chart
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, scene?: BABYLON.Nullable<BABYLON.Scene>);
-            protected _createDefaultMaterial(scene: BABYLON.Scene): BABYLON.Material;
-            /**
-                * Function called by the chart objects when they need a label. Could be user defined if you set this.labelCreationFunction to a custom callback
-                * @param label defines the text of the label
-                * @param width defines the expected width (height is supposed to be 1)
-                * @param includeBackground defines if a background rectangle must be added (default is true)
-                * @returns a mesh used to host the label
-                */
-            protected _addLabel(label: string, width: number, includeBackground?: boolean): BABYLON.Mesh;
-            /**
-                * Remove specific label mesh
-                * @param label defines the label mesh to remove
-                */
-            protected _removeLabel(label: BABYLON.Mesh): void;
-            /** Remove all created labels */
-            protected _removeLabels(): void;
-            /**
-                * Force the chart to redraw itself
-                * @returns the current chart
-             */
-            abstract refresh(): Chart;
-            /** Release all associated resources */
-            dispose(): void;
-            protected _clean(): void;
-    }
-}
-declare module BABYLON.GUI {
-    /**
-        * Class used to render bar graphs
-        * @see http://doc.babylonjs.com/how_to/chart3d#bargraph
-        */
-    export class BarGraph extends Chart {
-            /** Gets or sets a boolean indicating if the background must be displayed */
-            displayBackground: boolean;
-            /** Gets or sets the margin between bars */
-            margin: number;
-            /** Gets or sets the maximum height of a bar */
-            maxBarHeight: number;
-            /**
-                * Creates a new BarGraph
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, scene?: BABYLON.Nullable<BABYLON.Scene>);
-            /**
-                * Children class can override this function to provide a new mesh (as long as it stays inside a 1x1x1 box)
-                * @param name defines the mesh name
-                * @param scene defines the hosting scene
-                * @returns a new mesh used to represent the current bar
-                */
-            protected _createBarMesh(name: string, scene: BABYLON.Scene): BABYLON.Mesh;
-            /**
-                * Force the graph to redraw itself
-                * @returns the current BarGraph
-             */
-            refresh(): BarGraph;
-            protected _clean(): void;
-    }
-}
-declare module BABYLON.GUI {
-    /**
-        * Class used to render bar graphs
-        * @see http://doc.babylonjs.com/how_to/chart3d#mapgraph
-        */
-    export class MapGraph extends Chart {
-            /** Gets or sets the maximum height of a cylinder */
-            maxCylinderHeight: number;
-            /** Gets or sets the offset (in world unit) on X axis to apply to all elements */
-            xOffset: number;
-            /** Gets or sets the offset (in world unit) on Y axis to apply to all elements */
-            yOffset: number;
-            /** Gets or sets the tesselation used to build the cylinders */
-            cylinderTesselation: number;
-            /** Gets or sets the size of the world map (this will define the width of the supporting plane) */
-            worldMapSize: number;
-            updateHoverLabel: (meshLabel: BABYLON.Mesh) => void;
-            /**
-                * Gets the material used to render the world map
-                */
-            readonly worldMapMaterial: BABYLON.Nullable<BABYLON.Material>;
-            /** Sets the texture url to use for the world map */
-            worldMapUrl: string;
-            /**
-                * Creates a new MapGraph
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, mapUrl: string, scene?: BABYLON.Nullable<BABYLON.Scene>);
-            protected _createCylinderMesh(name: string, scene: BABYLON.Scene): BABYLON.Mesh;
-            refresh(): MapGraph;
-            protected _clean(): void;
-            dispose(): void;
-    }
 }
 }

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/gui/babylon.gui.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/gui/babylon.gui.min.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/gui/babylon.gui.min.js.map


+ 0 - 427
dist/preview release/gui/babylon.gui.module.d.ts

@@ -20,7 +20,6 @@ declare module 'babylonjs-gui/2D' {
 declare module 'babylonjs-gui/3D' {
 declare module 'babylonjs-gui/3D' {
     export * from "babylonjs-gui/3D/controls";
     export * from "babylonjs-gui/3D/controls";
     export * from "babylonjs-gui/3D/materials";
     export * from "babylonjs-gui/3D/materials";
-    export * from "babylonjs-gui/3D/charting";
     export * from "babylonjs-gui/3D/gui3DManager";
     export * from "babylonjs-gui/3D/gui3DManager";
     export * from "babylonjs-gui/3D/vector3WithInfo";
     export * from "babylonjs-gui/3D/vector3WithInfo";
 }
 }
@@ -558,13 +557,6 @@ declare module 'babylonjs-gui/3D/materials' {
     export * from "babylonjs-gui/3D/materials/fluentMaterial";
     export * from "babylonjs-gui/3D/materials/fluentMaterial";
 }
 }
 
 
-declare module 'babylonjs-gui/3D/charting' {
-    export * from "babylonjs-gui/3D/charting/dataSeries";
-    export * from "babylonjs-gui/3D/charting/chart";
-    export * from "babylonjs-gui/3D/charting/barGraph";
-    export * from "babylonjs-gui/3D/charting/mapGraph";
-}
-
 declare module 'babylonjs-gui/3D/gui3DManager' {
 declare module 'babylonjs-gui/3D/gui3DManager' {
     import { IDisposable, Scene, Nullable, UtilityLayerRenderer, Observable, Vector3, Material } from "babylonjs";
     import { IDisposable, Scene, Nullable, UtilityLayerRenderer, Observable, Vector3, Material } from "babylonjs";
     import { Container3D } from "babylonjs-gui/3D/controls/container3D";
     import { Container3D } from "babylonjs-gui/3D/controls/container3D";
@@ -2601,220 +2593,6 @@ declare module 'babylonjs-gui/3D/materials/fluentMaterial' {
     }
     }
 }
 }
 
 
-declare module 'babylonjs-gui/3D/charting/dataSeries' {
-    import { Color3 } from "babylonjs";
-    /**
-        * Class used to store data to display
-        * @see http://doc.babylonjs.com/how_to/chart3d
-        */
-    export class DataSeries {
-            /** Gets or sets the label of the series */
-            label: string;
-            /** Gets or sets the color associated with the series */
-            color: Color3;
-            /** Gets or sets the list of dimensions (used to filter data) */
-            dimensions: Array<string>;
-            /** Gets or sets the list of values (data to display) */
-            data: Array<any>;
-            /**
-                * Apply a list of filters to the data and return a list
-                * @param filters defines the filters to apply
-                * @returns an array containing the filtered data
-                */
-            getFilteredData(filters: {
-                    [key: string]: string;
-            }): Array<any>;
-            /**
-                * Get the different values of a dimension
-                * @param key defines the dimension name
-                * @returns An array of values
-                */
-            getDimensionValues(key: string): Array<any>;
-            /**
-                * Create a new DataSeries containing testing values
-                * @returns the new DataSeries
-                */
-            static CreateFakeData(): DataSeries;
-            /**
-                * Create a new DataSeries containing testing spatial values
-                * @returns the new DataSeries
-                */
-            static CreateFakeSpatialData(): DataSeries;
-    }
-}
-
-declare module 'babylonjs-gui/3D/charting/chart' {
-    import { Nullable, TransformNode, Scene, Vector3, Observable, Mesh, AbstractMesh, Material } from "babylonjs";
-    import { DataSeries } from "babylonjs-gui/3D/charting";
-    /**
-        * Base class for all chart controls
-        * @see http://doc.babylonjs.com/how_to/chart3d#charts
-        */
-    export abstract class Chart {
-            protected _dataSource: Nullable<DataSeries>;
-            protected _rootNode: TransformNode;
-            protected _dataFilters: {
-                    [key: string]: string;
-            };
-            protected _scene: Scene;
-            protected _blockRefresh: boolean;
-            protected _elementWidth: number;
-            protected _defaultMaterial: Nullable<Material>;
-            /** Observable raised when a refresh was done */
-            onRefreshObservable: Observable<Chart>;
-            /** Observable raised when a new element is created */
-            onElementCreatedObservable: Observable<AbstractMesh>;
-            /**
-                * Observable raised when the point picked by the pointer events changed
-                */
-            onPickedPointChangedObservable: Observable<Nullable<Vector3>>;
-            /**
-                * Observable raised when the pointer enters an element of the chart
-             */
-            onElementEnterObservable: Observable<AbstractMesh>;
-            /**
-                * Observable raised when the pointer leaves an element of the chart
-                */
-            onElementOutObservable: Observable<AbstractMesh>;
-            /** User defined callback used to create labels */
-            labelCreationFunction: Nullable<(label: string, width: number, includeBackground: boolean) => Mesh>;
-            /** User defined callback used to apply specific setup to hover labels */
-            updateHoverLabel: Nullable<(meshLabel: Mesh) => void>;
-            /** Gets or sets the width of each element */
-            elementWidth: number;
-            /** Gets or sets the rotation of the entire chart */
-            rotation: Vector3;
-            /** Gets or sets the position of the entire chart */
-            position: Vector3;
-            /** Gets or sets the scaling of the entire chart */
-            scaling: Vector3;
-            /** Gets or sets the data source used by the graph */
-            dataSource: Nullable<DataSeries>;
-            /** Gets or sets the filters applied to data source */
-            dataFilters: {
-                    [key: string]: string;
-            };
-            /** Gets the root node associated with this graph */
-            readonly rootNode: TransformNode;
-            /** Gets or sets a value indicating if refresh function should be executed (useful when multiple changes will happen and you want to run refresh only at the end) */
-            blockRefresh: boolean;
-            /** Gets or sets the material used by element meshes */
-            defaultMaterial: Nullable<Material>;
-            /** Gets or sets a boolean indicating if labels must be displayed */
-            displayLabels: boolean;
-            /** Gets or sets the dimension used for the labels */
-            labelDimension: string;
-            /** Gets or sets a boolean indicating if glow should be used to highlight element hovering */
-            glowHover: boolean;
-            /** Gets or sets the name of the graph */
-            name: string;
-            /**
-                * Creates a new Chart
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, scene?: Nullable<Scene>);
-            protected _createDefaultMaterial(scene: Scene): Material;
-            /**
-                * Function called by the chart objects when they need a label. Could be user defined if you set this.labelCreationFunction to a custom callback
-                * @param label defines the text of the label
-                * @param width defines the expected width (height is supposed to be 1)
-                * @param includeBackground defines if a background rectangle must be added (default is true)
-                * @returns a mesh used to host the label
-                */
-            protected _addLabel(label: string, width: number, includeBackground?: boolean): Mesh;
-            /**
-                * Remove specific label mesh
-                * @param label defines the label mesh to remove
-                */
-            protected _removeLabel(label: Mesh): void;
-            /** Remove all created labels */
-            protected _removeLabels(): void;
-            /**
-                * Force the chart to redraw itself
-                * @returns the current chart
-             */
-            abstract refresh(): Chart;
-            /** Release all associated resources */
-            dispose(): void;
-            protected _clean(): void;
-    }
-}
-
-declare module 'babylonjs-gui/3D/charting/barGraph' {
-    import { Nullable, Scene, Mesh } from "babylonjs";
-    import { Chart } from "babylonjs-gui/3D/charting";
-    /**
-        * Class used to render bar graphs
-        * @see http://doc.babylonjs.com/how_to/chart3d#bargraph
-        */
-    export class BarGraph extends Chart {
-            /** Gets or sets a boolean indicating if the background must be displayed */
-            displayBackground: boolean;
-            /** Gets or sets the margin between bars */
-            margin: number;
-            /** Gets or sets the maximum height of a bar */
-            maxBarHeight: number;
-            /**
-                * Creates a new BarGraph
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, scene?: Nullable<Scene>);
-            /**
-                * Children class can override this function to provide a new mesh (as long as it stays inside a 1x1x1 box)
-                * @param name defines the mesh name
-                * @param scene defines the hosting scene
-                * @returns a new mesh used to represent the current bar
-                */
-            protected _createBarMesh(name: string, scene: Scene): Mesh;
-            /**
-                * Force the graph to redraw itself
-                * @returns the current BarGraph
-             */
-            refresh(): BarGraph;
-            protected _clean(): void;
-    }
-}
-
-declare module 'babylonjs-gui/3D/charting/mapGraph' {
-    import { Chart } from "babylonjs-gui/3D/charting";
-    import { Scene, Nullable, Mesh, Material } from "babylonjs";
-    /**
-        * Class used to render bar graphs
-        * @see http://doc.babylonjs.com/how_to/chart3d#mapgraph
-        */
-    export class MapGraph extends Chart {
-            /** Gets or sets the maximum height of a cylinder */
-            maxCylinderHeight: number;
-            /** Gets or sets the offset (in world unit) on X axis to apply to all elements */
-            xOffset: number;
-            /** Gets or sets the offset (in world unit) on Y axis to apply to all elements */
-            yOffset: number;
-            /** Gets or sets the tesselation used to build the cylinders */
-            cylinderTesselation: number;
-            /** Gets or sets the size of the world map (this will define the width of the supporting plane) */
-            worldMapSize: number;
-            updateHoverLabel: (meshLabel: Mesh) => void;
-            /**
-                * Gets the material used to render the world map
-                */
-            readonly worldMapMaterial: Nullable<Material>;
-            /** Sets the texture url to use for the world map */
-            worldMapUrl: string;
-            /**
-                * Creates a new MapGraph
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, mapUrl: string, scene?: Nullable<Scene>);
-            protected _createCylinderMesh(name: string, scene: Scene): Mesh;
-            refresh(): MapGraph;
-            protected _clean(): void;
-            dispose(): void;
-    }
-}
-
 
 
 /*BabylonJS GUI*/
 /*BabylonJS GUI*/
 // Dependencies for this module:
 // Dependencies for this module:
@@ -3305,8 +3083,6 @@ declare module BABYLON.GUI {
 declare module BABYLON.GUI {
 declare module BABYLON.GUI {
 }
 }
 declare module BABYLON.GUI {
 declare module BABYLON.GUI {
-}
-declare module BABYLON.GUI {
     /**
     /**
         * Class used to manage 3D user interface
         * Class used to manage 3D user interface
         * @see http://doc.babylonjs.com/how_to/gui3d
         * @see http://doc.babylonjs.com/how_to/gui3d
@@ -5206,207 +4982,4 @@ declare module BABYLON.GUI {
             getClassName(): string;
             getClassName(): string;
             static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): FluentMaterial;
             static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): FluentMaterial;
     }
     }
-}
-declare module BABYLON.GUI {
-    /**
-        * Class used to store data to display
-        * @see http://doc.babylonjs.com/how_to/chart3d
-        */
-    export class DataSeries {
-            /** Gets or sets the label of the series */
-            label: string;
-            /** Gets or sets the color associated with the series */
-            color: BABYLON.Color3;
-            /** Gets or sets the list of dimensions (used to filter data) */
-            dimensions: Array<string>;
-            /** Gets or sets the list of values (data to display) */
-            data: Array<any>;
-            /**
-                * Apply a list of filters to the data and return a list
-                * @param filters defines the filters to apply
-                * @returns an array containing the filtered data
-                */
-            getFilteredData(filters: {
-                    [key: string]: string;
-            }): Array<any>;
-            /**
-                * Get the different values of a dimension
-                * @param key defines the dimension name
-                * @returns An array of values
-                */
-            getDimensionValues(key: string): Array<any>;
-            /**
-                * Create a new DataSeries containing testing values
-                * @returns the new DataSeries
-                */
-            static CreateFakeData(): DataSeries;
-            /**
-                * Create a new DataSeries containing testing spatial values
-                * @returns the new DataSeries
-                */
-            static CreateFakeSpatialData(): DataSeries;
-    }
-}
-declare module BABYLON.GUI {
-    /**
-        * Base class for all chart controls
-        * @see http://doc.babylonjs.com/how_to/chart3d#charts
-        */
-    export abstract class Chart {
-            protected _dataSource: BABYLON.Nullable<DataSeries>;
-            protected _rootNode: BABYLON.TransformNode;
-            protected _dataFilters: {
-                    [key: string]: string;
-            };
-            protected _scene: BABYLON.Scene;
-            protected _blockRefresh: boolean;
-            protected _elementWidth: number;
-            protected _defaultMaterial: BABYLON.Nullable<BABYLON.Material>;
-            /** BABYLON.Observable raised when a refresh was done */
-            onRefreshObservable: BABYLON.Observable<Chart>;
-            /** BABYLON.Observable raised when a new element is created */
-            onElementCreatedObservable: BABYLON.Observable<BABYLON.AbstractMesh>;
-            /**
-                * BABYLON.Observable raised when the point picked by the pointer events changed
-                */
-            onPickedPointChangedObservable: BABYLON.Observable<BABYLON.Nullable<BABYLON.Vector3>>;
-            /**
-                * BABYLON.Observable raised when the pointer enters an element of the chart
-             */
-            onElementEnterObservable: BABYLON.Observable<BABYLON.AbstractMesh>;
-            /**
-                * BABYLON.Observable raised when the pointer leaves an element of the chart
-                */
-            onElementOutObservable: BABYLON.Observable<BABYLON.AbstractMesh>;
-            /** User defined callback used to create labels */
-            labelCreationFunction: BABYLON.Nullable<(label: string, width: number, includeBackground: boolean) => BABYLON.Mesh>;
-            /** User defined callback used to apply specific setup to hover labels */
-            updateHoverLabel: BABYLON.Nullable<(meshLabel: BABYLON.Mesh) => void>;
-            /** Gets or sets the width of each element */
-            elementWidth: number;
-            /** Gets or sets the rotation of the entire chart */
-            rotation: BABYLON.Vector3;
-            /** Gets or sets the position of the entire chart */
-            position: BABYLON.Vector3;
-            /** Gets or sets the scaling of the entire chart */
-            scaling: BABYLON.Vector3;
-            /** Gets or sets the data source used by the graph */
-            dataSource: BABYLON.Nullable<DataSeries>;
-            /** Gets or sets the filters applied to data source */
-            dataFilters: {
-                    [key: string]: string;
-            };
-            /** Gets the root node associated with this graph */
-            readonly rootNode: BABYLON.TransformNode;
-            /** Gets or sets a value indicating if refresh function should be executed (useful when multiple changes will happen and you want to run refresh only at the end) */
-            blockRefresh: boolean;
-            /** Gets or sets the material used by element meshes */
-            defaultMaterial: BABYLON.Nullable<BABYLON.Material>;
-            /** Gets or sets a boolean indicating if labels must be displayed */
-            displayLabels: boolean;
-            /** Gets or sets the dimension used for the labels */
-            labelDimension: string;
-            /** Gets or sets a boolean indicating if glow should be used to highlight element hovering */
-            glowHover: boolean;
-            /** Gets or sets the name of the graph */
-            name: string;
-            /**
-                * Creates a new Chart
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, scene?: BABYLON.Nullable<BABYLON.Scene>);
-            protected _createDefaultMaterial(scene: BABYLON.Scene): BABYLON.Material;
-            /**
-                * Function called by the chart objects when they need a label. Could be user defined if you set this.labelCreationFunction to a custom callback
-                * @param label defines the text of the label
-                * @param width defines the expected width (height is supposed to be 1)
-                * @param includeBackground defines if a background rectangle must be added (default is true)
-                * @returns a mesh used to host the label
-                */
-            protected _addLabel(label: string, width: number, includeBackground?: boolean): BABYLON.Mesh;
-            /**
-                * Remove specific label mesh
-                * @param label defines the label mesh to remove
-                */
-            protected _removeLabel(label: BABYLON.Mesh): void;
-            /** Remove all created labels */
-            protected _removeLabels(): void;
-            /**
-                * Force the chart to redraw itself
-                * @returns the current chart
-             */
-            abstract refresh(): Chart;
-            /** Release all associated resources */
-            dispose(): void;
-            protected _clean(): void;
-    }
-}
-declare module BABYLON.GUI {
-    /**
-        * Class used to render bar graphs
-        * @see http://doc.babylonjs.com/how_to/chart3d#bargraph
-        */
-    export class BarGraph extends Chart {
-            /** Gets or sets a boolean indicating if the background must be displayed */
-            displayBackground: boolean;
-            /** Gets or sets the margin between bars */
-            margin: number;
-            /** Gets or sets the maximum height of a bar */
-            maxBarHeight: number;
-            /**
-                * Creates a new BarGraph
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, scene?: BABYLON.Nullable<BABYLON.Scene>);
-            /**
-                * Children class can override this function to provide a new mesh (as long as it stays inside a 1x1x1 box)
-                * @param name defines the mesh name
-                * @param scene defines the hosting scene
-                * @returns a new mesh used to represent the current bar
-                */
-            protected _createBarMesh(name: string, scene: BABYLON.Scene): BABYLON.Mesh;
-            /**
-                * Force the graph to redraw itself
-                * @returns the current BarGraph
-             */
-            refresh(): BarGraph;
-            protected _clean(): void;
-    }
-}
-declare module BABYLON.GUI {
-    /**
-        * Class used to render bar graphs
-        * @see http://doc.babylonjs.com/how_to/chart3d#mapgraph
-        */
-    export class MapGraph extends Chart {
-            /** Gets or sets the maximum height of a cylinder */
-            maxCylinderHeight: number;
-            /** Gets or sets the offset (in world unit) on X axis to apply to all elements */
-            xOffset: number;
-            /** Gets or sets the offset (in world unit) on Y axis to apply to all elements */
-            yOffset: number;
-            /** Gets or sets the tesselation used to build the cylinders */
-            cylinderTesselation: number;
-            /** Gets or sets the size of the world map (this will define the width of the supporting plane) */
-            worldMapSize: number;
-            updateHoverLabel: (meshLabel: BABYLON.Mesh) => void;
-            /**
-                * Gets the material used to render the world map
-                */
-            readonly worldMapMaterial: BABYLON.Nullable<BABYLON.Material>;
-            /** Sets the texture url to use for the world map */
-            worldMapUrl: string;
-            /**
-                * Creates a new MapGraph
-                * @param name defines the name of the graph
-                * @param scene defines the hosting scene
-                */
-            constructor(name: string, mapUrl: string, scene?: BABYLON.Nullable<BABYLON.Scene>);
-            protected _createCylinderMesh(name: string, scene: BABYLON.Scene): BABYLON.Mesh;
-            refresh(): MapGraph;
-            protected _clean(): void;
-            dispose(): void;
-    }
 }
 }

+ 19 - 5
dist/preview release/viewer/babylon.viewer.d.ts

@@ -168,11 +168,11 @@ declare module BabylonViewer {
                 * Mainly used for help and errors
                 * Mainly used for help and errors
                 * @param subScreen the name of the subScreen. Those can be defined in the configuration object
                 * @param subScreen the name of the subScreen. Those can be defined in the configuration object
                 */
                 */
-            showOverlayScreen(subScreen: string): Promise<string> | Promise<Template>;
+            showOverlayScreen(subScreen: string): Promise<Template> | Promise<string>;
             /**
             /**
                 * Hide the overlay screen.
                 * Hide the overlay screen.
                 */
                 */
-            hideOverlayScreen(): Promise<string> | Promise<Template>;
+            hideOverlayScreen(): Promise<Template> | Promise<string>;
             /**
             /**
                 * show the viewer (in case it was hidden)
                 * show the viewer (in case it was hidden)
                 *
                 *
@@ -189,11 +189,11 @@ declare module BabylonViewer {
                 * Show the loading screen.
                 * Show the loading screen.
                 * The loading screen can be configured using the configuration object
                 * The loading screen can be configured using the configuration object
                 */
                 */
-            showLoadingScreen(): Promise<string> | Promise<Template>;
+            showLoadingScreen(): Promise<Template> | Promise<string>;
             /**
             /**
                 * Hide the loading screen
                 * Hide the loading screen
                 */
                 */
-            hideLoadingScreen(): Promise<string> | Promise<Template>;
+            hideLoadingScreen(): Promise<Template> | Promise<string>;
             dispose(): void;
             dispose(): void;
             protected _onConfigurationLoaded(configuration: ViewerConfiguration): void;
             protected _onConfigurationLoaded(configuration: ViewerConfiguration): void;
     }
     }
@@ -916,7 +916,7 @@ declare module BabylonViewer {
       * @param name the name of the custom optimizer configuration
       * @param name the name of the custom optimizer configuration
       * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
       * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
       */
       */
-    export function getCustomOptimizerByName(name: string, upgrade?: boolean): (sceneManager: SceneManager) => boolean;
+    export function getCustomOptimizerByName(name: string, upgrade?: boolean): typeof extendedUpgrade;
     export function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
     export function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
 }
 }
 declare module BabylonViewer {
 declare module BabylonViewer {
@@ -1542,6 +1542,20 @@ declare module BabylonViewer {
     export function addLoaderPlugin(name: string, plugin: ILoaderPlugin): void;
     export function addLoaderPlugin(name: string, plugin: ILoaderPlugin): void;
 }
 }
 declare module BabylonViewer {
 declare module BabylonViewer {
+    /**
+        * A custom upgrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedUpgrade(sceneManager: SceneManager): boolean;
+    /**
+        * A custom degrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedDegrade(sceneManager: SceneManager): boolean;
+}
+declare module BabylonViewer {
 }
 }
 declare module BabylonViewer {
 declare module BabylonViewer {
     export interface IEnvironmentMapConfiguration {
     export interface IEnvironmentMapConfiguration {

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/viewer/babylon.viewer.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js


+ 22 - 5
dist/preview release/viewer/babylon.viewer.module.d.ts

@@ -200,11 +200,11 @@ declare module 'babylonjs-viewer/viewer/defaultViewer' {
                 * Mainly used for help and errors
                 * Mainly used for help and errors
                 * @param subScreen the name of the subScreen. Those can be defined in the configuration object
                 * @param subScreen the name of the subScreen. Those can be defined in the configuration object
                 */
                 */
-            showOverlayScreen(subScreen: string): Promise<string> | Promise<Template>;
+            showOverlayScreen(subScreen: string): Promise<Template> | Promise<string>;
             /**
             /**
                 * Hide the overlay screen.
                 * Hide the overlay screen.
                 */
                 */
-            hideOverlayScreen(): Promise<string> | Promise<Template>;
+            hideOverlayScreen(): Promise<Template> | Promise<string>;
             /**
             /**
                 * show the viewer (in case it was hidden)
                 * show the viewer (in case it was hidden)
                 *
                 *
@@ -221,11 +221,11 @@ declare module 'babylonjs-viewer/viewer/defaultViewer' {
                 * Show the loading screen.
                 * Show the loading screen.
                 * The loading screen can be configured using the configuration object
                 * The loading screen can be configured using the configuration object
                 */
                 */
-            showLoadingScreen(): Promise<string> | Promise<Template>;
+            showLoadingScreen(): Promise<Template> | Promise<string>;
             /**
             /**
                 * Hide the loading screen
                 * Hide the loading screen
                 */
                 */
-            hideLoadingScreen(): Promise<string> | Promise<Template>;
+            hideLoadingScreen(): Promise<Template> | Promise<string>;
             dispose(): void;
             dispose(): void;
             protected _onConfigurationLoaded(configuration: ViewerConfiguration): void;
             protected _onConfigurationLoaded(configuration: ViewerConfiguration): void;
     }
     }
@@ -977,13 +977,14 @@ declare module 'babylonjs-viewer/templating/viewerTemplatePlugin' {
 }
 }
 
 
 declare module 'babylonjs-viewer/optimizer/custom' {
 declare module 'babylonjs-viewer/optimizer/custom' {
+    import { extendedUpgrade } from "babylonjs-viewer/optimizer/custom/extended";
     import { SceneManager } from "babylonjs-viewer/managers/sceneManager";
     import { SceneManager } from "babylonjs-viewer/managers/sceneManager";
     /**
     /**
       *
       *
       * @param name the name of the custom optimizer configuration
       * @param name the name of the custom optimizer configuration
       * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
       * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
       */
       */
-    export function getCustomOptimizerByName(name: string, upgrade?: boolean): (sceneManager: SceneManager) => boolean;
+    export function getCustomOptimizerByName(name: string, upgrade?: boolean): typeof extendedUpgrade;
     export function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
     export function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
 }
 }
 
 
@@ -1646,6 +1647,22 @@ declare module 'babylonjs-viewer/loader/plugins' {
     export function addLoaderPlugin(name: string, plugin: ILoaderPlugin): void;
     export function addLoaderPlugin(name: string, plugin: ILoaderPlugin): void;
 }
 }
 
 
+declare module 'babylonjs-viewer/optimizer/custom/extended' {
+    import { SceneManager } from 'babylonjs-viewer/managers/sceneManager';
+    /**
+        * A custom upgrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedUpgrade(sceneManager: SceneManager): boolean;
+    /**
+        * A custom degrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedDegrade(sceneManager: SceneManager): boolean;
+}
+
 declare module 'babylonjs-viewer/configuration/interfaces' {
 declare module 'babylonjs-viewer/configuration/interfaces' {
     export * from 'babylonjs-viewer/configuration/interfaces/cameraConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/cameraConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/colorGradingConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/colorGradingConfiguration';

+ 0 - 1
dist/preview release/what's new.md

@@ -4,7 +4,6 @@
 
 
 - GUI
 - GUI
   - New GUI 3D controls toolset. [Complete doc + demos](http://doc.babylonjs.com/how_to/gui3d) ([Deltakosh](https://github.com/deltakosh))
   - New GUI 3D controls toolset. [Complete doc + demos](http://doc.babylonjs.com/how_to/gui3d) ([Deltakosh](https://github.com/deltakosh))
-  - New 3D chart foundation. [Complete doc + demos](http://doc.babylonjs.com/how_to/chart3d) ([Deltakosh](https://github.com/deltakosh))
   - New GUI control: [Grid](http://doc.babylonjs.com/how_to/gui#grid) ([Deltakosh](https://github.com/deltakosh))
   - New GUI control: [Grid](http://doc.babylonjs.com/how_to/gui#grid) ([Deltakosh](https://github.com/deltakosh))
   - New GUI control: [InputPassword](https://doc.babylonjs.com/how_to/gui#inputpassword) ([theom](https://github.com/theom))
   - New GUI control: [InputPassword](https://doc.babylonjs.com/how_to/gui#inputpassword) ([theom](https://github.com/theom))
 - Gizmo Support ([TrevorDev](https://github.com/TrevorDev))
 - Gizmo Support ([TrevorDev](https://github.com/TrevorDev))

+ 0 - 228
gui/src/3D/charting/barGraph.ts

@@ -1,228 +0,0 @@
-import { Nullable, Scene, Mesh, StandardMaterial, Animation, Engine, Matrix, AbstractMesh } from "babylonjs";
-import { Chart } from ".";
-import { AdvancedDynamicTexture, DisplayGrid } from "../../2D";
-
-/** 
- * Class used to render bar graphs 
- * @see http://doc.babylonjs.com/how_to/chart3d#bargraph
- */
-export class BarGraph extends Chart {
-    private _margin = 1;
-    private _maxBarHeight = 10;
-    private _barMeshes: Nullable<Array<AbstractMesh>>;
-    private _backgroundMesh: Nullable<Mesh>;
-    private _backgroundADT : Nullable<AdvancedDynamicTexture>;
-    
-    private _displayBackground = true;
-    private _backgroundResolution = 512;
-    private _backgroundTickCount = 5;
-
-    /** Gets or sets a boolean indicating if the background must be displayed */
-    public get displayBackground(): boolean {
-        return this._displayBackground;
-    }
-
-    public set displayBackground(value: boolean) {
-        if (this._displayBackground === value) {
-            return;
-        }
-
-        this._displayBackground = value;
-
-        this.refresh();
-    }     
-
-    /** Gets or sets the margin between bars */
-    public get margin(): number {
-        return this._margin;
-    }
-
-    public set margin(value: number) {
-        if (this._margin === value) {
-            return;
-        }
-
-        this._margin = value;
-
-        this.refresh();
-    }
-
-    /** Gets or sets the maximum height of a bar */
-    public get maxBarHeight(): number {
-        return this._maxBarHeight;
-    }
-
-    public set maxBarHeight(value: number) {
-        if (this._maxBarHeight === value) {
-            return;
-        }
-
-        this._maxBarHeight = value;
-
-        this.refresh();
-    }
-
-    /**
-     * Creates a new BarGraph
-     * @param name defines the name of the graph
-     * @param scene defines the hosting scene
-     */
-    constructor(name: string, scene: Nullable<Scene> = Engine.LastCreatedScene) {
-        super(name, scene);
-    }
-
-    /**
-     * Children class can override this function to provide a new mesh (as long as it stays inside a 1x1x1 box)
-     * @param name defines the mesh name
-     * @param scene defines the hosting scene
-     * @returns a new mesh used to represent the current bar
-     */
-    protected _createBarMesh(name: string, scene: Scene): Mesh {
-        var box = Mesh.CreateBox(name, 1, scene);
-        box.setPivotMatrix(Matrix.Translation(0, 0.5, 0), false);
-
-        return box;
-    }
-
-    /** 
-     * Force the graph to redraw itself 
-     * @returns the current BarGraph
-    */
-    public refresh(): BarGraph {
-        if (this._blockRefresh) {
-            return this;
-        }
-
-        if (!this._dataSource) {
-            this._clean();
-            return this;
-        }
-
-        const scene = this._rootNode.getScene();
-
-        // Default material
-        if (!this._defaultMaterial) {
-            this._defaultMaterial = this._createDefaultMaterial(scene);
-        }
-
-        // Scan data
-        let min = 0;
-        let max = Number.MIN_VALUE;
-
-        const data = this._dataFilters ? this._dataSource.getFilteredData(this._dataFilters) : this._dataSource.data;
-
-        // Check the limit of the entire series
-        this._dataSource.data.forEach(entry => {
-            if (min > entry.value) {
-                min = entry.value;
-            }
-
-            if (max < entry.value) {
-                max = entry.value;
-            }
-        });
-
-        let ratio = this._maxBarHeight / (max - min);
-
-        let createMesh = false;
-        let left = -(data.length / 2) * (this._elementWidth + this.margin) + 1.5 * this._margin;
-
-        // Do we need to create new graph or animate the current one
-        if (!this._barMeshes || this._barMeshes.length !== data.length) {
-            this._clean();
-            createMesh = true;
-            this._barMeshes = [];
-        }        
-
-        this._removeLabels();
-
-        if (this._backgroundMesh) {
-            this._backgroundMesh.dispose(false, true);
-            this._backgroundMesh = null;
-        }
-
-        if (this._displayBackground) {
-            // Axis
-            this._backgroundMesh = BABYLON.Mesh.CreatePlane("background", 1, scene);
-            this._backgroundMesh.parent = this._rootNode;            
-            this._backgroundMesh.setPivotMatrix(Matrix.Translation(0, 0.5, 0), false);
-
-            this._backgroundADT = AdvancedDynamicTexture.CreateForMesh(this._backgroundMesh, this._backgroundResolution, this._backgroundResolution, false);
-
-            let displayGrid = new DisplayGrid();
-            displayGrid.displayMajorLines = false;
-            displayGrid.minorLineColor = "White";
-            displayGrid.minorLineTickness = 2;
-            displayGrid.cellWidth = this._backgroundResolution / data.length;
-            displayGrid.cellHeight = this._backgroundResolution / this._backgroundTickCount;
-
-            this._backgroundADT.addControl(displayGrid);
-
-            (<StandardMaterial>this._backgroundMesh.material!).opacityTexture = null;
-
-            this._backgroundMesh.position.z = this._elementWidth;
-            this._backgroundMesh.scaling.x = (this._elementWidth + this.margin) * data.length;
-            this._backgroundMesh.scaling.y = this._maxBarHeight; 
-
-            for (var tickIndex = 0; tickIndex <= this._backgroundTickCount; tickIndex++) {
-                var label = (max / this._backgroundTickCount) * tickIndex + "";
-                var ticklabel = this._addLabel(label, this._elementWidth, false);
-                ticklabel.position.x = left - this._elementWidth;
-                ticklabel.position.y = (this.maxBarHeight * tickIndex) / this._backgroundTickCount;
-                ticklabel.position.z = this._elementWidth;
-            }
-        }
-
-        // We will generate one bar per entry
-        let index = 0;
-        data.forEach(entry => {
-
-            var barMesh: AbstractMesh;
-            if (createMesh) {
-                barMesh = this._createBarMesh(this.name + "_box_" + index++, scene);
-                barMesh.enablePointerMoveEvents = true;
-                this._barMeshes!.push(barMesh);
-            } else {
-                barMesh = this._barMeshes![index++];
-            }
-
-            barMesh.material = this._defaultMaterial;
-            barMesh.metadata = entry;
-            barMesh.parent = this._rootNode;
-            barMesh.position.x = left;
-            let currentScalingYState = barMesh.scaling.y;
-            barMesh.scaling.set(this._elementWidth, 0, this._elementWidth);
-
-            var easing = new BABYLON.CircleEase();
-            Animation.CreateAndStartAnimation("entryScale", barMesh, "scaling.y", 30, 30, currentScalingYState, entry.value * ratio, 0, easing);
-
-            this.onElementCreatedObservable.notifyObservers(barMesh);
-
-            left += this._elementWidth + this.margin;
-
-            // Label
-            if (!this.labelDimension || !this.displayLabels) {
-                return;
-            }
-
-            let label = this._addLabel(entry[this.labelDimension], this._elementWidth);
-            label.position = barMesh.position.clone();
-            label.position.z -= this._elementWidth;
-        });
-
-        this.onRefreshObservable.notifyObservers(this);
-
-        return this;
-    }
-
-    protected _clean(): void {
-        super._clean();
-        this._barMeshes = null;
-        this._backgroundMesh = null;
-
-        if (this._backgroundADT) {
-            this._backgroundADT.dispose();
-            this._backgroundADT = null;
-        }
-    }
-}

+ 0 - 429
gui/src/3D/charting/chart.ts

@@ -1,429 +0,0 @@
-import { Nullable, TransformNode, Scene, Vector3, Engine, Observer, PointerInfo, Observable, Mesh, AbstractMesh, GlowLayer, Material } from "babylonjs";
-import { DataSeries } from ".";
-import { AdvancedDynamicTexture, TextBlock, Rectangle, TextWrapping } from "../../2D";
-import { FluentMaterial } from "../materials";
-
-/** 
- * Base class for all chart controls
- * @see http://doc.babylonjs.com/how_to/chart3d#charts
- */
-export abstract class Chart {
-    protected _dataSource: Nullable<DataSeries>;
-    protected _rootNode: TransformNode;
-    protected _dataFilters: {[key: string]: string};
-    private _pointerObserver: Nullable<Observer<PointerInfo>>;
-    protected _scene: Scene;
-    private _lastElementOver: Nullable<AbstractMesh>;
-    private _labelMeshes = new Array<Mesh>();
-    protected _blockRefresh = false;    
-    protected _elementWidth = 2;    
-    private _pickedPointObserver: Nullable<Observer<Vector3>>;      
-    protected _defaultMaterial: Nullable<Material>; 
-    private _labelDimension: string;
-    private _displayLabels = true;
-    private _activeBar: Nullable<Mesh>;
-
-    private _glowLayer: Nullable<GlowLayer>;
-    private _onElementEnterObserver: Nullable<Observer<AbstractMesh>>;
-    private _onElementOutObserver: Nullable<Observer<AbstractMesh>>;
-    
-    private _hoverLabel: Nullable<Mesh>;
-
-    /** Observable raised when a refresh was done */
-    public onRefreshObservable  = new Observable<Chart>();
-
-    /** Observable raised when a new element is created */
-    public onElementCreatedObservable  = new Observable<AbstractMesh>();
-
-    /**
-     * Observable raised when the point picked by the pointer events changed
-     */
-    public onPickedPointChangedObservable = new Observable<Nullable<Vector3>>();
-
-    /**
-     * Observable raised when the pointer enters an element of the chart
-    */
-    public onElementEnterObservable = new Observable<AbstractMesh>();
-
-    /**
-     * Observable raised when the pointer leaves an element of the chart
-     */
-    public onElementOutObservable = new Observable<AbstractMesh>();
-
-    /** User defined callback used to create labels */
-    public labelCreationFunction: Nullable<(label: string, width: number, includeBackground: boolean) => Mesh>;
-
-    /** User defined callback used to apply specific setup to hover labels */
-    public updateHoverLabel: Nullable<(meshLabel: Mesh) => void>;
-
-    /** Gets or sets the width of each element */
-    public get elementWidth(): number {
-        return this._elementWidth;
-    }
-
-    public set elementWidth(value: number) {
-        if (this._elementWidth === value) {
-            return;
-        }
-
-        this._elementWidth = value;
-
-        this.refresh();
-    }    
-
-    /** Gets or sets the rotation of the entire chart */
-    public set rotation(value: Vector3) {
-        this._rootNode.rotation = value;
-    }
-
-    public get rotation(): Vector3 {
-        return this._rootNode.rotation;
-    }
-
-    /** Gets or sets the position of the entire chart */
-    public set position(value: Vector3) {
-        this._rootNode.position = value;
-    }
-
-    public get position(): Vector3 {
-        return this._rootNode.position;
-    }
-
-    /** Gets or sets the scaling of the entire chart */
-    public set scaling(value: Vector3) {
-        this._rootNode.scaling = value;
-    }
-
-    public get scaling(): Vector3 {
-        return this._rootNode.scaling;
-    }
-
-    /** Gets or sets the data source used by the graph */
-    public get dataSource(): Nullable<DataSeries> {
-        return this._dataSource;
-    }
-
-    public set dataSource(value: Nullable<DataSeries>) {
-        if (this._dataSource === value) {
-            return;
-        }
-
-        this._dataSource = value;
-
-        this.refresh();
-    }
-
-    /** Gets or sets the filters applied to data source */
-    public get dataFilters(): {[key: string]: string} {
-        return this._dataFilters;
-    }
-
-    public set dataFilters(filters: {[key: string]: string}) {
-        this._dataFilters = filters;
-
-        this.refresh();
-    }
-
-    /** Gets the root node associated with this graph */
-    public get rootNode(): TransformNode {
-        return this._rootNode;
-    }
-
-    /** Gets or sets a value indicating if refresh function should be executed (useful when multiple changes will happen and you want to run refresh only at the end) */
-    public get blockRefresh(): boolean {
-        return this._blockRefresh;
-    }
-
-    public set blockRefresh(value: boolean) {
-        if (this._blockRefresh === value) {
-            return;
-        }
-
-        this._blockRefresh = value;
-
-        if (value) {
-            this.refresh();
-        }
-    }
-
-    /** Gets or sets the material used by element meshes */
-    public get defaultMaterial(): Nullable<Material> {
-        return this._defaultMaterial;
-    }
-
-    public set defaultMaterial(value: Nullable<Material>) {
-        if (this._defaultMaterial === value) {
-            return;
-        }
-
-        this._defaultMaterial = value;
-
-        this.refresh();
-    }
-
-    /** Gets or sets a boolean indicating if labels must be displayed */
-    public get displayLabels(): boolean {
-        return this._displayLabels;
-    }
-
-    public set displayLabels(value: boolean) {
-        if (this._displayLabels === value) {
-            return;
-        }
-
-        this._displayLabels = value;
-
-        this.refresh();
-    }       
-    
-    /** Gets or sets the dimension used for the labels */
-    public get labelDimension(): string {
-        return this._labelDimension;
-    }
-
-    public set labelDimension(value: string) {
-        if (this._labelDimension === value) {
-            return;
-        }
-
-        this._labelDimension = value;
-
-        this.refresh();
-    }    
-
-    /** Gets or sets a boolean indicating if glow should be used to highlight element hovering */
-    public get glowHover(): boolean {
-        return this._glowLayer !== undefined && this._glowLayer !== null;
-    }
-
-    public set glowHover(value: boolean) {
-        if (this.glowHover === value) {
-            return;
-        }
-
-        if (this._glowLayer) {
-            this._glowLayer.dispose();
-            this._glowLayer = null;
-            return;
-        }
-
-        this._glowLayer = new GlowLayer("glow", this._scene);
-
-        this._glowLayer.customEmissiveColorSelector = (mesh, subMesh, material, result) => {
-            if (mesh === this._activeBar) {
-                let chartColor = this._dataSource!.color.scale(0.75);
-                result.set(chartColor.r, chartColor.g, chartColor.b, 1.0);
-            } else {
-                result.set(0, 0, 0, 0);
-            }
-        }     
-    }
-
-    /** Gets or sets the name of the graph */
-    public name: string; 
-
-    /**
-     * Creates a new Chart
-     * @param name defines the name of the graph
-     * @param scene defines the hosting scene
-     */
-    constructor(name: string, scene: Nullable<Scene> = Engine.LastCreatedScene) {
-        this.name = name;
-        this._rootNode = new TransformNode(name, scene);
-
-        this._scene = scene!;
-
-        this._pointerObserver = this._scene.onPointerObservable.add((pi, state) => {
-            if (!pi.pickInfo || !pi.pickInfo.hit) {
-                if (this._lastElementOver) {
-                    this.onElementOutObservable.notifyObservers(this._lastElementOver);
-                    this._lastElementOver = null;
-                }
-
-                this.onPickedPointChangedObservable.notifyObservers(null);
-                return;
-            }
-
-            let metadata = pi.pickInfo.pickedMesh!.metadata;
-            if (metadata && metadata.value) {
-                if (this._lastElementOver !== pi.pickInfo.pickedMesh) {
-                    if (this._lastElementOver) {
-                        this.onElementOutObservable.notifyObservers(this._lastElementOver);
-                        this._lastElementOver = null;
-                    }
-                    this._lastElementOver = pi.pickInfo.pickedMesh;
-                    this.onElementEnterObservable.notifyObservers(this._lastElementOver!);
-                }
-            } else {
-                if (this._lastElementOver) {
-                    this.onElementOutObservable.notifyObservers(this._lastElementOver);
-                    this._lastElementOver = null;
-                }
-            }
-
-            this.onPickedPointChangedObservable.notifyObservers(pi.pickInfo.pickedPoint);
-        });
-
-        this._onElementEnterObserver = this.onElementEnterObservable.add(mesh => {
-            this._activeBar = <Mesh>mesh;
-
-            this._hoverLabel = this._addLabel(this._activeBar.metadata.value.toString(), this._elementWidth);
-
-            this._hoverLabel.position = this._activeBar.position.clone();
-            this._hoverLabel.position.y = this._activeBar.scaling.y + 1.0;
-            this._hoverLabel.scaling.x = this._elementWidth;     
-            
-            if (this.updateHoverLabel) {
-                this.updateHoverLabel(this._hoverLabel);
-            }
-        });
-
-        this._onElementOutObserver = this.onElementOutObservable.add(mesh => {
-            this._activeBar = null;
-
-            if (this._hoverLabel) {
-                this._removeLabel(this._hoverLabel);
-                this._hoverLabel = null;
-            }
-        });
-
-
-        this.glowHover = true;
-    }
-
-    protected _createDefaultMaterial(scene: Scene): Material {
-        var result = new FluentMaterial("fluent", scene);
-        result.albedoColor = this._dataSource!.color.scale(0.5);
-        result.innerGlowColorIntensity = 0.6;
-        result.renderHoverLight = true;
-        result.hoverRadius = 5;
-
-        this._pickedPointObserver = this.onPickedPointChangedObservable.add(pickedPoint => {
-            if (pickedPoint) {
-                result.hoverPosition = pickedPoint;
-                result.hoverColor.a = 1.0;
-            } else {
-                result.hoverColor.a = 0;
-            }
-        });
-
-        return result;
-    }
-
-    /**
-     * Function called by the chart objects when they need a label. Could be user defined if you set this.labelCreationFunction to a custom callback
-     * @param label defines the text of the label
-     * @param width defines the expected width (height is supposed to be 1)
-     * @param includeBackground defines if a background rectangle must be added (default is true)
-     * @returns a mesh used to host the label
-     */
-    protected _addLabel(label: string, width: number, includeBackground = true): Mesh {
-        if (this.labelCreationFunction) {
-            let labelMesh = this.labelCreationFunction(label, width, includeBackground);
-            labelMesh.parent = this._rootNode;
-
-            this._labelMeshes.push(labelMesh);
-
-            return labelMesh;
-        }
-
-        let plane = Mesh.CreatePlane(label, 1, this._scene);
-
-        this._labelMeshes.push(plane);
-
-        plane.parent = this._rootNode;
-        plane.billboardMode = Mesh.BILLBOARDMODE_ALL;
-        plane.scaling.x = width;
-
-        let resolution = 256;
-        let adt = AdvancedDynamicTexture.CreateForMesh(plane, resolution, resolution / width, false, true);
-        let textBlock = new TextBlock(label, label);
-        textBlock.color = "White";
-        textBlock.textWrapping = TextWrapping.Ellipsis;
-        textBlock.fontWeight = "Bold";
-        textBlock.fontSize = 50;
-
-        if (includeBackground) {
-            let rectangle = new Rectangle(label + "Border");
-            rectangle.thickness = 4;
-            rectangle.color = "White";
-            rectangle.background = "Black";
-            rectangle.addControl(textBlock);
-            adt.addControl(rectangle);
-        } else {
-            adt.addControl(textBlock);
-        }
-
-        return plane;
-    }
-
-    /**
-     * Remove specific label mesh
-     * @param label defines the label mesh to remove
-     */
-    protected _removeLabel(label: Mesh): void {
-        let index = this._labelMeshes.indexOf(label);
-
-        if (index === -1) {
-            return;
-        }
-
-        this._labelMeshes.splice(index, 1);
-        label.dispose(false, true);
-    }
-
-    /** Remove all created labels */
-    protected _removeLabels(): void {
-        this._labelMeshes.forEach(label => {
-            label.dispose(false, true);
-        });
-
-        this._labelMeshes = [];
-    }
-
-    /** 
-     * Force the chart to redraw itself 
-     * @returns the current chart
-    */
-    public abstract refresh(): Chart;
-
-    /** Release all associated resources */
-    public dispose() {
-        this.onElementCreatedObservable.clear();
-        this.onPickedPointChangedObservable.clear();
-        this.onElementEnterObservable.clear();
-        this.onElementOutObservable.clear();
-
-        this.labelCreationFunction = null;
-
-        if (this._onElementEnterObserver) {
-            this.onElementEnterObservable.remove(this._onElementEnterObserver);
-            this._onElementEnterObserver = null;
-        }
-
-        if (this._onElementOutObserver) {
-            this.onElementOutObservable.remove(this._onElementOutObserver);
-            this._onElementOutObserver = null;
-        }         
-
-        if (this._pointerObserver) {
-            this._scene.onPointerObservable.remove(this._pointerObserver);
-            this._pointerObserver = null;
-        }
-
-        this.glowHover = false;
-
-        if (this._pickedPointObserver) {
-            this.onPickedPointChangedObservable.remove(this._pickedPointObserver);
-            this._pickedPointObserver = null;
-        }
-
-        this._rootNode.dispose();
-    }
-
-    protected _clean(): void {
-        // Cleanup
-        var descendants = this._rootNode.getDescendants();
-        descendants.forEach(n => n.dispose());
-    }
-}

+ 0 - 294
gui/src/3D/charting/dataSeries.ts

@@ -1,294 +0,0 @@
-import { Color3 } from "babylonjs";
-
-/** 
- * Class used to store data to display 
- * @see http://doc.babylonjs.com/how_to/chart3d
- */
-export class DataSeries {
-    /** Gets or sets the label of the series */
-    public label: string;
-
-    /** Gets or sets the color associated with the series */
-    public color: Color3;
-
-    /** Gets or sets the list of dimensions (used to filter data) */
-    public dimensions: Array<string>;
-
-    /** Gets or sets the list of values (data to display) */
-    public data: Array<any>;  
-
-    /**
-     * Apply a list of filters to the data and return a list
-     * @param filters defines the filters to apply
-     * @returns an array containing the filtered data
-     */
-    public getFilteredData(filters: {[key: string]: string}): Array<any> {
-        let filteredData = new Array<any>();
-
-        this.data.forEach(element => {
-            let isValid = false;
-            for (var filter in filters) {
-                if (!filters.hasOwnProperty(filter)) {
-                    continue;
-                }
-
-                var filterValue = filters[filter];
-                isValid = (element[filter] === filterValue);
-
-                if (!isValid) {
-                    break;
-                }
-            }
-
-            if (isValid) {
-                filteredData.push(element);
-            }
-        });
-
-        return filteredData;
-    }
-
-    /**
-     * Get the different values of a dimension
-     * @param key defines the dimension name
-     * @returns An array of values
-     */
-    public getDimensionValues(key: string): Array<any> {
-        var result = new Array<any>();
-
-        this.data.forEach((entry) => {
-            var value = entry[key];
-            if (result.indexOf(value) === -1) {
-                result.push(value);
-            }
-        });
-
-        return result;
-    }
-
-    /**
-     * Create a new DataSeries containing testing values
-     * @returns the new DataSeries
-     */
-    public static CreateFakeData(): DataSeries {
-        var series = new DataSeries();
-        series.label = "Product #1";
-        series.color = new Color3(1.0, 0, 0);
-
-        series.dimensions = ["Year", "Country"];
-
-        series.data = [
-            {
-                "Year": 2014,
-                "Country": "France",
-                "value": 10
-            }, 
-            {
-                "Year": 2014,
-                "Country": "USA",
-                "value": 200
-            }, 
-            {
-                "Year": 2014,
-                "Country": "India",
-                "value": 400
-            },
-            {
-                "Year": 2014,
-                "Country": "UK",
-                "value": 180
-            },
-            {
-                "Year": 2014,
-                "Country": "Germany",
-                "value": 400
-            }, 
-            {
-                "Year": 2014,
-                "Country": "Australia",
-                "value": 24
-            }, 
-            {
-                "Year": 2014,
-                "Country": "China",
-                "value": 540
-            }, 
-            {
-                "Year": 2014,
-                "Country": "Japan",
-                "value": 150
-            },
-            {
-                "Year": 2015,
-                "Country": "France",
-                "value": 12
-            }, 
-            {
-                "Year": 2015,
-                "Country": "USA",
-                "value": 120
-            }, 
-            {
-                "Year": 2015,
-                "Country": "India",
-                "value": 480
-            }, 
-            {
-                "Year": 2015,
-                "Country": "UK",
-                "value": 10
-            },
-            {
-                "Year": 2015,
-                "Country": "Germany",
-                "value": 80
-            }, 
-            {
-                "Year": 2015,
-                "Country": "Australia",
-                "value": 230
-            }, 
-            {
-                "Year": 2015,
-                "Country": "China",
-                "value": 490
-            }, 
-            {
-                "Year": 2015,
-                "Country": "Japan",
-                "value": 120
-            }
-        ];
-        
-        return series;
-    }
-
-    /**
-     * Create a new DataSeries containing testing spatial values
-     * @returns the new DataSeries
-     */
-    public static CreateFakeSpatialData(): DataSeries {
-        var series = new DataSeries();
-        series.label = "Spatial Data";
-        series.color = new Color3(0, 1.0, 0);
-
-        series.dimensions = ["Year", "Country"];
-
-        series.data = [
-            {
-                "Year": 2014,
-                "Country": "France",
-                "value": 10,
-                "latitude": 46.63728,
-                "longitude": 2.338262
-            }, 
-            {
-                "Year": 2014,
-                "Country": "USA",
-                "value": 200,
-                "latitude": 39.83333,
-                "longitude": -98.58334
-            }, 
-            {
-                "Year": 2014,
-                "Country": "India",
-                "value": 400,
-                "latitude": 23.40601,
-                "longitude": 79.45809
-            },
-            {
-                "Year": 2014,
-                "Country": "UK",
-                "value": 180,
-                "latitude": 54.56089,
-                "longitude": -2.212512
-            },
-            {
-                "Year": 2014,
-                "Country": "Germany",
-                "value": 400,
-                "latitude": 51.20247,
-                "longitude": 10.3822
-            }, 
-            {
-                "Year": 2014,
-                "Country": "Australia",
-                "value": 24,
-                "latitude": -25.58524,
-                "longitude": 134.5041
-            }, 
-            {
-                "Year": 2014,
-                "Country": "China",
-                "value": 540,
-                "latitude": 36.55309,
-                "longitude": 103.9754
-            }, 
-            {
-                "Year": 2014,
-                "Country": "Japan",
-                "value": 150,
-                "latitude": 36.28165,
-                "longitude": 139.0773
-            },
-            {
-                "Year": 2015,
-                "Country": "France",
-                "value": 12,
-                "latitude": 46.63728,
-                "longitude": 2.338262
-            }, 
-            {
-                "Year": 2015,
-                "Country": "USA",
-                "value": 120,
-                "latitude": 39.83333,
-                "longitude": -98.58334
-            }, 
-            {
-                "Year": 2015,
-                "Country": "India",
-                "value": 480,
-                "latitude": 23.40601,
-                "longitude": 79.45809
-            }, 
-            {
-                "Year": 2015,
-                "Country": "UK",
-                "value": 10,
-                "latitude": 54.56089,
-                "longitude": -2.212512
-            },
-            {
-                "Year": 2015,
-                "Country": "Germany",
-                "value": 80,
-                "latitude": 51.20247,
-                "longitude": 10.3822
-            }, 
-            {
-                "Year": 2015,
-                "Country": "Australia",
-                "value": 230,
-                "latitude": -25.58524,
-                "longitude": 134.5041
-            }, 
-            {
-                "Year": 2015,
-                "Country": "China",
-                "value": 490,
-                "latitude": 36.55309,
-                "longitude": 103.9754
-            }, 
-            {
-                "Year": 2015,
-                "Country": "Japan",
-                "value": 120,
-                "latitude": 36.28165,
-                "longitude": 139.0773
-            }
-        ];
-        
-        return series;
-    }
-}

+ 0 - 4
gui/src/3D/charting/index.ts

@@ -1,4 +0,0 @@
-export * from "./dataSeries";
-export * from "./chart";
-export * from "./barGraph";
-export * from "./mapGraph";

+ 0 - 281
gui/src/3D/charting/mapGraph.ts

@@ -1,281 +0,0 @@
-import { Chart } from ".";
-import { Engine, Scene, Nullable, Mesh, Animation, Texture, Matrix, Observer, Vector3, Material, AbstractMesh } from "babylonjs";
-import { FluentMaterial } from "../materials";
-
-/** 
- * Class used to render bar graphs 
- * @see http://doc.babylonjs.com/how_to/chart3d#mapgraph
- */
-export class MapGraph extends Chart {
-
-    private _cylinderMeshes: Nullable<Array<AbstractMesh>>;
-    private _maxCylinderHeight = 10;
-    private _worldMap: Nullable<Mesh>;
-    private _mercatorMaterial: Nullable<FluentMaterial>;
-    private _worldMapSize = 40;   
-    private _cylinderTesselation = 16;
-    private _xOffset = 0;
-    private _yOffset = 0;
-    private _worldMapPickedPointObserver: Nullable<Observer<Vector3>>;  
-
-    /** Gets or sets the maximum height of a cylinder */
-    public get maxCylinderHeight(): number {
-        return this._maxCylinderHeight;
-    }
-
-    public set maxCylinderHeight(value: number) {
-        if (this._maxCylinderHeight === value) {
-            return;
-        }
-
-        this._maxCylinderHeight = value;
-
-        this.refresh();
-    }    
-
-    /** Gets or sets the offset (in world unit) on X axis to apply to all elements */
-    public get xOffset(): number {
-        return this._xOffset;
-    }
-
-    public set xOffset(value: number) {
-        if (this._xOffset === value) {
-            return;
-        }
-
-        this._xOffset = value;
-
-        this.refresh();
-    }    
-    
-    /** Gets or sets the offset (in world unit) on Y axis to apply to all elements */
-    public get yOffset(): number {
-        return this._yOffset;
-    }
-
-    public set yOffset(value: number) {
-        if (this._yOffset === value) {
-            return;
-        }
-
-        this._yOffset = value;
-
-        this.refresh();
-    }       
-
-    /** Gets or sets the tesselation used to build the cylinders */
-    public get cylinderTesselation(): number {
-        return this._cylinderTesselation;
-    }
-
-    public set cylinderTesselation(value: number) {
-        if (this._cylinderTesselation === value) {
-            return;
-        }
-
-        this._cylinderTesselation = value;
-        this._clean();
-
-        this.refresh();
-    }        
-
-    
-    /** Gets or sets the size of the world map (this will define the width of the supporting plane) */
-    public get worldMapSize(): number {
-        return this._worldMapSize;
-    }
-
-    public set worldMapSize(value: number) {
-        if (this._worldMapSize === value) {
-            return;
-        }
-
-        this._worldMapSize = value;
-
-        this.refresh();
-    }    
-
-    public updateHoverLabel = (meshLabel: Mesh) => {
-        if (!this.labelDimension || !this.displayLabels) {
-            return;
-        }
-
-        meshLabel.position.y += 1.5;
-    }
-
-    /**
-     * Gets the material used to render the world map
-     */
-    public get worldMapMaterial(): Nullable<Material> {
-        return this._mercatorMaterial;
-    }
-
-    /** Sets the texture url to use for the world map */
-    public set worldMapUrl(value: string) {
-        const scene = this._scene;
-        if (!this._mercatorMaterial) {
-            this._mercatorMaterial = new FluentMaterial("WorldMap", scene!);
-    
-            this._mercatorMaterial.backFaceCulling = false;
-    
-            this._mercatorMaterial.renderHoverLight = true;
-            this._mercatorMaterial.hoverRadius = 3;
-    
-            this._worldMapPickedPointObserver = this.onPickedPointChangedObservable.add(pickedPoint => {
-                if (pickedPoint) {
-                    this._mercatorMaterial!.hoverPosition = pickedPoint;
-                    this._mercatorMaterial!.hoverColor.a = 1.0;
-                } else {
-                    this._mercatorMaterial!.hoverColor.a = 0;
-                }
-            });
-        }
-
-        if (this._mercatorMaterial.albedoTexture) {
-            this._mercatorMaterial.albedoTexture.dispose();
-        }
-
-        const texture = new Texture(value, scene, false, true, Texture.LINEAR_LINEAR_MIPLINEAR, () => {
-            this.refresh();
-        });
-        this._mercatorMaterial.albedoTexture = texture;
-    }
-    
-    /**
-     * Creates a new MapGraph
-     * @param name defines the name of the graph
-     * @param scene defines the hosting scene
-     */
-    constructor(name: string, mapUrl: string, scene: Nullable<Scene> = Engine.LastCreatedScene) {
-        super(name, scene);
-
-        this.worldMapUrl = mapUrl;
-    }
-
-    protected _createCylinderMesh(name: string, scene: Scene): Mesh {
-        var cylinder = Mesh.CreateCylinder(name, 1, 1, 1, this._cylinderTesselation, 1, scene);
-        cylinder.setPivotMatrix(Matrix.Translation(0, 0.5, 0), false);
-
-        return cylinder;
-    }
-
-    public refresh(): MapGraph {
-        if (this._blockRefresh || !this._mercatorMaterial || !this._mercatorMaterial.albedoTexture!.isReady()) {
-            return this;
-        }
-
-        if (!this._dataSource) {
-            this._clean();
-            return this;
-        }
-
-        const scene = this._rootNode.getScene();
-        const data = this._dataFilters ? this._dataSource.getFilteredData(this._dataFilters) : this._dataSource.data;
-        let createMesh = false;
-
-        // Do we need to create new graph or animate the current one
-        if (!this._cylinderMeshes || this._cylinderMeshes.length !== data.length) {
-            this._clean();
-            createMesh = true;
-            this._cylinderMeshes = [];
-        }      
-
-        // Scan data
-        let min = 0;
-        let max = Number.MIN_VALUE;
-
-        // Check the limit of the entire series
-        this._dataSource.data.forEach(entry => {
-            if (min > entry.value) {
-                min = entry.value;
-            }
-
-            if (max < entry.value) {
-                max = entry.value;
-            }
-        });
-
-        let ratio = this._maxCylinderHeight / (max - min);     
-
-        this._removeLabels();
-        
-        const worldMaptextureSize = this._mercatorMaterial.albedoTexture!.getSize();
-        const worldMapWidth = this._worldMapSize;
-        const worldMapHeight = worldMapWidth * worldMaptextureSize.height / worldMaptextureSize.width;
-
-        if (this._worldMap) {
-            this._worldMap.dispose();
-        }
-
-        this._worldMap = Mesh.CreateGround("WorldMap", worldMapWidth, worldMapHeight, 1, scene);
-        this._worldMap.parent = this._rootNode;
-        this._worldMap.material = this._mercatorMaterial;
-        this._worldMap.enablePointerMoveEvents = true;
-
-        // Default material
-        if (!this._defaultMaterial) {
-            this._defaultMaterial = this._createDefaultMaterial(scene);
-        }        
-        
-        // We will generate one cylinder per entry
-        let index = 0;
-        data.forEach(entry => {
-
-            var cylinderMesh: AbstractMesh;
-            if (createMesh) {
-                cylinderMesh = this._createCylinderMesh(this.name + "_cylinder_" + index++, scene);
-                cylinderMesh.enablePointerMoveEvents = true;
-                this._cylinderMeshes!.push(cylinderMesh);
-            } else {
-                cylinderMesh = this._cylinderMeshes![index++];
-            }
-
-            cylinderMesh.material = this._defaultMaterial;
-            cylinderMesh.metadata = entry;
-            cylinderMesh.parent = this._rootNode;
-            let currentScalingYState = cylinderMesh.scaling.y;
-            cylinderMesh.scaling.set(this._elementWidth / 2, 0, this._elementWidth / 2);
-
-            // Lat/long convertion
-            const latitude: number = entry.latitude;
-            const longitude: number = entry.longitude;
-            const x = (longitude + 180) * (worldMapWidth / 360) - worldMapWidth / 2;
-            const latRad = latitude * Math.PI / 180;
-            const mercN = Math.log(Math.tan(Math.PI / 4 + latRad / 2));
-            const z = worldMapWidth * mercN / (2 * Math.PI);
-            cylinderMesh.position.set(x + this._xOffset, 0.01, z + this._yOffset);
-
-            var easing = new BABYLON.CircleEase();
-            Animation.CreateAndStartAnimation("entryScale", cylinderMesh, "scaling.y", 30, 30, currentScalingYState, entry.value * ratio, 0, easing);
-
-            this.onElementCreatedObservable.notifyObservers(cylinderMesh);
-
-            // Label
-            if (!this.labelDimension || !this.displayLabels) {
-                return;
-            }
-
-            let label = this._addLabel(entry[this.labelDimension], this._elementWidth);
-            label.position = cylinderMesh.position.clone();
-            Animation.CreateAndStartAnimation("labelScale", label, "position.y", 30, 30, currentScalingYState + 1.0, entry.value * ratio + 1.0, 0, easing);
-        });
-
-        this.onRefreshObservable.notifyObservers(this);
-    
-        return this;
-    }
-
-    protected _clean(): void {
-        super._clean();
-        this._worldMap = null;
-        this._cylinderMeshes = null;
-    }
-
-    public dispose() {
-        super.dispose();
-        if (this._worldMapPickedPointObserver) {
-            this.onPickedPointChangedObservable.remove(this._worldMapPickedPointObserver);
-            this._worldMapPickedPointObserver = null;    
-        }
-    }
-}

+ 0 - 1
gui/src/3D/index.ts

@@ -1,6 +1,5 @@
 export * from "./controls";
 export * from "./controls";
 export * from "./materials";
 export * from "./materials";
-export * from "./charting";
 
 
 export * from "./gui3DManager";
 export * from "./gui3DManager";
 export * from "./vector3WithInfo";
 export * from "./vector3WithInfo";