<?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="checkboxNaNsCorrection" 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="textfieldNaNsCorrectionThreshold" 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="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="Simulated light maps" /> </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> <graphic> <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@icons/obj.png" /> </image> </ImageView> </graphic> </Tab> <Tab fx:id="cropVoxTab" text="Cropping"> <content> <fx:include fx:id="voxelSpaceCropping" source="VoxelSpaceCroppingFrame.fxml" /> </content> <graphic> <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@icons/gtk-cut.png" /> </image> </ImageView> </graphic> </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>