changeset 4155:877c687b9002

3DViewer: Fix for RT-31403 3DViewer app no longer runs after switch to gradle build
author Alexander Kouznetsov
date Tue, 02 Jul 2013 16:08:44 -0700
parents 780ac2ab1c8a
children f7175070149f
files apps/experiments/3DViewer/src/main/java/META-INF/MANIFEST.MF apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/main.fxml apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/navigation.fxml apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/settings.fxml apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/viewer.css apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/main.fxml apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/navigation.fxml apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/settings.fxml apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/viewer.css
diffstat 9 files changed, 663 insertions(+), 666 deletions(-) [+]
line wrap: on
line diff
--- a/apps/experiments/3DViewer/src/main/java/META-INF/MANIFEST.MF	Tue Jul 02 16:07:27 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: com.javafx.experiments.jfx3dviewer.Jfx3dViewerApp
-
--- a/apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/main.fxml	Tue Jul 02 16:07:27 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2010, 2013 Oracle and/or its affiliates.
-All rights reserved. Use is subject to license terms.
-
-This file is available and licensed under the following license:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the distribution.
- - Neither the name of Oracle Corporation nor the names of its
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--->
-<?import java.lang.*?>
-<?import java.net.*?>
-<?import java.util.*?>
-<?import javafx.geometry.*?>
-<?import javafx.scene.control.*?>
-<?import javafx.scene.control.MenuBar?>
-<?import javafx.scene.control.ToolBar?>
-<?import javafx.scene.layout.*?>
-<?import javafx.scene.paint.*?>
-<?import com.javafx.experiments.jfx3dviewer.*?>
-
-<VBox id="root" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.javafx.experiments.jfx3dviewer.MainController">
-  <ToolBar>
-    <items>
-      <SplitMenuButton fx:id="openMenuBtn" mnemonicParsing="false" onAction="#open" text="Open...">
-        <items>
-          <CheckMenuItem mnemonicParsing="false" text="Load as Polygons" fx:id="loadAsPolygonsCheckBox" />
-          <CheckMenuItem mnemonicParsing="false" text="Optimize" fx:id="optimizeCheckBox" />
-        </items>
-      </SplitMenuButton>
-      <Button mnemonicParsing="false" onAction="#export" text="Export..." />
-      <!--HBox.hgrow="ALWAYS"-->
-      <Pane maxWidth="1.7976931348623157E308" prefHeight="-1.0" prefWidth="-1.0" HBox.hgrow="ALWAYS"/>
-      <TimelineDisplay fx:id="timelineDisplay" />
-      <HBox id="playControls" prefHeight="-1.0" prefWidth="-1.0">
-        <children>
-          <Button fx:id="startBtn" mnemonicParsing="false" styleClass="left-pill" text="|&lt;">
-            <graphic>
-              <Pane prefHeight="16.0" prefWidth="16.0" />
-            </graphic>
-          </Button>
-          <Button fx:id="rwBtn" mnemonicParsing="false" styleClass="center-pill" text="&lt;&lt;">
-            <graphic>
-              <Pane prefHeight="16.0" prefWidth="16.0" />
-            </graphic>
-          </Button>
-          <ToggleButton fx:id="playBtn" mnemonicParsing="false" styleClass="center-pill" text="&gt;">
-            <graphic>
-              <Pane prefHeight="16.0" prefWidth="16.0" />
-            </graphic>
-          </ToggleButton>
-          <Button fx:id="ffBtn" mnemonicParsing="false" styleClass="center-pill" text="&gt;&gt;">
-            <graphic>
-              <Pane prefHeight="16.0" prefWidth="16.0" />
-            </graphic>
-          </Button>
-          <Button fx:id="endBtn" mnemonicParsing="false" styleClass="center-pill" text="&gt;|">
-            <graphic>
-              <Pane prefHeight="16.0" prefWidth="16.0" />
-            </graphic>
-          </Button>
-          <ToggleButton fx:id="loopBtn" mnemonicParsing="false" selected="true" styleClass="right-pill" text="R">
-            <graphic>
-              <Pane prefHeight="16.0" prefWidth="16.0" />
-            </graphic>
-          </ToggleButton>
-        </children>
-        <padding>
-          <Insets right="5.0" />
-        </padding>
-      </HBox>
-      <ToggleButton fx:id="settingsBtn" mnemonicParsing="false" onAction="#toggleSettings" text="Settings" />
-    </items>
-  </ToolBar>
-  <SplitPane fx:id="splitPane" dividerPositions="" focusTraversable="true" prefHeight="160.0" prefWidth="200.0" VBox.vgrow="ALWAYS" />
-  <ToolBar id="statusBar" styleClass="bottom">
-    <items>
-      <Label fx:id="status" text="Label" />
-    </items>
-  </ToolBar>
-  <stylesheets>
-    <URL value="@viewer.css" />
-  </stylesheets>
-</VBox>
--- a/apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/navigation.fxml	Tue Jul 02 16:07:27 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2010, 2013 Oracle and/or its affiliates.
-All rights reserved. Use is subject to license terms.
-
-This file is available and licensed under the following license:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the distribution.
- - Neither the name of Oracle Corporation nor the names of its
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--->
-<?import com.javafx.experiments.jfx3dviewer.*?>
-<?import com.javafx.experiments.jfx3dviewer.FourWayNavControl?>
-<?import java.lang.*?>
-<?import javafx.geometry.*?>
-<?import javafx.geometry.Insets?>
-<?import javafx.scene.control.*?>
-<?import javafx.scene.control.ScrollBar?>
-<?import javafx.scene.layout.*?>
-<?import javafx.scene.layout.VBox?>
-<?scenebuilder-classpath-element ../../../../../../../build/classes?>
-
-<VBox id="controller" alignment="CENTER" spacing="10.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.javafx.experiments.jfx3dviewer.NavigationController">
-  <children>
-    <FourWayNavControl fx:id="eyeNav" />
-    <FourWayNavControl fx:id="camNav" />
-    <ScrollBar fx:id="zoomBar" orientation="VERTICAL" rotate="180.0" />
-  </children>
-  <padding>
-    <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
-  </padding>
-</VBox>
--- a/apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/settings.fxml	Tue Jul 02 16:07:27 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2010, 2013 Oracle and/or its affiliates.
-All rights reserved. Use is subject to license terms.
-
-This file is available and licensed under the following license:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the distribution.
- - Neither the name of Oracle Corporation nor the names of its
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--->
-<?import java.lang.*?>
-<?import java.net.*?>
-<?import java.util.*?>
-<?import javafx.geometry.*?>
-<?import javafx.scene.control.*?>
-<?import javafx.scene.control.MenuBar?>
-<?import javafx.scene.control.ToolBar?>
-<?import javafx.scene.layout.*?>
-<?import javafx.scene.paint.*?>
-<?import com.javafx.experiments.shape3d.*?>
-<?scenebuilder-stylesheet viewer.css?>
-<!--suppress JavaFxUnresolvedStyleClassReference -->
-
-<Accordion fx:id="settings" minWidth="0.0" prefHeight="798.0" prefWidth="279.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.javafx.experiments.jfx3dviewer.SettingsController">
-  <expandedPane>
-    <TitledPane fx:id="x5" animated="false" expanded="true" text="Hierarchy">
-      <content>
-        <TreeTableView fx:id="hierarachyTreeTable" editable="true" prefHeight="200.0" prefWidth="200.0">
-          <columns>
-            <TreeTableColumn fx:id="nodeColumn" editable="false" prefWidth="75.0" sortable="false" text="Node" />
-            <TreeTableColumn fx:id="idColumn" editable="false" prefWidth="75.0" text="Id" />
-            <TreeTableColumn fx:id="visibilityColumn" editable="true" text="Visibility" />
-            <TreeTableColumn fx:id="widthColumn" editable="false" text="W" />
-            <TreeTableColumn fx:id="heightColumn" editable="false" text="H" />
-            <TreeTableColumn fx:id="depthColumn" editable="false" text="D" />
-          </columns>
-        </TreeTableView>
-      </content>
-    </TitledPane>
-  </expandedPane>
-  <panes>
-    <TitledPane fx:id="x4" animated="false" expanded="false" text="Options">
-      <content>
-        <GridPane hgap="5.0" styleClass="settings" vgap="5.0">
-          <children>
-            <Label text="Show Axis:" GridPane.columnIndex="0" GridPane.rowIndex="0" />
-            <Label text="Y Up:" GridPane.columnIndex="0" GridPane.rowIndex="1" />
-            <CheckBox fx:id="showAxisCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="0" />
-            <CheckBox fx:id="yUpCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="1" />
-            <Label text="Scale to Fit" GridPane.columnIndex="0" GridPane.rowIndex="2" />
-            <CheckBox id="yUpCheckBox" fx:id="scaleToFitCheckBox" mnemonicParsing="false" selected="true" text="" GridPane.columnIndex="1" GridPane.rowIndex="2" />
-            <Label text="Background Color" GridPane.columnIndex="0" GridPane.rowIndex="3" />
-            <ColorPicker fx:id="backgroundColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="3" />
-            <Label text="Wireframe" GridPane.columnIndex="0" GridPane.rowIndex="4" />
-            <CheckBox fx:id="wireFrameCheckbox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="4" />
-            <Label text="Subdivision level" GridPane.columnIndex="0" GridPane.rowIndex="5" />
-            <HBox prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="1" GridPane.rowIndex="5">
-              <children>
-                <ToggleButton mnemonicParsing="false" selected="true" styleClass="left-pill" text="None" userData="0">
-                  <toggleGroup>
-                    <ToggleGroup fx:id="subdivisionLevelGroup" />
-                  </toggleGroup>
-                </ToggleButton>
-                <ToggleButton mnemonicParsing="false" styleClass="center-pill" text="1" toggleGroup="$subdivisionLevelGroup" userData="1" />
-                <ToggleButton mnemonicParsing="false" styleClass="center-pill" text="2" toggleGroup="$subdivisionLevelGroup" userData="2" />
-                <ToggleButton mnemonicParsing="false" styleClass="right-pill" text="3" toggleGroup="$subdivisionLevelGroup" userData="3" />
-              </children>
-            </HBox>
-            <Label text="Creases (Boundary Rules)" GridPane.columnIndex="0" GridPane.rowIndex="6" />
-            <HBox prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="1" GridPane.rowIndex="6">
-              <children>
-                <ToggleButton mnemonicParsing="false" selected="true" styleClass="left-pill" text="Edges">
-                  <toggleGroup>
-                    <ToggleGroup fx:id="subdivisionBoundaryGroup" />
-                  </toggleGroup>
-                  <userData>
-                    <SubdivisionMesh.BoundaryMode fx:value="CREASE_EDGES"/>
-                  </userData>
-                  <tooltip>
-                    <Tooltip text="Only edges at the boundary are treated as creases" />
-                  </tooltip>
-                </ToggleButton>
-                <ToggleButton mnemonicParsing="false" styleClass="right-pill" text="All" toggleGroup="$subdivisionBoundaryGroup">
-                  <userData>
-                    <SubdivisionMesh.BoundaryMode fx:value="CREASE_ALL"/>
-                  </userData>
-                  <tooltip>
-                    <Tooltip text="Edges and points at the boundary are treated as creases" />
-                  </tooltip>
-                </ToggleButton>
-              </children>
-            </HBox>
-            <Label text="Smooth Texture Map" GridPane.columnIndex="0" GridPane.rowIndex="7" />
-            <HBox prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="1" GridPane.rowIndex="7">
-              <children>
-                <ToggleButton mnemonicParsing="false" selected="true" styleClass="left-pill" text="None">
-                  <toggleGroup>
-                    <ToggleGroup fx:id="subdivisionSmoothGroup" />
-                  </toggleGroup>
-                  <userData>
-                    <SubdivisionMesh.MapBorderMode fx:value="NOT_SMOOTH"/>
-                  </userData>
-                  <tooltip>
-                    <Tooltip text="Keeps the same uvs for all control points" />
-                  </tooltip>
-                </ToggleButton>
-                <ToggleButton mnemonicParsing="false" styleClass="center-pill" text="Internal" toggleGroup="$subdivisionSmoothGroup">
-                  <userData>
-                    <SubdivisionMesh.MapBorderMode fx:value="SMOOTH_INTERNAL"/>
-                  </userData>
-                  <tooltip>
-                    <Tooltip text="Smooths uvs of points at corners" />
-                  </tooltip>
-                </ToggleButton>
-                <ToggleButton mnemonicParsing="false" styleClass="right-pill" text="All" toggleGroup="$subdivisionSmoothGroup">
-                  <userData>
-                    <SubdivisionMesh.MapBorderMode fx:value="SMOOTH_ALL"/>
-                  </userData>
-                  <tooltip>
-                    <Tooltip text="Smooths uvs of points at boundaries" />
-                  </tooltip>
-                </ToggleButton>
-              </children>
-            </HBox>
-            <Region maxHeight="1.7976931348623157E308" prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="0" GridPane.rowIndex="8" />
-          </children>
-          <columnConstraints>
-            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
-            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
-          </columnConstraints>
-          <padding>
-            <Insets bottom="8.0" left="8.0" right="8.0" top="8.0" fx:id="x3" />
-          </padding>
-          <rowConstraints>
-            <RowConstraints minHeight="10.0" prefHeight="-1.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" prefHeight="-1.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" prefHeight="-1.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-            <RowConstraints minHeight="10.0" vgrow="ALWAYS" />
-          </rowConstraints>
-        </GridPane>
-      </content>
-    </TitledPane>
-    <TitledPane fx:id="x2" animated="false" text="Lights">
-      <content>
-        <ScrollPane fitToWidth="true" prefHeight="200.0" prefWidth="200.0">
-          <content>
-            <GridPane hgap="5.0" padding="$x3" styleClass="settings" vgap="5.0">
-              <children>
-                <Label text="Color:" GridPane.columnIndex="0" GridPane.rowIndex="2" />
-                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Ambient" GridPane.columnIndex="0" GridPane.columnSpan="2147483647" GridPane.hgrow="ALWAYS" GridPane.rowIndex="0" />
-                <ColorPicker fx:id="ambientColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="2" />
-                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="1" />
-                <CheckBox fx:id="ambientEnableCheckbox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="1" />
-                <Label text="Color:" GridPane.columnIndex="0" GridPane.rowIndex="5" />
-                <ColorPicker id="ambientColorPicker" fx:id="light1ColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="5" />
-                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Light 1 (Camera)" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="3" />
-                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="4" />
-                <CheckBox fx:id="light1EnabledCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="4" />
-                <Label text="Lock to Camera" GridPane.columnIndex="0" GridPane.rowIndex="6" />
-                <CheckBox fx:id="light1followCameraCheckBox" mnemonicParsing="false" selected="true" text="" GridPane.columnIndex="1" GridPane.rowIndex="6" />
-                <Label text="X" GridPane.columnIndex="0" GridPane.rowIndex="7" />
-                <Slider fx:id="light1x" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="7" />
-                <Label text="Y" GridPane.columnIndex="0" GridPane.rowIndex="8" />
-                <Slider fx:id="light1y" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="8" />
-                <Label text="Z" GridPane.columnIndex="0" GridPane.rowIndex="9" />
-                <Slider fx:id="light1z" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="9" />
-                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Light 2" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="10" />
-                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="11" />
-                <CheckBox fx:id="light2EnabledCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="11" />
-                <Label text="X" GridPane.columnIndex="0" GridPane.rowIndex="13" />
-                <Slider fx:id="light2x" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="13" />
-                <Label text="Y" GridPane.columnIndex="0" GridPane.rowIndex="14" />
-                <Slider fx:id="light2y" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="14" />
-                <Label text="Z" GridPane.columnIndex="0" GridPane.rowIndex="15" />
-                <Slider fx:id="light2z" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="15" />
-                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Light 3" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="16" />
-                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="17" />
-                <CheckBox fx:id="light3EnabledCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="17" />
-                <Label text="Lock to Camera" GridPane.columnIndex="0" GridPane.rowIndex="19" />
-                <Slider fx:id="light3x" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="19" />
-                <Label text="Y" GridPane.columnIndex="0" GridPane.rowIndex="20" />
-                <Slider fx:id="light3y" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="20" />
-                <Label text="Z" GridPane.columnIndex="0" GridPane.rowIndex="21" />
-                <Slider fx:id="light3z" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="21" />
-                <Label text="Color:" GridPane.columnIndex="0" GridPane.rowIndex="12" />
-                <ColorPicker fx:id="light2ColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="12" />
-                <Label text="Color" GridPane.columnIndex="0" GridPane.rowIndex="18" />
-                <ColorPicker fx:id="light3ColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="18" />
-              </children>
-              <columnConstraints>
-                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
-                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
-              </columnConstraints>
-              <rowConstraints>
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
-              </rowConstraints>
-            </GridPane>
-          </content>
-        </ScrollPane>
-      </content>
-    </TitledPane>
-    <TitledPane fx:id="x1" animated="false" text="Camera">
-      <content>
-        <GridPane hgap="5.0" padding="$x3" styleClass="settings" vgap="5.0">
-          <children>
-            <Label text="Field of view:" GridPane.columnIndex="0" GridPane.rowIndex="0" />
-            <Slider fx:id="fovSlider" majorTickUnit="40.0" max="180.0" min="0.0" minorTickCount="4" showTickLabels="true" showTickMarks="true" GridPane.columnIndex="1" GridPane.rowIndex="0" />
-          </children>
-          <columnConstraints>
-            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
-            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
-          </columnConstraints>
-          <rowConstraints>
-            <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
-          </rowConstraints>
-        </GridPane>
-      </content>
-    </TitledPane>
-    <fx:reference source="x5" />
-    <TitledPane fx:id="x6" animated="false" expanded="false" text="Transforms">
-      <content>
-        <VBox>
-          <children>
-            <Label fx:id="selectedNodeLabel"/>
-            <ListView fx:id="transformsList" prefHeight="200.0" prefWidth="200.0">
-                <VBox.vgrow>ALWAYS</VBox.vgrow>
-            </ListView>
-          </children>
-        </VBox>
-      </content>
-    </TitledPane>
-  </panes>
-</Accordion>
--- a/apps/experiments/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/viewer.css	Tue Jul 02 16:07:27 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
- * Copyright (c) 2010, 2013 Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-.split-pane {
-    -fx-background-color: null;
-    -fx-background-insets: 0, 0;
-    -fx-padding: 0;
-}
-#statusBar > .container {
-    -fx-alignment: center;
-}
-#statusBar .text {
-    -fx-font-size: 11px;
-    -fx-font-weight: bold;
-    -fx-fill: #1d3866;
-    -fx-effect: dropshadow(one-pass-box, white, 0, 1.0, 0, 1);
-}
-#zoomBar {
-    -fx-background-insets: 0, 1;
-    -fx-background-radius: 10, 10;
-    -fx-padding: 2 0 2 0;
-}
-#zoomBar > .increment-button > .increment-arrow {
-    -fx-padding: 4;
-    -fx-shape: "M124.438,1083.516H121.5v-2.953c0-0.587-0.476-1.062-1.062-1.062s-1.062,0.476-1.062,1.062v2.953h-2.812c-0.587,0-1.062,0.476-1.062,1.062s0.476,1.062,1.062,1.062h2.812v2.797c0,0.587,0.476,1.062,1.062,1.062s1.062-0.476,1.062-1.062v-2.797h2.938c0.587,0,1.062-0.476,1.062-1.062S125.024,1083.516,124.438,1083.516z";
-}
-#zoomBar > .decrement-button > .decrement-arrow {
-    -fx-padding: 2 8 0 0;
-    -fx-shape: "M128.562,1085.625c-0.587,0-1.062-0.476-1.062-1.062l0,0c0-0.587,0.476-1.062,1.062-1.062h7.875 c0.587,0,1.062,0.476,1.062,1.062l0,0c0,0.587-0.476,1.062-1.062,1.062H128.562z";
-}
-#zoomBar > .decrement-button {
-    -fx-padding: 8 6 8 6;
-    -fx-background-radius: 10;
-}
-#zoomBar > .increment-button {
-    -fx-padding: 5 6 5 6;
-    -fx-background-radius: 10;
-}
-.four-way {
-    -fx-background-radius: 100;
-    -fx-padding: 3px;
-}
-.four-way > * {
-    -fx-shape: "M6.623,6.144L6.62,8.168L2.372,2.501L6.62-3.167L6.623-1.14l-2.8,3.641L6.623,6.";
-    -fx-scale-shape: false;
-    -fx-padding: 4px;
-    -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-45%);
-    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
-}
-.four-way > .center {
-    -fx-scale-shape: false;
-    -fx-padding: 10px;
-}
-.four-way > .up {
-    -fx-rotate: 90;
-}
-.four-way > .down {
-    -fx-rotate: -90;
-}
-.four-way > .right {
-    -fx-rotate: 180;
-    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, -1.4);
-}
-#eyeNav > .center {
-    -fx-shape: "M121.5,1093.484c-3.866,0-7,2.025-7,4.523s3.134,4.523,7,4.523s7-2.025,7-4.523S125.366,1093.484,121.5,1093.484z M121.5,1101.531c-3.252,0-6-1.613-6-3.523s2.748-3.523,6-3.523s6,1.613,6,3.523S124.752,1101.531,121.5,1101.531z M121.5,1094.833c-1.749,0-3.167,1.418-3.167,3.167s1.418,3.167,3.167,3.167s3.167-1.418,3.167-3.167S123.249,1094.833,121.5,1094.833z M120.595,1097.548c-0.25,0-0.453-0.202-0.453-0.453c0-0.25,0.203-0.452,0.453-0.452s0.452,0.202,0.452,0.452C121.047,1097.346,120.845,1097.548,120.595,1097.548z";
-}
-#camNav > .center {
-    -fx-shape: "M20.34,47.5c0,0-0.875-2.688-1.938-3.688s-4.688-4.438-3.625-5.562s5.25,2.25,5.25,2.25s-3.295-7.148-1.438-8c1.5-0.688,3.438,4.938,3.438,4.938S21.34,30.5,23.152,30.5c1.938,0,1.25,6.938,1.25,6.938s1.5-6.188,2.938-5.812s0,6.375,0,6.375s3.039-3.571,3.812-2.875c1.25,1.125-2.381,5.987-2.443,7.362S28.277,47.5,28.277,47.5H20.34z";
-}
-.four-way > .up:pressed,
-.four-way > .down:pressed,
-.four-way > .left:pressed,
-.four-way > .right:pressed {
-    -fx-effect: dropshadow(gaussian, -fx-accent, 15, 0.7, 0, 0);
-
-}
-.settings-header {
-    -fx-font-weight: bold;
-    -fx-alignment: center;
-    -fx-text-fill: #6f6f6f;
-    -fx-border-color: transparent transparent #dddddd transparent;
-}
-.settings {
-    -fx-font-size: 11px;
-}
-/**
-.radio-button:selected > .radio > .dot,
-.check-box:selected > .box > .mark,
-.check-box:indeterminate  > .box > .mark {
-    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color !important;
-    -fx-background-insets: 1 0 -1 0, 0;
-}
-
-*/
-.settings .check-box > .box > .mark {
-    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color !important;
-    -fx-background-insets: 1 0 -1 0, 0;
-    -fx-shape: "M0.288,2.742C0.48,2.195,0.756,1.716,1.115,1.308C1.476,0.9,1.918,0.58,2.442,0.348S3.555,0,4.212,0c0.664,0,1.256,0.116,1.776,0.348s0.96,0.552,1.32,0.96c0.36,0.408,0.636,0.886,0.828,1.434C8.328,3.29,8.424,3.885,8.424,4.524c0,0.624-0.096,1.206-0.288,1.746c-0.192,0.54-0.468,1.01-0.828,1.41c-0.36,0.4-0.8,0.714-1.32,0.942S4.876,8.964,4.212,8.964c-0.656,0-1.246-0.114-1.77-0.342S1.476,8.08,1.115,7.68c-0.36-0.4-0.636-0.87-0.828-1.41C0.095,5.73,0,5.148,0,4.524C0,3.885,0.095,3.29,0.288,2.742z M2.01,5.574c0.084,0.34,0.218,0.646,0.402,0.918c0.184,0.272,0.424,0.49,0.72,0.654s0.656,0.246,1.08,0.246c0.424,0,0.784-0.082,1.08-0.246s0.536-0.382,0.72-0.654S6.33,5.914,6.414,5.574c0.084-0.34,0.126-0.69,0.126-1.05c0-0.376-0.042-0.74-0.126-1.092S6.196,2.766,6.011,2.49c-0.184-0.276-0.424-0.496-0.72-0.66s-0.656-0.246-1.08-0.246c-0.424,0-0.784,0.082-1.08,0.246s-0.536,0.384-0.72,0.66C2.228,2.766,2.094,3.08,2.01,3.432S1.884,4.148,1.884,4.524C1.884,4.884,1.926,5.234,2.01,5.574z M11.58,0.204l3.576,5.748h0.024V0.204h1.764v8.568H15.06l-3.564-5.736h-0.024v5.736H9.708V0.204H11.58z M28.524,2.742c0.191-0.548,0.468-1.026,0.828-1.434c0.359-0.408,0.802-0.728,1.326-0.96C31.202,0.116,31.792,0,32.448,0c0.664,0,1.256,0.116,1.776,0.348c0.52,0.232,0.96,0.552,1.319,0.96c0.36,0.408,0.637,0.886,0.828,1.434c0.192,0.548,0.288,1.142,0.288,1.782c0,0.624-0.096,1.206-0.288,1.746c-0.191,0.54-0.468,1.01-0.828,1.41c-0.359,0.4-0.8,0.714-1.319,0.942c-0.521,0.228-1.112,0.342-1.776,0.342c-0.656,0-1.246-0.114-1.77-0.342c-0.524-0.228-0.967-0.542-1.326-0.942c-0.36-0.4-0.637-0.87-0.828-1.41c-0.192-0.54-0.288-1.122-0.288-1.746C28.236,3.885,28.332,3.29,28.524,2.742z M30.246,5.574c0.084,0.34,0.218,0.646,0.402,0.918c0.184,0.272,0.424,0.49,0.72,0.654s0.656,0.246,1.08,0.246s0.784-0.082,1.08-0.246s0.536-0.382,0.72-0.654c0.185-0.272,0.318-0.578,0.402-0.918c0.084-0.34,0.126-0.69,0.126-1.05c0-0.376-0.042-0.74-0.126-1.092s-0.218-0.666-0.402-0.942c-0.184-0.276-0.424-0.496-0.72-0.66s-0.656-0.246-1.08-0.246s-0.784,0.082-1.08,0.246s-0.536,0.384-0.72,0.66c-0.185,0.276-0.318,0.59-0.402,0.942S30.12,4.148,30.12,4.524C30.12,4.884,30.162,5.234,30.246,5.574zM43.968,0.204v1.584h-4.14v1.98h3.588v1.464h-3.588v3.54h-1.884V0.204H43.968z M51.083,0.204v1.584h-4.14v1.98h3.588v1.464h-3.588v3.54h-1.884V0.204H51.083z";
-    -fx-padding: 4.5 25.5 4.5 25.5;
-}
-.settings .check-box > .box {
-    -fx-padding: 5px 5px 5px 7px;
-    -fx-background-color:
-        -fx-shadow-highlight-color,
-        -fx-outer-border,
-        -fx-inner-border,
-        -fx-body-color,
-        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
-        linear-gradient(to bottom, derive(-fx-color, -22%) 0%, derive(-fx-color, -13%) 20%, derive(-fx-color, -11%) 50%);
-    -fx-background-insets: 0 0 -1 0, 0, 1, 2, 0 0 0 30, 1 1 1 31;
-    -fx-background-radius: 3px, 3px, 2px, 1px, 0 2px 2px 0, 0 1 1 0;
-}
-.settings .check-box:selected > .box {
-    -fx-background-color:
-        -fx-shadow-highlight-color,
-        -fx-outer-border,
-        -fx-inner-border,
-        -fx-body-color,
-        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
-        linear-gradient(to bottom, derive(-fx-default-button, -12%) 0%, derive(-fx-default-button, -3%) 20%, derive(-fx-default-button, -1%) 50%);
-
-    -fx-background-insets: 0 0 -1 0, 0, 1, 2, 0 32 0 0, 1 33 1 1;
-    -fx-background-radius: 3px, 3px, 2px, 1px, 2px 0 0 2px, 1 0 0 1;
-}
-.settings .check-box:focused > .box {
-    -fx-background-color:
-        -fx-focus-color,
-        -fx-inner-border,
-        -fx-body-color,
-        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
-        linear-gradient(to bottom, derive(-fx-color, -22%) 0%, derive(-fx-color, -13%) 20%, derive(-fx-color, -11%) 50%);
-    -fx-background-insets: -0.2, 1, 2, 1 1 1 30, 1 1 1 31;
-    -fx-background-radius: 3px, 2px, 1px, 0 2px 2px 0, 0 1 1 0;
-}
-.settings .check-box:focused:selected > .box {
-    -fx-background-color:
-        -fx-focus-color,
-        -fx-inner-border,
-        -fx-body-color,
-        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
-        linear-gradient(to bottom, derive(-fx-default-button, -12%) 0%, derive(-fx-default-button, -3%) 20%, derive(-fx-default-button, -1%) 50%);
-    -fx-background-insets: -0.2, 1, 2, 1 32 1 1, 1 33 1 1;
-    -fx-background-radius: 3px, 2px, 1px, 2px 0 0 2px, 1 0 0 1;
-}
-#playControls * {
-    -fx-content-display: graphic-only;
-}
-#playControls > * > Pane {
-    -fx-background-color: white,#666;
-    -fx-background-insets: 1 0 -1 0, 0;
-}
-#playControls > #startBtn > Pane {
-    -fx-shape: "M27.05,532h-0.782c-0.333,0-0.602,0.273-0.602,0.61v14.659c0,0.338,0.269,0.61,0.602,0.61h0.782c0.332,0,0.602-0.272,0.602-0.61V532.61C27.652,532.273,27.382,532,27.05,532zM38.9,532l-9.263,7.94l9.263,7.939V532z";
-}
-#playControls > #rwBtn > Pane {
-    -fx-shape: "M64.866,531.999l-8.818,7.965l8.818,7.964v-6.796l7.301,6.796v-15.929l-7.301,6.797V531.999z";
-}
-#playControls > #playBtn:selected  > Pane {
-    -fx-shape: "M20.716,531.999c-0.665,0-1.204,0.542-1.204,1.212v13.328c0,0.671,0.539,1.213,1.204,1.213h2.188c0.665,0,1.203-0.542,1.203-1.213v-13.328c0-0.67-0.538-1.212-1.203-1.212H20.716zM10.87,531.999c-0.665,0-1.204,0.542-1.204,1.212v13.328c0,0.671,0.539,1.213,1.204,1.213h2.188c0.665,0,1.203-0.542,1.203-1.213v-13.328c0-0.67-0.539-1.212-1.203-1.212H10.87z";
-}
-#playControls > #playBtn> Pane {
-    -fx-shape: "M0,531.999l8.667,8L0,548V531.999z";
-}
-#playControls > #ffBtn > Pane {
-    -fx-shape: "M82.09,532v6.606L74.833,532v15.832l7.257-6.606v6.606l8.576-7.916L82.09,532z";
-}
-#playControls > #endBtn > Pane {
-    -fx-shape: "M52.525,532c-0.333,0-0.602,0.273-0.602,0.611v14.669c0,0.337,0.27,0.611,0.602,0.611h0.782c0.333,0,0.602-0.274,0.602-0.611v-14.669c0-0.338-0.27-0.611-0.602-0.611H52.525zM40.667,532v15.892l9.27-7.946L40.667,532z";
-}
-.tool-bar #loopBtn Pane {
-    -fx-shape: "M103.31,539.442v-2.544h-6.487c-0.907,0-1.646,0.738-1.646,1.646v1.637l-2.512,2.526v-4.163c0-2.296,1.861-4.157,4.157-4.157h6.487v-2.392l4.034,3.724L103.31,539.442z M92.753,544.033l4.034,3.725v-2.393h6.487c2.296,0,4.157-1.861,4.157-4.157v-4.163l-2.512,2.526v1.637c0,0.907-0.738,1.646-1.646,1.646h-6.487v-2.544L92.753,544.033z";
-}
-.timeline-display {
-    -fx-font-size: 10px;
-    -fx-font-weight: bold;
-    -fx-padding: 6 6 4 6;
-}
-.timeline-display .background {
-    -fx-background-color: white,#b8c3a6;
-    -fx-background-insets: 1 0 -1 0,0;
-    -fx-background-radius: 6, 6;
-    -fx-effect: innershadow(gaussian, #52574abb, 5, 0, 0, 2);
-}
-.timeline-display Text {
-    -fx-fill: #52574a;
-}
-.timeline-display .bar {
-    -fx-border-color: #52574a;
-}
-.timeline-display .progress {
-    -fx-background-color: #52574a;
-}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/main.fxml	Tue Jul 02 16:08:44 2013 -0700
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2010, 2013 Oracle and/or its affiliates.
+All rights reserved. Use is subject to license terms.
+
+This file is available and licensed under the following license:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the distribution.
+ - Neither the name of Oracle Corporation nor the names of its
+   contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<?import java.lang.*?>
+<?import java.net.*?>
+<?import java.util.*?>
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.control.MenuBar?>
+<?import javafx.scene.control.ToolBar?>
+<?import javafx.scene.layout.*?>
+<?import javafx.scene.paint.*?>
+<?import com.javafx.experiments.jfx3dviewer.*?>
+
+<VBox id="root" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.javafx.experiments.jfx3dviewer.MainController">
+  <ToolBar>
+    <items>
+      <SplitMenuButton fx:id="openMenuBtn" mnemonicParsing="false" onAction="#open" text="Open...">
+        <items>
+          <CheckMenuItem mnemonicParsing="false" text="Load as Polygons" fx:id="loadAsPolygonsCheckBox" />
+          <CheckMenuItem mnemonicParsing="false" text="Optimize" fx:id="optimizeCheckBox" />
+        </items>
+      </SplitMenuButton>
+      <Button mnemonicParsing="false" onAction="#export" text="Export..." />
+      <!--HBox.hgrow="ALWAYS"-->
+      <Pane maxWidth="1.7976931348623157E308" prefHeight="-1.0" prefWidth="-1.0" HBox.hgrow="ALWAYS"/>
+      <TimelineDisplay fx:id="timelineDisplay" />
+      <HBox id="playControls" prefHeight="-1.0" prefWidth="-1.0">
+        <children>
+          <Button fx:id="startBtn" mnemonicParsing="false" styleClass="left-pill" text="|&lt;">
+            <graphic>
+              <Pane prefHeight="16.0" prefWidth="16.0" />
+            </graphic>
+          </Button>
+          <Button fx:id="rwBtn" mnemonicParsing="false" styleClass="center-pill" text="&lt;&lt;">
+            <graphic>
+              <Pane prefHeight="16.0" prefWidth="16.0" />
+            </graphic>
+          </Button>
+          <ToggleButton fx:id="playBtn" mnemonicParsing="false" styleClass="center-pill" text="&gt;">
+            <graphic>
+              <Pane prefHeight="16.0" prefWidth="16.0" />
+            </graphic>
+          </ToggleButton>
+          <Button fx:id="ffBtn" mnemonicParsing="false" styleClass="center-pill" text="&gt;&gt;">
+            <graphic>
+              <Pane prefHeight="16.0" prefWidth="16.0" />
+            </graphic>
+          </Button>
+          <Button fx:id="endBtn" mnemonicParsing="false" styleClass="center-pill" text="&gt;|">
+            <graphic>
+              <Pane prefHeight="16.0" prefWidth="16.0" />
+            </graphic>
+          </Button>
+          <ToggleButton fx:id="loopBtn" mnemonicParsing="false" selected="true" styleClass="right-pill" text="R">
+            <graphic>
+              <Pane prefHeight="16.0" prefWidth="16.0" />
+            </graphic>
+          </ToggleButton>
+        </children>
+        <padding>
+          <Insets right="5.0" />
+        </padding>
+      </HBox>
+      <ToggleButton fx:id="settingsBtn" mnemonicParsing="false" onAction="#toggleSettings" text="Settings" />
+    </items>
+  </ToolBar>
+  <SplitPane fx:id="splitPane" dividerPositions="" focusTraversable="true" prefHeight="160.0" prefWidth="200.0" VBox.vgrow="ALWAYS" />
+  <ToolBar id="statusBar" styleClass="bottom">
+    <items>
+      <Label fx:id="status" text="Label" />
+    </items>
+  </ToolBar>
+  <stylesheets>
+    <URL value="@viewer.css" />
+  </stylesheets>
+</VBox>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/navigation.fxml	Tue Jul 02 16:08:44 2013 -0700
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2010, 2013 Oracle and/or its affiliates.
+All rights reserved. Use is subject to license terms.
+
+This file is available and licensed under the following license:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the distribution.
+ - Neither the name of Oracle Corporation nor the names of its
+   contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<?import com.javafx.experiments.jfx3dviewer.*?>
+<?import com.javafx.experiments.jfx3dviewer.FourWayNavControl?>
+<?import java.lang.*?>
+<?import javafx.geometry.*?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.control.ScrollBar?>
+<?import javafx.scene.layout.*?>
+<?import javafx.scene.layout.VBox?>
+<?scenebuilder-classpath-element ../../../../../../../build/classes?>
+
+<VBox id="controller" alignment="CENTER" spacing="10.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.javafx.experiments.jfx3dviewer.NavigationController">
+  <children>
+    <FourWayNavControl fx:id="eyeNav" />
+    <FourWayNavControl fx:id="camNav" />
+    <ScrollBar fx:id="zoomBar" orientation="VERTICAL" rotate="180.0" />
+  </children>
+  <padding>
+    <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+  </padding>
+</VBox>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/settings.fxml	Tue Jul 02 16:08:44 2013 -0700
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2010, 2013 Oracle and/or its affiliates.
+All rights reserved. Use is subject to license terms.
+
+This file is available and licensed under the following license:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the distribution.
+ - Neither the name of Oracle Corporation nor the names of its
+   contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<?import java.lang.*?>
+<?import java.net.*?>
+<?import java.util.*?>
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.control.MenuBar?>
+<?import javafx.scene.control.ToolBar?>
+<?import javafx.scene.layout.*?>
+<?import javafx.scene.paint.*?>
+<?import com.javafx.experiments.shape3d.*?>
+<?scenebuilder-stylesheet viewer.css?>
+<!--suppress JavaFxUnresolvedStyleClassReference -->
+
+<Accordion fx:id="settings" minWidth="0.0" prefHeight="798.0" prefWidth="279.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.javafx.experiments.jfx3dviewer.SettingsController">
+  <expandedPane>
+    <TitledPane fx:id="x5" animated="false" expanded="true" text="Hierarchy">
+      <content>
+        <TreeTableView fx:id="hierarachyTreeTable" editable="true" prefHeight="200.0" prefWidth="200.0">
+          <columns>
+            <TreeTableColumn fx:id="nodeColumn" editable="false" prefWidth="75.0" sortable="false" text="Node" />
+            <TreeTableColumn fx:id="idColumn" editable="false" prefWidth="75.0" text="Id" />
+            <TreeTableColumn fx:id="visibilityColumn" editable="true" text="Visibility" />
+            <TreeTableColumn fx:id="widthColumn" editable="false" text="W" />
+            <TreeTableColumn fx:id="heightColumn" editable="false" text="H" />
+            <TreeTableColumn fx:id="depthColumn" editable="false" text="D" />
+          </columns>
+        </TreeTableView>
+      </content>
+    </TitledPane>
+  </expandedPane>
+  <panes>
+    <TitledPane fx:id="x4" animated="false" expanded="false" text="Options">
+      <content>
+        <GridPane hgap="5.0" styleClass="settings" vgap="5.0">
+          <children>
+            <Label text="Show Axis:" GridPane.columnIndex="0" GridPane.rowIndex="0" />
+            <Label text="Y Up:" GridPane.columnIndex="0" GridPane.rowIndex="1" />
+            <CheckBox fx:id="showAxisCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="0" />
+            <CheckBox fx:id="yUpCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="1" />
+            <Label text="Scale to Fit" GridPane.columnIndex="0" GridPane.rowIndex="2" />
+            <CheckBox id="yUpCheckBox" fx:id="scaleToFitCheckBox" mnemonicParsing="false" selected="true" text="" GridPane.columnIndex="1" GridPane.rowIndex="2" />
+            <Label text="Background Color" GridPane.columnIndex="0" GridPane.rowIndex="3" />
+            <ColorPicker fx:id="backgroundColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="3" />
+            <Label text="Wireframe" GridPane.columnIndex="0" GridPane.rowIndex="4" />
+            <CheckBox fx:id="wireFrameCheckbox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="4" />
+            <Label text="Subdivision level" GridPane.columnIndex="0" GridPane.rowIndex="5" />
+            <HBox prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="1" GridPane.rowIndex="5">
+              <children>
+                <ToggleButton mnemonicParsing="false" selected="true" styleClass="left-pill" text="None" userData="0">
+                  <toggleGroup>
+                    <ToggleGroup fx:id="subdivisionLevelGroup" />
+                  </toggleGroup>
+                </ToggleButton>
+                <ToggleButton mnemonicParsing="false" styleClass="center-pill" text="1" toggleGroup="$subdivisionLevelGroup" userData="1" />
+                <ToggleButton mnemonicParsing="false" styleClass="center-pill" text="2" toggleGroup="$subdivisionLevelGroup" userData="2" />
+                <ToggleButton mnemonicParsing="false" styleClass="right-pill" text="3" toggleGroup="$subdivisionLevelGroup" userData="3" />
+              </children>
+            </HBox>
+            <Label text="Creases (Boundary Rules)" GridPane.columnIndex="0" GridPane.rowIndex="6" />
+            <HBox prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="1" GridPane.rowIndex="6">
+              <children>
+                <ToggleButton mnemonicParsing="false" selected="true" styleClass="left-pill" text="Edges">
+                  <toggleGroup>
+                    <ToggleGroup fx:id="subdivisionBoundaryGroup" />
+                  </toggleGroup>
+                  <userData>
+                    <SubdivisionMesh.BoundaryMode fx:value="CREASE_EDGES"/>
+                  </userData>
+                  <tooltip>
+                    <Tooltip text="Only edges at the boundary are treated as creases" />
+                  </tooltip>
+                </ToggleButton>
+                <ToggleButton mnemonicParsing="false" styleClass="right-pill" text="All" toggleGroup="$subdivisionBoundaryGroup">
+                  <userData>
+                    <SubdivisionMesh.BoundaryMode fx:value="CREASE_ALL"/>
+                  </userData>
+                  <tooltip>
+                    <Tooltip text="Edges and points at the boundary are treated as creases" />
+                  </tooltip>
+                </ToggleButton>
+              </children>
+            </HBox>
+            <Label text="Smooth Texture Map" GridPane.columnIndex="0" GridPane.rowIndex="7" />
+            <HBox prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="1" GridPane.rowIndex="7">
+              <children>
+                <ToggleButton mnemonicParsing="false" selected="true" styleClass="left-pill" text="None">
+                  <toggleGroup>
+                    <ToggleGroup fx:id="subdivisionSmoothGroup" />
+                  </toggleGroup>
+                  <userData>
+                    <SubdivisionMesh.MapBorderMode fx:value="NOT_SMOOTH"/>
+                  </userData>
+                  <tooltip>
+                    <Tooltip text="Keeps the same uvs for all control points" />
+                  </tooltip>
+                </ToggleButton>
+                <ToggleButton mnemonicParsing="false" styleClass="center-pill" text="Internal" toggleGroup="$subdivisionSmoothGroup">
+                  <userData>
+                    <SubdivisionMesh.MapBorderMode fx:value="SMOOTH_INTERNAL"/>
+                  </userData>
+                  <tooltip>
+                    <Tooltip text="Smooths uvs of points at corners" />
+                  </tooltip>
+                </ToggleButton>
+                <ToggleButton mnemonicParsing="false" styleClass="right-pill" text="All" toggleGroup="$subdivisionSmoothGroup">
+                  <userData>
+                    <SubdivisionMesh.MapBorderMode fx:value="SMOOTH_ALL"/>
+                  </userData>
+                  <tooltip>
+                    <Tooltip text="Smooths uvs of points at boundaries" />
+                  </tooltip>
+                </ToggleButton>
+              </children>
+            </HBox>
+            <Region maxHeight="1.7976931348623157E308" prefHeight="-1.0" prefWidth="-1.0" GridPane.columnIndex="0" GridPane.rowIndex="8" />
+          </children>
+          <columnConstraints>
+            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
+            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
+          </columnConstraints>
+          <padding>
+            <Insets bottom="8.0" left="8.0" right="8.0" top="8.0" fx:id="x3" />
+          </padding>
+          <rowConstraints>
+            <RowConstraints minHeight="10.0" prefHeight="-1.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" prefHeight="-1.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" prefHeight="-1.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+            <RowConstraints minHeight="10.0" vgrow="ALWAYS" />
+          </rowConstraints>
+        </GridPane>
+      </content>
+    </TitledPane>
+    <TitledPane fx:id="x2" animated="false" text="Lights">
+      <content>
+        <ScrollPane fitToWidth="true" prefHeight="200.0" prefWidth="200.0">
+          <content>
+            <GridPane hgap="5.0" padding="$x3" styleClass="settings" vgap="5.0">
+              <children>
+                <Label text="Color:" GridPane.columnIndex="0" GridPane.rowIndex="2" />
+                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Ambient" GridPane.columnIndex="0" GridPane.columnSpan="2147483647" GridPane.hgrow="ALWAYS" GridPane.rowIndex="0" />
+                <ColorPicker fx:id="ambientColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="2" />
+                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="1" />
+                <CheckBox fx:id="ambientEnableCheckbox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="1" />
+                <Label text="Color:" GridPane.columnIndex="0" GridPane.rowIndex="5" />
+                <ColorPicker id="ambientColorPicker" fx:id="light1ColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="5" />
+                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Light 1 (Camera)" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="3" />
+                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="4" />
+                <CheckBox fx:id="light1EnabledCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="4" />
+                <Label text="Lock to Camera" GridPane.columnIndex="0" GridPane.rowIndex="6" />
+                <CheckBox fx:id="light1followCameraCheckBox" mnemonicParsing="false" selected="true" text="" GridPane.columnIndex="1" GridPane.rowIndex="6" />
+                <Label text="X" GridPane.columnIndex="0" GridPane.rowIndex="7" />
+                <Slider fx:id="light1x" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="7" />
+                <Label text="Y" GridPane.columnIndex="0" GridPane.rowIndex="8" />
+                <Slider fx:id="light1y" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="8" />
+                <Label text="Z" GridPane.columnIndex="0" GridPane.rowIndex="9" />
+                <Slider fx:id="light1z" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="9" />
+                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Light 2" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="10" />
+                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="11" />
+                <CheckBox fx:id="light2EnabledCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="11" />
+                <Label text="X" GridPane.columnIndex="0" GridPane.rowIndex="13" />
+                <Slider fx:id="light2x" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="13" />
+                <Label text="Y" GridPane.columnIndex="0" GridPane.rowIndex="14" />
+                <Slider fx:id="light2y" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="14" />
+                <Label text="Z" GridPane.columnIndex="0" GridPane.rowIndex="15" />
+                <Slider fx:id="light2z" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="15" />
+                <Label maxWidth="1.7976931348623157E308" styleClass="settings-header" text="Light 3" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="16" />
+                <Label text="Enabled" GridPane.columnIndex="0" GridPane.rowIndex="17" />
+                <CheckBox fx:id="light3EnabledCheckBox" mnemonicParsing="false" text="" GridPane.columnIndex="1" GridPane.rowIndex="17" />
+                <Label text="Lock to Camera" GridPane.columnIndex="0" GridPane.rowIndex="19" />
+                <Slider fx:id="light3x" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="19" />
+                <Label text="Y" GridPane.columnIndex="0" GridPane.rowIndex="20" />
+                <Slider fx:id="light3y" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="20" />
+                <Label text="Z" GridPane.columnIndex="0" GridPane.rowIndex="21" />
+                <Slider fx:id="light3z" majorTickUnit="20.0" max="20.0" min="-20.0" minorTickCount="5" showTickLabels="true" showTickMarks="false" value="0.0" GridPane.columnIndex="1" GridPane.rowIndex="21" />
+                <Label text="Color:" GridPane.columnIndex="0" GridPane.rowIndex="12" />
+                <ColorPicker fx:id="light2ColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="12" />
+                <Label text="Color" GridPane.columnIndex="0" GridPane.rowIndex="18" />
+                <ColorPicker fx:id="light3ColorPicker" GridPane.columnIndex="1" GridPane.rowIndex="18" />
+              </children>
+              <columnConstraints>
+                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
+                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
+              </columnConstraints>
+              <rowConstraints>
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+                <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
+              </rowConstraints>
+            </GridPane>
+          </content>
+        </ScrollPane>
+      </content>
+    </TitledPane>
+    <TitledPane fx:id="x1" animated="false" text="Camera">
+      <content>
+        <GridPane hgap="5.0" padding="$x3" styleClass="settings" vgap="5.0">
+          <children>
+            <Label text="Field of view:" GridPane.columnIndex="0" GridPane.rowIndex="0" />
+            <Slider fx:id="fovSlider" majorTickUnit="40.0" max="180.0" min="0.0" minorTickCount="4" showTickLabels="true" showTickMarks="true" GridPane.columnIndex="1" GridPane.rowIndex="0" />
+          </children>
+          <columnConstraints>
+            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
+            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
+          </columnConstraints>
+          <rowConstraints>
+            <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
+          </rowConstraints>
+        </GridPane>
+      </content>
+    </TitledPane>
+    <fx:reference source="x5" />
+    <TitledPane fx:id="x6" animated="false" expanded="false" text="Transforms">
+      <content>
+        <VBox>
+          <children>
+            <Label fx:id="selectedNodeLabel"/>
+            <ListView fx:id="transformsList" prefHeight="200.0" prefWidth="200.0">
+                <VBox.vgrow>ALWAYS</VBox.vgrow>
+            </ListView>
+          </children>
+        </VBox>
+      </content>
+    </TitledPane>
+  </panes>
+</Accordion>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/experiments/3DViewer/src/main/resources/com/javafx/experiments/jfx3dviewer/viewer.css	Tue Jul 02 16:08:44 2013 -0700
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) 2010, 2013 Oracle and/or its affiliates.
+ * All rights reserved. Use is subject to license terms.
+ *
+ * This file is available and licensed under the following license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *  - Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  - Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the distribution.
+ *  - Neither the name of Oracle Corporation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+.split-pane {
+    -fx-background-color: null;
+    -fx-background-insets: 0, 0;
+    -fx-padding: 0;
+}
+#statusBar > .container {
+    -fx-alignment: center;
+}
+#statusBar .text {
+    -fx-font-size: 11px;
+    -fx-font-weight: bold;
+    -fx-fill: #1d3866;
+    -fx-effect: dropshadow(one-pass-box, white, 0, 1.0, 0, 1);
+}
+#zoomBar {
+    -fx-background-insets: 0, 1;
+    -fx-background-radius: 10, 10;
+    -fx-padding: 2 0 2 0;
+}
+#zoomBar > .increment-button > .increment-arrow {
+    -fx-padding: 4;
+    -fx-shape: "M124.438,1083.516H121.5v-2.953c0-0.587-0.476-1.062-1.062-1.062s-1.062,0.476-1.062,1.062v2.953h-2.812c-0.587,0-1.062,0.476-1.062,1.062s0.476,1.062,1.062,1.062h2.812v2.797c0,0.587,0.476,1.062,1.062,1.062s1.062-0.476,1.062-1.062v-2.797h2.938c0.587,0,1.062-0.476,1.062-1.062S125.024,1083.516,124.438,1083.516z";
+}
+#zoomBar > .decrement-button > .decrement-arrow {
+    -fx-padding: 2 8 0 0;
+    -fx-shape: "M128.562,1085.625c-0.587,0-1.062-0.476-1.062-1.062l0,0c0-0.587,0.476-1.062,1.062-1.062h7.875 c0.587,0,1.062,0.476,1.062,1.062l0,0c0,0.587-0.476,1.062-1.062,1.062H128.562z";
+}
+#zoomBar > .decrement-button {
+    -fx-padding: 8 6 8 6;
+    -fx-background-radius: 10;
+}
+#zoomBar > .increment-button {
+    -fx-padding: 5 6 5 6;
+    -fx-background-radius: 10;
+}
+.four-way {
+    -fx-background-radius: 100;
+    -fx-padding: 3px;
+}
+.four-way > * {
+    -fx-shape: "M6.623,6.144L6.62,8.168L2.372,2.501L6.62-3.167L6.623-1.14l-2.8,3.641L6.623,6.";
+    -fx-scale-shape: false;
+    -fx-padding: 4px;
+    -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-45%);
+    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+}
+.four-way > .center {
+    -fx-scale-shape: false;
+    -fx-padding: 10px;
+}
+.four-way > .up {
+    -fx-rotate: 90;
+}
+.four-way > .down {
+    -fx-rotate: -90;
+}
+.four-way > .right {
+    -fx-rotate: 180;
+    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, -1.4);
+}
+#eyeNav > .center {
+    -fx-shape: "M121.5,1093.484c-3.866,0-7,2.025-7,4.523s3.134,4.523,7,4.523s7-2.025,7-4.523S125.366,1093.484,121.5,1093.484z M121.5,1101.531c-3.252,0-6-1.613-6-3.523s2.748-3.523,6-3.523s6,1.613,6,3.523S124.752,1101.531,121.5,1101.531z M121.5,1094.833c-1.749,0-3.167,1.418-3.167,3.167s1.418,3.167,3.167,3.167s3.167-1.418,3.167-3.167S123.249,1094.833,121.5,1094.833z M120.595,1097.548c-0.25,0-0.453-0.202-0.453-0.453c0-0.25,0.203-0.452,0.453-0.452s0.452,0.202,0.452,0.452C121.047,1097.346,120.845,1097.548,120.595,1097.548z";
+}
+#camNav > .center {
+    -fx-shape: "M20.34,47.5c0,0-0.875-2.688-1.938-3.688s-4.688-4.438-3.625-5.562s5.25,2.25,5.25,2.25s-3.295-7.148-1.438-8c1.5-0.688,3.438,4.938,3.438,4.938S21.34,30.5,23.152,30.5c1.938,0,1.25,6.938,1.25,6.938s1.5-6.188,2.938-5.812s0,6.375,0,6.375s3.039-3.571,3.812-2.875c1.25,1.125-2.381,5.987-2.443,7.362S28.277,47.5,28.277,47.5H20.34z";
+}
+.four-way > .up:pressed,
+.four-way > .down:pressed,
+.four-way > .left:pressed,
+.four-way > .right:pressed {
+    -fx-effect: dropshadow(gaussian, -fx-accent, 15, 0.7, 0, 0);
+
+}
+.settings-header {
+    -fx-font-weight: bold;
+    -fx-alignment: center;
+    -fx-text-fill: #6f6f6f;
+    -fx-border-color: transparent transparent #dddddd transparent;
+}
+.settings {
+    -fx-font-size: 11px;
+}
+/**
+.radio-button:selected > .radio > .dot,
+.check-box:selected > .box > .mark,
+.check-box:indeterminate  > .box > .mark {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color !important;
+    -fx-background-insets: 1 0 -1 0, 0;
+}
+
+*/
+.settings .check-box > .box > .mark {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color !important;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-shape: "M0.288,2.742C0.48,2.195,0.756,1.716,1.115,1.308C1.476,0.9,1.918,0.58,2.442,0.348S3.555,0,4.212,0c0.664,0,1.256,0.116,1.776,0.348s0.96,0.552,1.32,0.96c0.36,0.408,0.636,0.886,0.828,1.434C8.328,3.29,8.424,3.885,8.424,4.524c0,0.624-0.096,1.206-0.288,1.746c-0.192,0.54-0.468,1.01-0.828,1.41c-0.36,0.4-0.8,0.714-1.32,0.942S4.876,8.964,4.212,8.964c-0.656,0-1.246-0.114-1.77-0.342S1.476,8.08,1.115,7.68c-0.36-0.4-0.636-0.87-0.828-1.41C0.095,5.73,0,5.148,0,4.524C0,3.885,0.095,3.29,0.288,2.742z M2.01,5.574c0.084,0.34,0.218,0.646,0.402,0.918c0.184,0.272,0.424,0.49,0.72,0.654s0.656,0.246,1.08,0.246c0.424,0,0.784-0.082,1.08-0.246s0.536-0.382,0.72-0.654S6.33,5.914,6.414,5.574c0.084-0.34,0.126-0.69,0.126-1.05c0-0.376-0.042-0.74-0.126-1.092S6.196,2.766,6.011,2.49c-0.184-0.276-0.424-0.496-0.72-0.66s-0.656-0.246-1.08-0.246c-0.424,0-0.784,0.082-1.08,0.246s-0.536,0.384-0.72,0.66C2.228,2.766,2.094,3.08,2.01,3.432S1.884,4.148,1.884,4.524C1.884,4.884,1.926,5.234,2.01,5.574z M11.58,0.204l3.576,5.748h0.024V0.204h1.764v8.568H15.06l-3.564-5.736h-0.024v5.736H9.708V0.204H11.58z M28.524,2.742c0.191-0.548,0.468-1.026,0.828-1.434c0.359-0.408,0.802-0.728,1.326-0.96C31.202,0.116,31.792,0,32.448,0c0.664,0,1.256,0.116,1.776,0.348c0.52,0.232,0.96,0.552,1.319,0.96c0.36,0.408,0.637,0.886,0.828,1.434c0.192,0.548,0.288,1.142,0.288,1.782c0,0.624-0.096,1.206-0.288,1.746c-0.191,0.54-0.468,1.01-0.828,1.41c-0.359,0.4-0.8,0.714-1.319,0.942c-0.521,0.228-1.112,0.342-1.776,0.342c-0.656,0-1.246-0.114-1.77-0.342c-0.524-0.228-0.967-0.542-1.326-0.942c-0.36-0.4-0.637-0.87-0.828-1.41c-0.192-0.54-0.288-1.122-0.288-1.746C28.236,3.885,28.332,3.29,28.524,2.742z M30.246,5.574c0.084,0.34,0.218,0.646,0.402,0.918c0.184,0.272,0.424,0.49,0.72,0.654s0.656,0.246,1.08,0.246s0.784-0.082,1.08-0.246s0.536-0.382,0.72-0.654c0.185-0.272,0.318-0.578,0.402-0.918c0.084-0.34,0.126-0.69,0.126-1.05c0-0.376-0.042-0.74-0.126-1.092s-0.218-0.666-0.402-0.942c-0.184-0.276-0.424-0.496-0.72-0.66s-0.656-0.246-1.08-0.246s-0.784,0.082-1.08,0.246s-0.536,0.384-0.72,0.66c-0.185,0.276-0.318,0.59-0.402,0.942S30.12,4.148,30.12,4.524C30.12,4.884,30.162,5.234,30.246,5.574zM43.968,0.204v1.584h-4.14v1.98h3.588v1.464h-3.588v3.54h-1.884V0.204H43.968z M51.083,0.204v1.584h-4.14v1.98h3.588v1.464h-3.588v3.54h-1.884V0.204H51.083z";
+    -fx-padding: 4.5 25.5 4.5 25.5;
+}
+.settings .check-box > .box {
+    -fx-padding: 5px 5px 5px 7px;
+    -fx-background-color:
+        -fx-shadow-highlight-color,
+        -fx-outer-border,
+        -fx-inner-border,
+        -fx-body-color,
+        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
+        linear-gradient(to bottom, derive(-fx-color, -22%) 0%, derive(-fx-color, -13%) 20%, derive(-fx-color, -11%) 50%);
+    -fx-background-insets: 0 0 -1 0, 0, 1, 2, 0 0 0 30, 1 1 1 31;
+    -fx-background-radius: 3px, 3px, 2px, 1px, 0 2px 2px 0, 0 1 1 0;
+}
+.settings .check-box:selected > .box {
+    -fx-background-color:
+        -fx-shadow-highlight-color,
+        -fx-outer-border,
+        -fx-inner-border,
+        -fx-body-color,
+        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
+        linear-gradient(to bottom, derive(-fx-default-button, -12%) 0%, derive(-fx-default-button, -3%) 20%, derive(-fx-default-button, -1%) 50%);
+
+    -fx-background-insets: 0 0 -1 0, 0, 1, 2, 0 32 0 0, 1 33 1 1;
+    -fx-background-radius: 3px, 3px, 2px, 1px, 2px 0 0 2px, 1 0 0 1;
+}
+.settings .check-box:focused > .box {
+    -fx-background-color:
+        -fx-focus-color,
+        -fx-inner-border,
+        -fx-body-color,
+        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
+        linear-gradient(to bottom, derive(-fx-color, -22%) 0%, derive(-fx-color, -13%) 20%, derive(-fx-color, -11%) 50%);
+    -fx-background-insets: -0.2, 1, 2, 1 1 1 30, 1 1 1 31;
+    -fx-background-radius: 3px, 2px, 1px, 0 2px 2px 0, 0 1 1 0;
+}
+.settings .check-box:focused:selected > .box {
+    -fx-background-color:
+        -fx-focus-color,
+        -fx-inner-border,
+        -fx-body-color,
+        linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
+        linear-gradient(to bottom, derive(-fx-default-button, -12%) 0%, derive(-fx-default-button, -3%) 20%, derive(-fx-default-button, -1%) 50%);
+    -fx-background-insets: -0.2, 1, 2, 1 32 1 1, 1 33 1 1;
+    -fx-background-radius: 3px, 2px, 1px, 2px 0 0 2px, 1 0 0 1;
+}
+#playControls * {
+    -fx-content-display: graphic-only;
+}
+#playControls > * > Pane {
+    -fx-background-color: white,#666;
+    -fx-background-insets: 1 0 -1 0, 0;
+}
+#playControls > #startBtn > Pane {
+    -fx-shape: "M27.05,532h-0.782c-0.333,0-0.602,0.273-0.602,0.61v14.659c0,0.338,0.269,0.61,0.602,0.61h0.782c0.332,0,0.602-0.272,0.602-0.61V532.61C27.652,532.273,27.382,532,27.05,532zM38.9,532l-9.263,7.94l9.263,7.939V532z";
+}
+#playControls > #rwBtn > Pane {
+    -fx-shape: "M64.866,531.999l-8.818,7.965l8.818,7.964v-6.796l7.301,6.796v-15.929l-7.301,6.797V531.999z";
+}
+#playControls > #playBtn:selected  > Pane {
+    -fx-shape: "M20.716,531.999c-0.665,0-1.204,0.542-1.204,1.212v13.328c0,0.671,0.539,1.213,1.204,1.213h2.188c0.665,0,1.203-0.542,1.203-1.213v-13.328c0-0.67-0.538-1.212-1.203-1.212H20.716zM10.87,531.999c-0.665,0-1.204,0.542-1.204,1.212v13.328c0,0.671,0.539,1.213,1.204,1.213h2.188c0.665,0,1.203-0.542,1.203-1.213v-13.328c0-0.67-0.539-1.212-1.203-1.212H10.87z";
+}
+#playControls > #playBtn> Pane {
+    -fx-shape: "M0,531.999l8.667,8L0,548V531.999z";
+}
+#playControls > #ffBtn > Pane {
+    -fx-shape: "M82.09,532v6.606L74.833,532v15.832l7.257-6.606v6.606l8.576-7.916L82.09,532z";
+}
+#playControls > #endBtn > Pane {
+    -fx-shape: "M52.525,532c-0.333,0-0.602,0.273-0.602,0.611v14.669c0,0.337,0.27,0.611,0.602,0.611h0.782c0.333,0,0.602-0.274,0.602-0.611v-14.669c0-0.338-0.27-0.611-0.602-0.611H52.525zM40.667,532v15.892l9.27-7.946L40.667,532z";
+}
+.tool-bar #loopBtn Pane {
+    -fx-shape: "M103.31,539.442v-2.544h-6.487c-0.907,0-1.646,0.738-1.646,1.646v1.637l-2.512,2.526v-4.163c0-2.296,1.861-4.157,4.157-4.157h6.487v-2.392l4.034,3.724L103.31,539.442z M92.753,544.033l4.034,3.725v-2.393h6.487c2.296,0,4.157-1.861,4.157-4.157v-4.163l-2.512,2.526v1.637c0,0.907-0.738,1.646-1.646,1.646h-6.487v-2.544L92.753,544.033z";
+}
+.timeline-display {
+    -fx-font-size: 10px;
+    -fx-font-weight: bold;
+    -fx-padding: 6 6 4 6;
+}
+.timeline-display .background {
+    -fx-background-color: white,#b8c3a6;
+    -fx-background-insets: 1 0 -1 0,0;
+    -fx-background-radius: 6, 6;
+    -fx-effect: innershadow(gaussian, #52574abb, 5, 0, 0, 2);
+}
+.timeline-display Text {
+    -fx-fill: #52574a;
+}
+.timeline-display .bar {
+    -fx-border-color: #52574a;
+}
+.timeline-display .progress {
+    -fx-background-color: #52574a;
+}
\ No newline at end of file