MainFrame.fxml 334.64 KiB
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.input.*?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.Insets?>
<?import javafx.geometry.Rectangle2D?>
<?import javafx.scene.control.Accordion?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.ColorPicker?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuButton?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.control.Slider?>
<?import javafx.scene.control.Spinner?>
<?import javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.Tab?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.control.ToggleButton?>
<?import javafx.scene.control.Tooltip?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane fx:id="anchorpaneRoot" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="708.0" prefWidth="1198.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.amap.lidar.amapvox.gui.MainFrameController">
<children>
<VBox AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" AnchorPane.bottomAnchor="0.0" >
<children>
<MenuBar prefHeight="25.0" prefWidth="800.0" >
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionButtonAddTaskToListView" text="Open (Ctrl+O)">
<accelerator>
<KeyCodeCombination alt="UP" code="O" control="ANY" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="false" onAction="#onActionButtonSave" text="Save (Ctrl+S)">
<accelerator>
<KeyCodeCombination alt="UP" code="S" control="ANY" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="false" onAction="#onActionButtonExecute" text="Execute" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem fx:id="menuitemClearWindow" mnemonicParsing="false" onAction="#onActionMenuitemClearWindow" text="Clear window" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem fx:id="menuItemUpdate" mnemonicParsing="false" onAction="#onActionMenuItemUpdate" text="Update" />
</items>
</Menu>
</menus>
</MenuBar>
<SplitPane fx:id="splitPaneVoxelization" dividerPositions="0.3" VBox.vgrow="ALWAYS" >
<items>
<AnchorPane>
<children>
<SplitPane dividerPositions="0.3" orientation="VERTICAL" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<AnchorPane>
<children>
<TitledPane animated="false" collapsible="false" text="Input (configuration) file(s)" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<AnchorPane>
<children>
<ListView fx:id="listViewTaskList" AnchorPane.bottomAnchor="30.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<tooltip>
<Tooltip text="List of imported configurations files." />
</tooltip>
</ListView>
<HBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
<children>
<MenuButton mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemTaskSelectionAll" text="All" />
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemTaskSelectionNone" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemoveTaskFromListView">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
<tooltip>
<Tooltip text="Close the selected input (configuration) file(s)" />
</tooltip>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonAddTaskToListView">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
<tooltip>
<Tooltip text="Import a configuration file." />
</tooltip>
</Button>
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<Button fx:id="buttonLoadSelectedTask" disable="true" mnemonicParsing="false" onAction="#onActionButtonLoadSelectedTask" text="Load">
<tooltip>
<Tooltip text="Load the selected task parameters into the frame" />
</tooltip>
</Button>
<Button fx:id="buttonExecute" disable="true" mnemonicParsing="false" onAction="#onActionButtonExecuteSelected" text="Execute">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/start_2.png" />
</image>
</ImageView>
</graphic>
<tooltip>
<Tooltip text="Execute the selected input file(s)" />
</tooltip>
</Button>
</children>
</HBox>
</children>
</HBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</AnchorPane>
<AnchorPane>
<children>
<TitledPane animated="false" collapsible="false" text="Output file(s)" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<AnchorPane>
<children>
<ListView fx:id="listViewProductsFiles" AnchorPane.bottomAnchor="30.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<tooltip>
<Tooltip text="List of exported files." />
</tooltip>
</ListView>
<HBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
<children>
<MenuButton mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemSelectionAll" text="All" />
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemSelectionNone" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemoveVoxelFileFromListView">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
<tooltip>
<Tooltip text="Close the selected ouput file(s)" />
</tooltip>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonAddVoxelFileToListView">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
<tooltip>
<Tooltip text="Add an output file" />
</tooltip>
</Button>
</children>
</HBox>
</children>
</HBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</AnchorPane>
<AnchorPane>
<children>
<TitledPane animated="false" collapsible="false" contentDisplay="RIGHT" pickOnBounds="false" text="Logs" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<AnchorPane>
<children>
<TextArea fx:id="textAreaLog" editable="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
</children>
<padding>
<Insets bottom="-1.0" left="-1.0" right="-1.0" top="-1.0" />
</padding>
</AnchorPane>
</content>
<graphic>
<HBox spacing="5.0">
<children>
<Button contentDisplay="CENTER" mnemonicParsing="false" onAction="#onActionButtonClearLog" text="Clear" />
<Button contentDisplay="CENTER" mnemonicParsing="false" onAction="#onActionButtonExportLog" text="Export" />
</children>
</HBox>
</graphic>
</TitledPane>
</children>
</AnchorPane>
</items>
</SplitPane>
</children>
</AnchorPane>
<AnchorPane>
<children>
<VBox AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" AnchorPane.bottomAnchor="0.0" >
<children>
<ToolBar>
<items>
<Button fx:id="saveToolbarButton" mnemonicParsing="false" onAction="#onActionButtonSave">
<graphic>
<ImageView pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/toolbar/save-as.png" />
</image>
</ImageView>
</graphic>
<padding>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</padding>
<tooltip>
<Tooltip text="Save the current configuration (Ctrl+S)" />
</tooltip>
</Button>
<Button fx:id="executeToolbarButton" mnemonicParsing="false" onAction="#onActionButtonExecute">
<graphic>
<ImageView pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/toolbar/run-play.png" />
</image>
</ImageView>
</graphic>
<padding>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</padding>
<tooltip>
<Tooltip text="Execute current configuration(s)" />
</tooltip>
</Button>
</items>
</ToolBar>
<TabPane fx:id="tabPaneMain" tabClosingPolicy="UNAVAILABLE" VBox.vgrow="ALWAYS" >
<tabs>
<Tab fx:id="tabVoxelization" text="Voxelization">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<TabPane fx:id="tabPaneVoxelization" prefHeight="365.0" prefWidth="451.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<tabs>
<Tab fx:id="tabVoxelizationInput" text="Input">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Input mode" />
<ComboBox fx:id="inputModeComboBox" prefWidth="180.0" />
</children>
<padding>
<Insets left="15.0" top="15.0" bottom="15.0" />
</padding>
</HBox>
<TitledPane fx:id="inputALSTitledPane" animated="false" expanded="false" text="ALS">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="15.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<ComboBox fx:id="comboboxModeALS" prefWidth="180.0" promptText="Choose mode..." />
<CheckBox fx:id="checkboxMultiFiles" mnemonicParsing="false" text="Multi-files" />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<VBox HBox.hgrow="ALWAYS" spacing="10.0">
<children>
<VBox>
<children>
<Label text="Input file(s)" />
<HBox>
<children>
<TextField fx:id="textFieldInputFileALS" prefHeight="25.0" prefWidth="280.0" HBox.hgrow="ALWAYS" />
<Button contentDisplay="CENTER" mnemonicParsing="false" onAction="#onActionButtonOpenInputFileALS" text="..." />
</children>
</HBox>
</children>
</VBox>
<VBox>
<children>
<Label text="Trajectory file" />
<HBox fx:id="hboxTrajectoryFile">
<children>
<TextField fx:id="textFieldTrajectoryFileALS" prefHeight="25.0" prefWidth="280.0" HBox.hgrow="ALWAYS" />
<Button fx:id="buttonOpenTrajectoryFileALS" mnemonicParsing="false" onAction="#onActionButtonOpenTrajectoryFileALS" text="..." />
</children>
</HBox>
</children>
</VBox>
</children>
</VBox>
<Button mnemonicParsing="false" onAction="#onActionButtonExportALSLidarShots" >
<graphic>
<ImageView fitHeight="24.0" fitWidth="24.0" pickOnBounds="true">
<image>
<Image url="@icons/lidar-shot.png" />
</image>
<viewport>
<Rectangle2D />
</viewport>
</ImageView>
</graphic>
<tooltip>
<Tooltip text="Compute lidar shots" />
</tooltip>
</Button>
</children>
</HBox>
<!--<Button mnemonicParsing="false" onAction="#onActionButtonGenerateShotsFile" prefHeight="26.0" prefWidth="146.0" text="Generate shots file" />-->
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane fx:id="inputTLSTitledPane" animated="false" expanded="false" text="TLS">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="15.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<ComboBox fx:id="comboboxModeTLS" prefWidth="180.0" promptText="Choose mode..." />
<VBox>
<children>
<Label text="Input file" />
<HBox spacing="10.0" alignment="CENTER_LEFT" >
<children>
<TextField fx:id="textFieldInputFileTLS" disable="true" editable="false" prefHeight="25.0" prefWidth="300.0" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenInputFileTLS" text="..." />
</children>
</HBox>
</children>
</VBox>
<VBox spacing="10.0">
<children>
<Label text="Imported scans:" />
<ListView fx:id="listviewRxpScans" prefHeight="150.0" prefWidth="300.0" disable="true" />
</children>
<padding>
<Insets left="20.0" />
</padding>
</VBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Output">
<content>
<AnchorPane AnchorPane.rightAnchor="0.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane fx:id="outputALSTitledPane" animated="false" expanded="false" text="ALS">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<VBox spacing="15.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<VBox spacing="10.0">
<children>
<Label text="Output file/path" />
<HBox spacing="5.0">
<children>
<TextField fx:id="textFieldOutputFileALS" prefHeight="25.0" prefWidth="280.0" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenOutputFileALS" text="..." />
</children>
</HBox>
</children>
</VBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<CheckBox fx:id="checkboxMultiResAfterMode2" mnemonicParsing="false" text="Correct NaNs" />
<fx:include fx:id="helpButtonNaNsCorrection" source="HelpButton.fxml" />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Threshold" />
<TextField fx:id="textfieldNbSamplingThresholdMultires" prefHeight="26.0" prefWidth="60.0" text="1" />
</children>
</HBox>
</children>
</HBox>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox spacing="10.0">
<children>
<CheckBox fx:id="checkboxCalculateGroundEnergy" mnemonicParsing="false" text="Calculate ground energy" />
<fx:include fx:id="helpButtonGroundEnergy" source="HelpButton.fxml" />
</children>
</HBox>
<VBox fx:id="vboxGroundEnergy" spacing="10.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<Label fx:id="labelOutputFileGroundEnergy" text="Output file" />
<TextField fx:id="textFieldOutputFileGroundEnergy" prefHeight="25.0" prefWidth="300" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenOutputFileGroundEnergy" text="..." />
<Label fx:id="labelGroundEnergyFormat" text="Format" />
<ComboBox fx:id="comboboxGroundEnergyOutputFormat" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</HBox>
</children>
</VBox>
</children>
</VBox>
</children>
</VBox>
</AnchorPane>
</content>
</TitledPane>
<TitledPane fx:id="outputTLSTitledPane" animated="false" expanded="false" text="TLS">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<VBox spacing="15.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<VBox spacing="10.0">
<children>
<Label fx:id="labelTLSOutputPath" text="Output path" />
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<TextField fx:id="textFieldOutputPathTLS" prefHeight="25.0" prefWidth="300.0" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenOutputPathTLS" text="..." />
</children>
</HBox>
</children>
</VBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<CheckBox fx:id="checkboxMergeAfter" mnemonicParsing="false" selected="true" text="Merge voxel files" />
<TextField fx:id="textFieldMergedFileName" prefHeight="25.0" prefWidth="103.0" text="merged.vox" />
</children>
</HBox>
</children>
</VBox>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Output format and precision">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Label text="Voxel file format" wrapText="true" />
<ComboBox fx:id="comboboxVoxOutputFormat" promptText="Choose format" />
<fx:include fx:id="helpButtonOutputFormat" source="HelpButton.fxml" />
<Label text="Fraction digits:" />
<Spinner fx:id="spinnerFractionDigits" prefWidth="72.0" BorderPane.alignment="CENTER" />
<fx:include fx:id="helpButtonFractionDigits" source="HelpButton.fxml" />
</children>
</HBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Exported output variables">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox spacing="10.0">
<children>
<Label prefHeight="23.0" text="Selected which variables will be exported" wrapText="true" />
<fx:include fx:id="helpButtonOutputVariables" source="HelpButton.fxml" />
</children>
</HBox>
<HBox spacing="10.0">
<children>
<VBox spacing="10.0">
<children>
<CheckBox fx:id="bsInterceptedBox" mnemonicParsing="false" selected="true" text="Intercepted beam surface">
<tooltip>
<Tooltip text="Unit: metre^2, description: Cumulated ray beam surface intercepted inside a voxel. " />
</tooltip>
</CheckBox>
<CheckBox fx:id="bsEnteringBox" mnemonicParsing="false" selected="true" text="Entering beam surface">
<tooltip>
<Tooltip text="Unit: metre^2, description: Cumulated ray beam surface entering a voxel. " />
</tooltip>
</CheckBox>
<CheckBox fx:id="angleMeanBox" mnemonicParsing="false" selected="true" text="Mean ray angle">
<tooltip>
<Tooltip text="Unit: degree, Description: Mean zenithal angle. Zenithal angle defined as angle between zenith (origin at the ground) and shot direction." />
</tooltip>
</CheckBox>
<CheckBox fx:id="padbvTotalBox" disable="true" mnemonicParsing="false" selected="true" text="Plant area density ">
<tooltip>
<Tooltip text="(Exported by default)" />
</tooltip>
</CheckBox>
</children>
</VBox>
<VBox spacing="10.0">
<children>
<CheckBox fx:id="nbEchoesBox" mnemonicParsing="false" selected="true" text="Number of echoes">
<tooltip>
<Tooltip text="Unit: scalar, description: Number of echoes inside a voxel. " />
</tooltip>
</CheckBox>
<CheckBox fx:id="lgTotalBox" mnemonicParsing="false" selected="true" text="Cumulated ray length">
<tooltip>
<Tooltip text="Unit: metre, description: Sum of ray length inside a voxel." />
</tooltip>
</CheckBox>
<CheckBox fx:id="lMeanTotalBox" mnemonicParsing="false" selected="true" text="Mean ray length">
<tooltip>
<Tooltip text="Unit: metre, description: Cumulated ray length weighted by number or rays" />
</tooltip>
</CheckBox>
<CheckBox fx:id="groundDistanceBox" mnemonicParsing="false" selected="true" text="Ground distance">
<tooltip>
<Tooltip text="Unit: metre, description: distance from voxel centre to ground level." />
</tooltip>
</CheckBox>
</children>
</VBox>
<VBox spacing="10.0">
<children>
<CheckBox fx:id="bsPotentialBox" mnemonicParsing="false" selected="true" text="Potential beam surface">
<tooltip>
<Tooltip text="Unit: metre^2, description: Cumulated ray beam surface going through a voxel free of any vegetation." />
</tooltip>
</CheckBox>
<CheckBox fx:id="transmittanceBox" mnemonicParsing="false" selected="true" text="Estimated transmittance">
<tooltip>
<Tooltip text="Unit: ?, description: Numerical estimation of the transmittance. Refer to user guide for computational details." />
</tooltip>
</CheckBox>
<CheckBox fx:id="nbSamplingBox" mnemonicParsing="false" selected="true" text="Number of rays">
<tooltip>
<Tooltip text="Unit: scalar, description: Number of rays entering a voxel. " />
</tooltip>
</CheckBox>
<CheckBox fx:id="distLaserBox" mnemonicParsing="false" selected="false" text="Mean distance to laser">
<tooltip>
<Tooltip text="Unit: metre, description: the mean distance of voxel centre to shot origin." />
</tooltip>
</CheckBox>
</children>
</VBox>
<VBox spacing="10.0">
<children>
<CheckBox fx:id="sdLengthBox" mnemonicParsing="false" selected="false" text="Ray length SD">
<tooltip>
<Tooltip text="Unit: square metre, description: ray length standard deviation." />
</tooltip>
</CheckBox>
<CheckBox fx:id="attenuationBox" mnemonicParsing="false" selected="true" text="Attenuation coefficient">
<tooltip>
<Tooltip text="Unit: dimensionless, description: estimator of the attenuation coefficient." />
</tooltip>
</CheckBox>
<CheckBox fx:id="explorationBox" mnemonicParsing="false" selected="false" text="Exploration rate">
<tooltip>
<Tooltip text="Unit: dimensionless, description: sampling intensity at subvoxel scale." />
</tooltip>
</CheckBox>
</children>
</VBox>
</children>
<padding>
<Insets left="25.0" />
</padding>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Plant Area Density">
<content>
<AnchorPane>
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" prefHeight="26.0" prefWidth="293.0" spacing="5.0">
<children>
<Label text="PAD max" />
<TextField fx:id="textFieldPADMax" prefHeight="25.0" prefWidth="72.0" text="5" />
<MenuButton fx:id="menuButtonAdvisablePADMaxValues" mnemonicParsing="false" prefHeight="26.0" prefWidth="146.0" text="Advised value" />
</children>
</HBox>
<Button mnemonicParsing="false" onAction="#onActionButtonResetPadLimitsToDefault" text="Reset to default" />
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Estimated transmittance">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Estimated transmittance parameters" />
<fx:include fx:id="helpButtonTrNumEstim" source="HelpButton.fxml" />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Error (10^-n)" />
<Spinner fx:id="spinnerTrNumError" prefWidth="72.0" BorderPane.alignment="CENTER" />
<fx:include fx:id="helpButtonTrNumError" source="HelpButton.fxml" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Fallback error (10^-n)" />
<Spinner fx:id="spinnerTrNumFallbackError" prefWidth="72.0" BorderPane.alignment="CENTER" />
<fx:include fx:id="helpButtonTrNumFallbackError" source="HelpButton.fxml" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Fallback mode trigger" />
<TextField fx:id="textFieldTrNumNRecordMax" disable="true" prefHeight="25.0" prefWidth="72.0" text="0" />
<fx:include fx:id="helpButtonTrNumNRecordMax" source="HelpButton.fxml" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Change outputs variables parameters." />
</tooltip>
</Tab>
<Tab text="Transformation">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<TitledPane animated="false" collapsible="false" text="Transformation matrix">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox spacing="5.0">
<children>
<VBox spacing="5.0">
<children>
<TextField fx:id="labelM00" promptText="m00" />
<TextField fx:id="labelM10" promptText="m10" />
<TextField fx:id="labelM20" promptText="m20" />
<TextField fx:id="labelM30" promptText="m30" />
</children>
</VBox>
<VBox spacing="5.0">
<children>
<TextField fx:id="labelM01" promptText="m01" />
<TextField fx:id="labelM11" promptText="m11" />
<TextField fx:id="labelM21" promptText="m21" />
<TextField fx:id="labelM31" promptText="m31" />
</children>
</VBox>
<VBox spacing="5.0">
<children>
<TextField fx:id="labelM02" promptText="m02" />
<TextField fx:id="labelM12" promptText="m12" />
<TextField fx:id="labelM22" promptText="m22" />
<TextField fx:id="labelM32" promptText="m32" />
</children>
</VBox>
<VBox spacing="5.0">
<children>
<TextField fx:id="labelM03" promptText="m03" />
<TextField fx:id="labelM13" promptText="m13" />
<TextField fx:id="labelM23" promptText="m23" />
<TextField fx:id="labelM33" promptText="m33" />
</children>
</VBox>
</children>
</HBox>
<Button mnemonicParsing="false" onAction="#onActionButtonResetToIdentity" text="Clear transformation" />
<GridPane hgap="5.0">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" prefWidth="150" />
<ColumnConstraints hgrow="NEVER" prefWidth="120" />
<ColumnConstraints hgrow="NEVER" prefWidth="25" />
<ColumnConstraints hgrow="NEVER" prefWidth="150" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="buttonOpenPopMatrixFile" disable="true" mnemonicParsing="false" onAction="#onActionButtonOpenPopMatrixFile" text="Open file" GridPane.columnIndex="3">
<tooltip>
<Tooltip text="Matrix file or Rsp file allowed" />
</tooltip>
</Button>
<CheckBox fx:id="checkboxUsePopMatrix" disable="true" mnemonicParsing="false" onAction="#onActionCheckboxUsePopMatrix" selected="true" text="Use POP matrix">
<tooltip>
<Tooltip text="Project Orientation and Position matrix" />
</tooltip>
</CheckBox>
<CheckBox fx:id="checkboxUseSopMatrix" disable="true" mnemonicParsing="false" onAction="#onActionCheckboxUseSopMatrix" selected="true" text="Use SOP matrix" GridPane.rowIndex="1">
<tooltip>
<Tooltip text="System Orientation and Position matrix" />
</tooltip>
</CheckBox>
<CheckBox fx:id="checkboxUseVopMatrix" mnemonicParsing="false" onAction="#onActionCheckboxUseVopMatrix" text="Use VOP matrix" GridPane.rowIndex="2">
<tooltip>
<Tooltip text="Voxel Orientation and Position matrix" />
</tooltip>
</CheckBox>
<CheckBox fx:id="checkBoxUseDefaultSopMatrix" disable="true" mnemonicParsing="false" selected="true" text="Use default" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<CheckBox fx:id="checkBoxUseDefaultPopMatrix" disable="true" mnemonicParsing="false" selected="true" text="Use default" GridPane.columnIndex="1" />
<Label alignment="BOTTOM_CENTER" text="or" GridPane.columnIndex="2" />
<Button fx:id="buttonOpenSopMatrixFile" disable="true" mnemonicParsing="false" onAction="#onActionButtonOpenSopMatrixFile" text="Open file" GridPane.columnIndex="3" GridPane.rowIndex="1">
<tooltip>
<Tooltip text="Matrix file or Rsp file allowed" />
</tooltip>
</Button>
<Label alignment="BOTTOM_CENTER" text="or" GridPane.columnIndex="2" GridPane.rowIndex="1" />
<Button fx:id="buttonSetVOPMatrix" disable="true" mnemonicParsing="false" onAction="#onActionButtonSetVOPMatrix" GridPane.columnIndex="1" GridPane.rowIndex="2">
<graphic>
<ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/Interaction_Transformation.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
</GridPane>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Voxel space">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" collapsible="false" text="Resolution">
<content>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Voxel size (m)" />
<TextField fx:id="textFieldResolution" prefHeight="25.0" prefWidth="70.0" text="1" />
</children>
<padding>
<Insets left="10.0" top="10.0" bottom="10.0" />
</padding>
</HBox>
</content>
</TitledPane>
<TitledPane animated="false" collapsible="false" text="Bounding box">
<content>
<VBox spacing="10.0" >
<children>
<HBox fx:id="hboxAutomaticBBox" alignment="CENTER_LEFT" spacing="5.0">
<children>
<MenuButton mnemonicParsing="false" text="Automatic">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionButtonAutomatic" text="Fast" />
<MenuItem mnemonicParsing="false" onAction="#onActionButtonAutomaticDeepSearch" text="Deep search" />
</items>
</MenuButton>
<fx:include fx:id="helpButtonAutoBBox" source="HelpButton.fxml" />
</children>
</HBox>
<AnchorPane fx:id="anchorpaneBoundingBoxParameters">
<children>
<fx:include fx:id="voxelSpacePanelVoxelization" source="VoxelSpacePanel.fxml" />
</children>
</AnchorPane>
</children>
</VBox>
</content>
</TitledPane>
<TitledPane animated="false" collapsible="false" text="Sub voxel space">
<content>
<HBox spacing="10" alignment="CENTER_LEFT" >
<children>
<Label text="Sub voxel division"></Label>
<TextField fx:id="textFieldSubVoxel" prefWidth="50.0" text="2" />
<fx:include fx:id="helpButtonSubVoxel" source="HelpButton.fxml" />
</children>
<padding>
<Insets left="10.0" top="10.0" bottom="10.0" />
</padding>
</HBox>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Filters">
<content>
<AnchorPane>
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" text="Digital Terrain Model">
<content>
<AnchorPane>
<children>
<VBox spacing="15.0" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0">
<children>
<CheckBox fx:id="checkboxUseDTMFilter" mnemonicParsing="false" onAction="#onActionCheckboxUseDTMFilter" text="DTM filter" />
<VBox spacing="15.0">
<children>
<VBox spacing="10.0">
<children>
<Label fx:id="labelDTMPath" disable="true" text="DTM path (.asc)" />
<HBox>
<children>
<TextField fx:id="textfieldDTMPath" disable="true" editable="false" HBox.hgrow="ALWAYS" />
<Button fx:id="buttonOpenDTMFile" disable="true" mnemonicParsing="false" onAction="#onActionButtonOpenDTMFile" text="..." />
</children>
</HBox>
</children>
</VBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label fx:id="labelDTMValue" disable="true" text="Offset (distance above ground)" />
<TextField fx:id="textfieldDTMValue" disable="true" prefHeight="25.0" prefWidth="55.0" text="1" />
</children>
</HBox>
<CheckBox fx:id="checkboxApplyVOPMatrix" disable="true" mnemonicParsing="false" selected="true" text="Apply VOP matrix" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</VBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Shots">
<content>
<AnchorPane>
<children>
<VBox spacing="15.0" AnchorPane.bottomAnchor="10" AnchorPane.leftAnchor="10" AnchorPane.rightAnchor="10" AnchorPane.topAnchor="10">
<children>
<HBox spacing="10.0">
<children>
<CheckBox fx:id="checkboxShotDecimation" contentDisplay="RIGHT" mnemonicParsing="false" text="Shot decimation" />
<fx:include fx:id="buttonHelpShotDecimation" source="HelpButton.fxml" />
</children>
</HBox>
<HBox fx:id="hBoxShotDecimation" alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Decimation factor" />
<TextField fx:id="textfieldDecimationFactor" prefHeight="26.0" prefWidth="60.0" text="10" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</HBox>
<VBox spacing="10.0">
<children>
<HBox spacing="10.0">
<children>
<CheckBox fx:id="checkboxShotConsistency" contentDisplay="RIGHT" disable="false" mnemonicParsing="false" selected="true" text="Discard inconsistent shots" />
<fx:include fx:id="buttonHelpShotConsistency" source="HelpButton.fxml" />
</children>
</HBox>
<VBox spacing="10.0">
<children>
<CheckBox contentDisplay="RIGHT" disable="true" mnemonicParsing="false" selected="true" text="Discard shots with any interlaid blank echo" />
<CheckBox contentDisplay="RIGHT" disable="true" mnemonicParsing="false" selected="true" text="Discard shots with echo distances not monotically increasing" />
<CheckBox fx:id="checkboxBlankEchoDiscarded" contentDisplay="RIGHT" disable="false" mnemonicParsing="false" selected="false" text="Discard shots with any blank echo" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</VBox>
</children>
</VBox>
<HBox spacing="10.0">
<children>
<CheckBox fx:id="checkboxShotAttributeFilter" contentDisplay="RIGHT" mnemonicParsing="false" text="Attribute filtering" />
<fx:include fx:id="buttonHelpShotAttributeFilter" source="HelpButton.fxml" />
</children>
</HBox>
<VBox fx:id="vBoxShotAttributeFilter" spacing="10.0">
<children>
<ListView fx:id="listviewFilters" prefHeight="125.0" prefWidth="325.0" />
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonAddFilter" text="Add filter">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonRemoveFilter" text="Remove filter">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
<padding>
<Insets left="25.0" />
</padding>
</VBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<CheckBox fx:id="checkboxEmptyShotsFilter" contentDisplay="RIGHT" disable="true" mnemonicParsing="false" text="False empty shots removal (TLS only)" />
<fx:include fx:id="buttonHelpEmptyShotsFilter" source="HelpButton.fxml" />
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Point cloud">
<content>
<AnchorPane>
<children>
<VBox spacing="15.0" AnchorPane.bottomAnchor="10" AnchorPane.leftAnchor="10" AnchorPane.rightAnchor="10" AnchorPane.topAnchor="10">
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<CheckBox fx:id="checkboxUsePointcloudFilter" mnemonicParsing="false" onAction="#onActionCheckboxUsePointcloudFilter" text="Point cloud filter" />
<HBox fx:id="hBoxPointCloudFiltering" spacing="10.0">
<children>
<Button fx:id="buttonAddPointcloudFilter" disable="true" mnemonicParsing="false" onAction="#onActionButtonAddPointcloudFilter" text="Add">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonGetBoundingBox" text="Get bounding-box" />
</children>
</HBox>
</children>
</HBox>
<VBox fx:id="vBoxPointCloudFiltering" spacing="15.0">
<padding>
<Insets left="25.0" />
</padding>
</VBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Echo">
<content>
<AnchorPane>
<children>
<VBox spacing="15.0" AnchorPane.bottomAnchor="10" AnchorPane.leftAnchor="10" AnchorPane.rightAnchor="10" AnchorPane.topAnchor="10">
<children>
<CheckBox fx:id="checkboxEchoFilterByShotID" mnemonicParsing="false" text="By shot index and echo rank" />
<VBox fx:id="vboxEchoFilterByShotID" spacing="10.0">
<children>
<Label text="Echo filtering CSV file" />
<HBox>
<children>
<TextField fx:id="textFieldEchoFilterByShotID" editable="false" HBox.hgrow="ALWAYS" />
<Button fx:id="buttonOpenEchoFilterByShotID" disable="true" mnemonicParsing="false" onAction="#onActionButtonOpenEchoFilteringFile" text="..." />
</children>
</HBox>
<HBox spacing="7.0">
<children>
<Label text="Filter behaviour: discard or retain echoes ?" />
<ComboBox fx:id="comboboxEchoFiltering" />
</children>
</HBox>
</children>
<padding>
<Insets left="25.0" />
</padding>
</VBox>
<CheckBox fx:id="checkboxEchoFilterByAttributes" mnemonicParsing="false" text="By echo attributes (TLS only)" />
<VBox fx:id="vboxEchoFilterByAttribute">
<children>
<fx:include fx:id="anchorPaneEchoFilteringRxp" source="FilteringPaneComponent.fxml" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</VBox>
<CheckBox fx:id="checkboxEchoFilterByClass" mnemonicParsing="false" text="By echo class (ALS only)" />
<VBox fx:id="vboxEchoFilterByClass">
<children>
<ListView fx:id="listviewClassifications" prefHeight="125.0" prefWidth="325.0" />
</children>
<padding>
<Insets left="25.0" />
</padding>
</VBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Weighting">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" text="Rank">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox spacing="10.0">
<children>
<CheckBox fx:id="checkboxWeightingByRank" mnemonicParsing="false" text="Echo weighting by rank" />
<fx:include fx:id="helpButtonWeightingByRank" source="HelpButton.fxml" />
</children>
</HBox>
<VBox fx:id="vboxWeightingByRank" spacing="10.0">
<children>
<Label text="Echo range (1...n)" />
<HBox alignment="CENTER_LEFT">
<children>
<Label style="-fx-rotate: -90;" text="Echoes number (1...n)">
<HBox.margin>
<Insets left="-55.0" right="-55.0" />
</HBox.margin>
</Label>
<TextArea fx:id="textAreaWeighting" prefHeight="144.0" prefWidth="295.0" HBox.hgrow="ALWAYS" />
</children>
</HBox>
<Button mnemonicParsing="false" text="Reset to default values" onAction="#onActionButtonFillDefaultWeight" />
</children>
</VBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" text="CSV">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox fx:id="vboxWeightingByFile" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<CheckBox fx:id="checkboxWeightingByFile" mnemonicParsing="false" text="Echo weighting from CSV file" />
<Label text="Weighting CSV file" />
<HBox fx:id="hboxWeightingFile">
<children>
<TextField fx:id="textFieldWeightingFile" prefHeight="25.0" prefWidth="280.0" HBox.hgrow="ALWAYS" />
<Button fx:id="buttonOpenWeightingFile" mnemonicParsing="false" onAction="#onActionButtonOpenWeightingFile" text="..." />
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Scanner">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<TitledPane animated="false" collapsible="false" text="Laser specification">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<ComboBox fx:id="comboboxLaserSpecification" prefHeight="26.0" prefWidth="166.0" />
<CheckBox fx:id="checkboxCustomLaserSpecification" mnemonicParsing="false" text="Custom" />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<Label text="Beam diameter at exit (m)" />
<TextField fx:id="textFieldBeamDiameterAtExit" disable="true" prefHeight="26.0" prefWidth="80.0" text="0.0003" />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="2.0">
<children>
<Label text="Beam divergence (radians)" />
<TextField fx:id="textFieldBeamDivergence" disable="true" prefHeight="26.0" prefWidth="80.0" text="0.005" />
</children>
</HBox>
<CheckBox fx:id="checkboxMonoEcho" disable="true" prefHeight="26.0" text="Mono-echo">
<tooltip>
<Tooltip text="Selected = mono-echo, unselected = multi-echo" />
</tooltip>
</CheckBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Leaf">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" collapsible="false" text="Leaf Angle Distribution (LAD)">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<RadioButton fx:id="radiobuttonLADHomogeneous" mnemonicParsing="false" selected="true" text="Homogeneous" />
<RadioButton fx:id="radiobuttonLADLocalEstimation" disable="true" mnemonicParsing="false" text="Local estimation" />
<ComboBox fx:id="comboboxLADChoice" prefWidth="170.0" />
<HBox fx:id="hboxTwoBetaParameters" spacing="15.0" visible="false">
<children>
<Label fx:id="labelLADAlpha" text="α">
<font>
<Font size="15.0" />
</font>
<graphic>
<TextField fx:id="textFieldTwoBetaAlphaParameter" prefHeight="26.0" prefWidth="60.0" />
</graphic>
</Label>
<Label fx:id="labelLADBeta" text="β">
<font>
<Font size="15.0" />
</font>
<graphic>
<TextField fx:id="textFieldTwoBetaBetaParameter" prefHeight="26.0" prefWidth="60.0" />
</graphic>
</Label>
</children>
</HBox>
<GridPane hgap="5.0" vgap="5.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" />
<ColumnConstraints hgrow="SOMETIMES" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onActionButtonDisplayPdf" text="Display PDF" />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onActionButtonDisplayGTheta" text="Display GTheta" GridPane.rowIndex="1" />
<Button mnemonicParsing="false" onAction="#onActionButtonSavePdf" GridPane.columnIndex="1">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/save.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonSaveGTheta" GridPane.columnIndex="1" GridPane.rowIndex="1">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/save.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</GridPane>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" collapsible="false" text="Leaf area">
<content>
<AnchorPane>
<children>
<HBox spacing="10" alignment="CENTER_LEFT" >
<children>
<Label text="Mean single leaf area (square meter)" />
<TextField fx:id="textFieldLeafArea" disable="true" prefHeight="25.0" prefWidth="72.0" text="0.1" />
<fx:include fx:id="helpButtonLeafArea" source="HelpButton.fxml" />
</children>
<padding>
<Insets left="10.0" top="10.0" bottom="10.0" />
</padding>
</HBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
</tabs>
</TabPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Create voxelisation files" />
</tooltip>
</Tab>
<Tab fx:id="tabVoxTools" text="Vox Tools">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<TabPane fx:id="tabPaneVirtualMeasures" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<tabs>
<Tab fx:id="tabVoxelFilesMerging" text="Voxel files merging">
<content>
<AnchorPane>
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox spacing="10.0">
<children>
<Label text="Voxel files" />
<ListView fx:id="listViewVoxMergingVoxelFiles" prefHeight="140.0" prefWidth="315.0" />
<HBox spacing="10.0">
<children>
<MenuButton mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemSelectAllVoxFileFromMergeList" text="All" />
<MenuItem fx:id="menuItemSelectionNone111" mnemonicParsing="false" onAction="#onActionMenuItemUnselectAllVoxFileFromMergeList" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemoveVoxFileFromMergingList">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonAddVoxFileToMergingList">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Output file" />
<TextField fx:id="textFieldOutputFileMerging" editable="false" prefHeight="25.0" prefWidth="280.0" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenOutputFileMerging" text="..." />
</children>
</HBox>
</children>
<padding>
<Insets left="15.0" top="15.0" bottom="15.0" right="15.0" />
</padding>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Merge a list of voxel files into a single" />
</tooltip>
</Tab>
<Tab fx:id="tabButterflyRemover" text="Butterfly remover">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<TitledPane animated="false" collapsible="false" text="Butterfly-remover">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Input file" />
<TextField fx:id="textFieldInputFileButterflyRemover" editable="false" prefHeight="25.0" prefWidth="280.0" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenInputFileButterflyRemover" text="..." />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Output file" />
<TextField fx:id="textFieldOutputFileButterflyRemover" editable="false" prefHeight="25.0" prefWidth="280.0" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenOutputFileButterflyRemover" text="..." />
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Tool to remove isolated voxels" />
</tooltip>
</Tab>
<Tab fx:id="tabTransmittanceMap" text="Transmittance light map">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" text="Input files">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="20.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="14.0">
<children>
<VBox>
<children>
<Label text="Input file (.vox)" />
<HBox>
<children>
<TextField fx:id="textfieldVoxelFilePathTransmittance" prefHeight="26.0" prefWidth="306.0" HBox.hgrow="ALWAYS" />
<Button fx:id="buttonOpenVoxelFileTransmittance" mnemonicParsing="false" onAction="#onActionButtonOpenVoxelFileTransmittance" text="..." />
</children>
</HBox>
</children>
<VBox.margin>
<Insets top="10.0" />
</VBox.margin>
</VBox>
<VBox spacing="5.0">
<children>
<Label text="Output" />
<VBox prefHeight="44.0" prefWidth="358.0" spacing="2.0">
<children>
<HBox spacing="10.0">
<children>
<CheckBox fx:id="checkboxGenerateTextFile" mnemonicParsing="false" text="Generate text file" />
</children>
</HBox>
<HBox fx:id="hboxGenerateTextFile" disable="true">
<children>
<TextField fx:id="textfieldOutputTextFilePath" prefHeight="26.0" prefWidth="308.0" HBox.hgrow="ALWAYS" />
<Button maxWidth="-Infinity" mnemonicParsing="false" onAction="#onActionButtonOpenOutputTextFile" text="..." />
</children>
</HBox>
</children>
</VBox>
<VBox fx:id="vBoxGenerateBitmapFiles" spacing="2.0">
<children>
<CheckBox fx:id="checkboxGenerateBitmapFile" mnemonicParsing="false" selected="true" text="Generate bitmap files" />
<HBox fx:id="hboxGenerateBitmapFiles">
<children>
<TextField fx:id="textfieldOutputBitmapFilePath" prefHeight="26.0" prefWidth="309.0" HBox.hgrow="ALWAYS" />
<Button maxWidth="-Infinity" mnemonicParsing="false" onAction="#onActionButtonOpenOutputBitmapFile" text="..." />
</children>
</HBox>
</children>
</VBox>
</children>
</VBox>
</children>
<padding>
<Insets left="10.0" />
</padding>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Sensor(s)">
<content>
<VBox prefHeight="261.0" prefWidth="423.0" spacing="10.0">
<children>
<VBox prefHeight="131.0" prefWidth="403.0">
<children>
<Label text="Sensor(s) positions" />
<ListView fx:id="listViewTransmittanceMapSensorPositions" prefWidth="315.0" />
<HBox spacing="10.0">
<children>
<MenuButton mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemPositionsTransmittanceMapSelectionAll" text="All" />
<MenuItem fx:id="menuItemSelectionNone11" mnemonicParsing="false" onAction="#onActionMenuItemPositionsTransmittanceMapSelectionNone" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemovePositionTransmittanceMap">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonAddPositionTransmittanceMap">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
</HBox>
</children>
</VBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label fx:id="labelDirectionsNumber" text="Directions number" />
<ComboBox fx:id="comboboxChooseDirectionsNumber" prefHeight="26.0" prefWidth="75.0" />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="4.0">
<children>
<Label text="Plot rotation" />
<TextField fx:id="textfieldDirectionRotationTransmittanceMap" prefHeight="26.0" prefWidth="66.0" text="0" />
<Label text="degrees (anticlockwise)" />
</children>
</HBox>
<CheckBox fx:id="checkboxTransmittanceMapToricity" mnemonicParsing="false" nodeOrientation="RIGHT_TO_LEFT" text="Repetitive scene" />
</children>
</VBox>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Radiative conditions">
<content>
<VBox spacing="10.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<Label text="Latitude (degrees)" />
<TextField fx:id="textfieldLatitudeRadians" prefHeight="25.0" prefWidth="87.0" />
</children>
</HBox>
<VBox>
<children>
<AnchorPane prefHeight="27.0" prefWidth="332.0">
<children>
<HBox alignment="CENTER_LEFT">
<children>
<Label text="Simulation periods" />
</children>
</HBox>
</children>
</AnchorPane>
<TableView fx:id="tableViewSimulationPeriods" editable="true" prefHeight="157.0" prefWidth="336.0">
<columns>
<TableColumn fx:id="tableColumnPeriod" prefWidth="248.0" text="Period" />
<TableColumn fx:id="tableColumnClearness" minWidth="0.0" prefWidth="113.0" text="Clearness" />
</columns>
</TableView>
<HBox spacing="10.0">
<children>
<MenuButton fx:id="menuButtonSelectionPeriodsList" mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemSelectAllPeriods" text="All" />
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemUnselectAllPeriods" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemovePeriodFromPeriodList">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonAddPeriodToPeriodList">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
</HBox>
</children>
</VBox>
</children>
</VBox>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Tool to remove isolated voxels" />
</tooltip>
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/sun.png" />
</image>
</ImageView>
</graphic>
</Tab>
<Tab fx:id="tabCanopyAnalyser" text="Canopy analyzer">
<content>
<AnchorPane prefHeight="405.0" prefWidth="787.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" text="Files">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Label text="Input file (.vox)" />
<HBox alignment="CENTER">
<children>
<TextField fx:id="textfieldVoxelFilePathCanopyAnalyzer" prefHeight="25.0" prefWidth="240.0" HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenVoxelFileCanopyAnalyzer" text="..." />
</children>
</HBox>
<Label text="Output" />
<VBox prefHeight="44.0" prefWidth="358.0" spacing="2.0">
<children>
<HBox spacing="10.0">
<children>
<CheckBox fx:id="checkboxGenerateCanopyAnalyzerTextFile" disable="true" mnemonicParsing="false" selected="true" text="Generate text file" />
<CheckBox fx:id="checkboxGenerateLAI2xxxFormat" mnemonicParsing="false" selected="true" text="LAI2xxx format" />
</children>
</HBox>
<HBox>
<children>
<TextField fx:id="textfieldOutputCanopyAnalyzerTextFile" prefHeight="26.0" prefWidth="291.0" HBox.hgrow="ALWAYS" />
<Button maxWidth="-Infinity" mnemonicParsing="false" onAction="#onActionButtonOpenOutputCanopyAnalyzerTextFile" text="..." />
</children>
</HBox>
</children>
</VBox>
<HBox spacing="10.0">
<children>
<ToggleButton fx:id="toggleButtonLAI2000Choice" mnemonicParsing="false" selected="true" text="LAI2000" />
<ToggleButton fx:id="toggleButtonLAI2200Choice" mnemonicParsing="false" text="LAI2200" />
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Options">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label fx:id="labelDirectionsNumber1" text="Directions number" />
<ComboBox fx:id="comboboxChooseCanopyAnalyzerSampling" prefHeight="26.0" prefWidth="75.0" />
<Button mnemonicParsing="false" onAction="#onActionButtonSaveCanopyAnalyzerDirections">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/save.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
<HBox>
<children>
<Button disable="true" mnemonicParsing="false" onAction="#onActionButtonSetupViewCap" prefHeight="16.0" prefWidth="78.0" text="View cap" />
<TextField fx:id="textFieldViewCapAngleCanopyAnalyzer" disable="true" editable="false" prefHeight="26.0" prefWidth="42.0" promptText="360" />
</children>
</HBox>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Rings masks" />
<GridPane alignment="CENTER" prefHeight="29.0" prefWidth="177.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<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>
<children>
<ToggleButton fx:id="toggleButtonCanopyAnalyzerRingMask1" mnemonicParsing="false" text="1" GridPane.halignment="CENTER" />
<ToggleButton fx:id="toggleButtonCanopyAnalyzerRingMask2" mnemonicParsing="false" text="2" GridPane.columnIndex="1" GridPane.halignment="CENTER" />
<ToggleButton fx:id="toggleButtonCanopyAnalyzerRingMask3" mnemonicParsing="false" text="3" GridPane.columnIndex="2" GridPane.halignment="CENTER" />
<ToggleButton fx:id="toggleButtonCanopyAnalyzerRingMask4" mnemonicParsing="false" text="4" GridPane.columnIndex="3" GridPane.halignment="CENTER" />
<ToggleButton fx:id="toggleButtonCanopyAnalyzerRingMask5" mnemonicParsing="false" text="5" GridPane.columnIndex="4" GridPane.halignment="CENTER" />
</children>
</GridPane>
</children>
</HBox>
<VBox prefHeight="174.0" prefWidth="315.0">
<children>
<Label text="Sensor positions" />
<ListView fx:id="listViewCanopyAnalyzerSensorPositions" prefWidth="315.0" />
<HBox spacing="10.0">
<children>
<MenuButton mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemPositionsCanopyAnalyzerSelectionAll" text="All" />
<MenuItem fx:id="menuItemSelectionNone1" mnemonicParsing="false" onAction="#onActionMenuItemPositionsCanopyAnalyzerSelectionNone" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemovePositionCanopyAnalyzer">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonAddPositionCanopyAnalyzer">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
</HBox>
</children>
</VBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/lai2200.png" />
</image>
</ImageView>
</graphic>
</Tab>
<Tab fx:id="tabHemiPhoto" text="Hemispherical photograph">
<content>
<AnchorPane prefHeight="200.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" text="Input file">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<Label text="Input" />
<fx:include fx:id="helpButtonHemiPhoto" source="HelpButton.fxml" />
</children>
</HBox>
<TabPane fx:id="tabPaneHemiPhotoMode" tabClosingPolicy="UNAVAILABLE">
<tabs>
<Tab fx:id="tabHemiFromScans" text="From hemi scans">
<content>
<VBox prefHeight="141.0" prefWidth="349.0" spacing="4.0">
<children>
<ListView fx:id="listViewHemiPhotoScans" prefHeight="118.0" prefWidth="339.0" />
<HBox spacing="30.0">
<children>
<MenuButton mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemSelectAllScansHemiPhoto" text="All" />
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemUnselectAllScansHemiPhoto" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemoveScanFromHemiPhotoListView">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonOpenRspProject" text="Import scans">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
</HBox>
</children>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
</VBox>
</content>
</Tab>
<Tab fx:id="tabHemiFromPAD" text="From PAD">
<content>
<ScrollPane fitToWidth="true" vbarPolicy="ALWAYS">
<content>
<VBox spacing="5.0">
<children>
<Label text="Input file (.vox)" />
<HBox>
<children>
<TextField fx:id="textfieldVoxelFilePathHemiPhoto" prefHeight="25.0" prefWidth="240.0" />
<Button mnemonicParsing="false" onAction="#onActionButtonOpenVoxelFileHemiPhoto" text="Open" />
</children>
</HBox>
<VBox prefHeight="207.0" prefWidth="332.0">
<children>
<Label text="Sensor positions" />
<ListView fx:id="listViewHemiPhotoSensorPositions" prefHeight="119.0" prefWidth="341.0" />
<HBox spacing="10.0">
<children>
<MenuButton mnemonicParsing="false" text="Selection">
<items>
<MenuItem mnemonicParsing="false" onAction="#onActionMenuItemPositionsHemiPhotoSelectionAll" text="All" />
<MenuItem fx:id="menuItemSelectionNone12" mnemonicParsing="false" onAction="#onActionMenuItemPositionsHemiPhotoSelectionNone" text="None" />
</items>
</MenuButton>
<HBox spacing="5.0">
<children>
<Button mnemonicParsing="false" onAction="#onActionButtonRemovePositionHemiPhoto">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button mnemonicParsing="false" onAction="#onActionButtonAddPositionHemiPhoto">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
</HBox>
</children>
</VBox>
</children>
</VBox>
</content>
</ScrollPane>
</content>
</Tab>
</tabs>
</TabPane>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Output files">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<VBox spacing="5.0">
<children>
<Label text="Output" />
<VBox prefHeight="44.0" prefWidth="358.0" spacing="2.0">
<children>
<CheckBox fx:id="checkboxGenerateSectorsTextFileHemiPhoto" mnemonicParsing="false" text="Generate text file" />
<HBox>
<children>
<TextField fx:id="textfieldHemiPhotoOutputTextFile" prefHeight="26.0" prefWidth="308.0" />
<Button maxWidth="-Infinity" mnemonicParsing="false" onAction="#onActionButtonOpenHemiPhotoOutputTextFile" text="..." />
</children>
</HBox>
</children>
</VBox>
<VBox fx:id="vBoxGenerateBitmapFiles1" spacing="5.0">
<children>
<HBox alignment="CENTER_LEFT" prefHeight="26.0" prefWidth="309.0" spacing="20.0">
<children>
<CheckBox fx:id="checkboxHemiPhotoGenerateBitmapFile" mnemonicParsing="false" selected="true" text="Generate bitmap file" />
<Label contentDisplay="RIGHT" text="Mode">
<graphic>
<ComboBox fx:id="comboboxHemiPhotoBitmapOutputMode" prefHeight="26.0" prefWidth="95.0" />
</graphic>
</Label>
</children>
</HBox>
<HBox>
<children>
<TextField fx:id="textfieldHemiPhotoOutputBitmapFile" prefHeight="26.0" prefWidth="309.0" />
<Button maxWidth="-Infinity" mnemonicParsing="false" onAction="#onActionButtonOpenHemiPhotoOutputBitmapFile" text="..." />
</children>
</HBox>
</children>
</VBox>
</children>
</VBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" expanded="false" text="Options">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0">
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<GridPane vgap="5.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="142.0" minWidth="10.0" prefWidth="138.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="68.0" minWidth="10.0" prefWidth="57.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<TextField fx:id="textfieldPixelNumber" prefHeight="26.0" prefWidth="74.0" text="800" GridPane.columnIndex="1" />
<Label text="Pixel number" />
<TextField fx:id="textfieldAzimutsNumber" prefHeight="26.0" prefWidth="74.0" text="36" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="Azimuts number" GridPane.rowIndex="1" />
<TextField fx:id="textfieldZenithsNumber" prefHeight="26.0" prefWidth="74.0" text="9" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label text="Zeniths number" GridPane.rowIndex="2" />
</children>
</GridPane>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/hemispherical.png" />
</image>
</ImageView>
</graphic>
</Tab>
<Tab fx:id="exportToObjTab" text="OBJ export">
<content>
<fx:include fx:id="objExporter" source="export/ObjExporterDialog.fxml" />
</content>
</Tab>
</tabs>
</TabPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Use some voxelisation tools." />
</tooltip>
</Tab>
<Tab fx:id="visualizationTab" text="Visualization">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<TabPane layoutX="56.0" layoutY="42.0" prefHeight="414.0" prefWidth="798.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<tabs>
<Tab text="3D view">
<content>
<fx:include fx:id="viewer3DPanel" source="viewer3d/Viewer3DPanel.fxml" />
</content>
</Tab>
<Tab text="Chart">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<VBox>
<children>
<TitledPane animated="false" collapsible="false" text="Chart">
<content>
<VBox spacing="2.0">
<children>
<Label text="Voxel files - comparison" />
<ListView fx:id="listViewVoxelsFilesChart" prefHeight="200.0" />
<HBox spacing="20.0">
<children>
<HBox spacing="5.0">
<children>
<Button fx:id="buttonRemoveVoxelFileFromListView1" mnemonicParsing="false" onAction="#onActionButtonRemoveVoxelFileFromListViewForChart">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_remove.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button fx:id="buttonAddVoxelFileToListViewForChart" mnemonicParsing="false" onAction="#onActionButtonAddVoxelFileToListViewForChart">
<graphic>
<ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@icons/gnome_list_add.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</HBox>
</children>
</HBox>
<GridPane prefHeight="120.0" vgap="5.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="150.0" />
<ColumnConstraints hgrow="SOMETIMES" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="Series color" />
<ColorPicker fx:id="colorPickerSeries" GridPane.columnIndex="1" />
<Label text="Series label" GridPane.rowIndex="1" />
<TextField fx:id="textfieldLabelVoxelFileChart" prefHeight="26.0" prefWidth="103.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
</children>
</GridPane>
<HBox alignment="CENTER_LEFT" spacing="5.0">
<children>
<Label text="Max chart number in a row" />
<TextField fx:id="textfieldMaxChartNumberInARow" prefHeight="26.0" prefWidth="45.0" text="6" />
<Button mnemonicParsing="false" onAction="#onActionButtonDrawChart" text="Draw chart(s)" />
</children>
</HBox>
<GridPane hgap="5.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="200.0" />
<ColumnConstraints hgrow="SOMETIMES" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
</rowConstraints>
<children>
<RadioButton fx:id="radiobuttonPreDefinedProfile" mnemonicParsing="false" selected="true" text="Pre-defined profile" />
<ComboBox fx:id="comboboxPreDefinedProfile" prefHeight="26.0" prefWidth="150.0" GridPane.columnIndex="1" />
<Label text="or" GridPane.rowIndex="1" />
<RadioButton fx:id="radiobuttonFromVariableProfile" mnemonicParsing="false" text="From variable profile" GridPane.rowIndex="2" />
<ComboBox fx:id="comboboxFromVariableProfile" disable="true" prefHeight="26.0" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="2" />
</children>
</GridPane>
<Separator prefHeight="4.0" prefWidth="315.0" />
<VBox spacing="3.0">
<children>
<RadioButton fx:id="radiobuttonHeightFromAboveGround" mnemonicParsing="false" selected="true" text="Height from above ground" />
<Label text="or" />
<RadioButton fx:id="radiobuttonHeightFromBelowCanopy" mnemonicParsing="false" text="Height from below canopy" />
</children>
</VBox>
<Separator prefHeight="0.0" prefWidth="315.0" />
<HBox fx:id="hboxMaxPADVegetationProfile" spacing="5.0">
<children>
<Label text="Max PAD by voxel">
<padding>
<Insets top="5.0" />
</padding>
</Label>
<TextField fx:id="textfieldVegetationProfileMaxPAD" prefHeight="26.0" prefWidth="72.0" text="5" />
</children>
</HBox>
<Separator prefHeight="0.0" prefWidth="315.0" />
<TitledPane animated="false" collapsible="false" prefHeight="131.0" prefWidth="377.0">
<content>
<AnchorPane fx:id="anchorpaneQuadrats" disable="true">
<children>
<VBox AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox spacing="15.0">
<children>
<HBox spacing="5.0">
<children>
<Label text="Axis">
<padding>
<Insets top="4.0" />
</padding>
</Label>
<ComboBox fx:id="comboboxSelectAxisForQuadrats" prefHeight="26.0" prefWidth="60.0" />
</children>
</HBox>
<HBox spacing="5.0" />
</children>
</HBox>
<HBox prefHeight="26.0" prefWidth="371.0" spacing="15.0">
<children>
<HBox spacing="2.0">
<children>
<RadioButton fx:id="radiobuttonSplitCountForQuadrats" mnemonicParsing="false" selected="true" text="Split count">
<padding>
<Insets top="4.0" />
</padding>
</RadioButton>
<TextField fx:id="textFieldSplitCountForQuadrats" prefHeight="26.0" prefWidth="71.0" text="1" />
</children>
</HBox>
<HBox spacing="2.0">
<children>
<RadioButton fx:id="radiobuttonLengthForQuadrats" mnemonicParsing="false" text="Length (m)">
<padding>
<Insets top="4.0" />
</padding>
</RadioButton>
<TextField fx:id="textFieldLengthForQuadrats" disable="true" prefHeight="26.0" prefWidth="71.0" />
</children>
</HBox>
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
<graphic>
<CheckBox fx:id="checkboxMakeQuadrats" mnemonicParsing="false" text="Plot splitting" />
</graphic>
</TitledPane>
</children>
</VBox>
</content>
</TitledPane>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
</tabs>
</TabPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Visualize voxelisation files" />
</tooltip>
</Tab>
<Tab fx:id="parametersTab" text="Parameters">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<TitledPane animated="false" collapsible="false" text="Multi-threading" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<AnchorPane>
<children>
<VBox spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox alignment="CENTER_LEFT" spacing="10.0">
<children>
<Label text="Multi tasks - cores" />
<Slider fx:id="sliderRSPCoresToUse" blockIncrement="1.0" majorTickUnit="1.0" max="4.0" min="1.0" minorTickCount="0" showTickLabels="true" showTickMarks="true" snapToTicks="true" value="4.0">
<tooltip>
<Tooltip text="Select number of tasks to run simultaneously" />
</tooltip>
</Slider>
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</AnchorPane>
</content>
<tooltip>
<Tooltip text="Change AMAPVox parameters." />
</tooltip>
</Tab>
</tabs>
</TabPane>
</children>
</VBox>
</children>
</AnchorPane>
</items>
</SplitPane>
</children>
</VBox>
</children>
</AnchorPane>