Skip to content

Commit 5108d47

Browse files
committed
update help output, add browse plugins folder, #BUILD beta
1 parent ecfe5e8 commit 5108d47

File tree

4 files changed

+40
-21
lines changed

4 files changed

+40
-21
lines changed

MainWindow.xaml

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
66
xmlns:local="clr-namespace:PointCloudConverter"
77
mc:Ignorable="d"
8-
Title="PointCloudConverter" Height="720" Width="907" Background="#FF252222" Closing="Window_Closing" Loaded="Window_Loaded">
8+
Title="PointCloudConverter" Height="720" Width="907" Background="#FF252222" Closing="Window_Closing" Loaded="Window_Loaded" MinWidth="920">
99
<Grid Margin="0,0,2,0">
1010
<Button x:Name="btnBrowseInput" Content="..." HorizontalAlignment="Left" Margin="636,48,0,0" VerticalAlignment="Top" Width="32" Height="23" Click="btnBrowseInput_Click" ToolTip="Browse for input file"/>
1111
<TextBox x:Name="txtInputFile" HorizontalAlignment="Left" AllowDrop="True" Height="23" Margin="20,48,0,0" VerticalAlignment="Top" Width="611" PreviewDrop="txtInputFile_Drop" PreviewDragOver="txtInputFile_DragEnter"/>
@@ -14,10 +14,11 @@
1414
<Button x:Name="btnBrowseOutput" Content="..." HorizontalAlignment="Left" Margin="636,114,0,0" VerticalAlignment="Top" Width="32" Height="23" Click="btnBrowseOutput_Click" ToolTip="Browse for output file"/>
1515
<TextBox x:Name="txtOutput" HorizontalAlignment="Left" Height="23" Margin="20,114,0,0" VerticalAlignment="Top" Width="611"/>
1616
<Label x:Name="label_Copy" Content="Output:" HorizontalAlignment="Left" Margin="20,88,0,0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}"/>
17-
<ComboBox x:Name="cmbExportFormat" HorizontalAlignment="Left" Margin="719,114,0,0" VerticalAlignment="Top" Width="163" IsReadOnly="True" SelectionChanged="cmbExportFormat_SelectionChanged"/>
18-
<Label x:Name="label_Copy1" Content="Export format:&#xD;&#xA;" HorizontalAlignment="Left" Margin="719,88,0,0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" Height="26"/>
19-
<ComboBox x:Name="cmbImportFormat" HorizontalAlignment="Left" Margin="719,48,0,0" VerticalAlignment="Top" Width="163" IsReadOnly="True"/>
20-
<Label x:Name="label_Copy2" Content="Import format:&#xA;" HorizontalAlignment="Left" Margin="719,22,0,0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" Height="26"/>
17+
<Label x:Name="label_Copy2" Content="Import format:&#xA;" HorizontalAlignment="Left" Margin="710,22,0,0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" Height="26"/>
18+
<ComboBox x:Name="cmbImportFormat" HorizontalAlignment="Left" Margin="710,48,0,0" VerticalAlignment="Top" Width="163" IsReadOnly="True"/>
19+
<Label x:Name="label_Copy1" Content="Export format:&#xD;&#xA;" HorizontalAlignment="Left" Margin="710,88,0,0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" Height="26"/>
20+
<ComboBox x:Name="cmbExportFormat" HorizontalAlignment="Left" Margin="710,114,0,0" VerticalAlignment="Top" Width="163" IsReadOnly="True" SelectionChanged="cmbExportFormat_SelectionChanged"/>
21+
<Button x:Name="btnPlugins" Content=".." HorizontalAlignment="Left" VerticalAlignment="Top" ToolTip="Browse plugins folder" Margin="882,115,0,0" Width="16" Click="btnPlugins_Click"/>
2122

2223
<TextBox x:Name="txtConsole" HorizontalAlignment="Left" Height="53" Margin="10,603,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="877" IsReadOnly="True" UndoLimit="1" Background="#FF404040" BorderBrush="{x:Null}" Foreground="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}"/>
2324

@@ -26,7 +27,7 @@
2627

2728
<Button x:Name="btnImportSettings" Content="Import Settings" ToolTip="Import settings from text file" HorizontalAlignment="Left" Margin="239,514,0,0" VerticalAlignment="Top" Width="104" Height="29" Click="btnImportSettings_Click"/>
2829
<Button x:Name="btnExportSettings" Content="Export Settings" ToolTip="Export settings to text file" HorizontalAlignment="Left" Margin="345,514,0,0" VerticalAlignment="Top" Width="104" Height="29" Click="btnExportSettings_Click"/>
29-
30+
3031
<Button x:Name="btnGetParams" Content="Get Commandline params" HorizontalAlignment="Left" Margin="12,514,0,0" VerticalAlignment="Top" Width="214" Height="58" Click="btnGetParams_Click"/>
3132
<!--global options-->
3233
<GroupBox x:Name="groupBoxGlobal" HorizontalAlignment="Left" Header="Global Options" Margin="16,153,0,0" VerticalAlignment="Top" BorderBrush="#FF737373" BorderThickness="0.2,0.2,0.2,0.2" Foreground="White">
@@ -43,7 +44,7 @@
4344
</StackPanel>
4445
<StackPanel Orientation="Horizontal">
4546
<CheckBox x:Name="chkAutoOffset" Content="Auto-Offset, mode:" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="True" ToolTip="Auto-offsets cloud near 0,0,0 by using bounds min. as offset" Checked="chkAutoOffset_Checked"/>
46-
<TextBox x:Name="txtOffsetMode" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="45" Text="min" MaxLines="1" ToolTip="Legacy=first cloud min bounds, Min=All clouds min bounds" />
47+
<TextBox x:Name="txtOffsetMode" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="45" Text="min" MaxLines="1" ToolTip="Take automatic offset value from, Legacy=first cloud min bounds, Min=All clouds min bounds" />
4748
</StackPanel>
4849
<StackPanel Orientation="Vertical">
4950
<CheckBox x:Name="chkManualOffset" Content="Manual Offset" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="True" ToolTip="Add offset to all points (After Auto-Offset and Flip, if those are enabled)" Checked="chkManualOffset_Checked"/>
@@ -129,11 +130,6 @@
129130
<!--v3 options-->
130131
<GroupBox x:Name="groupBoxV3" HorizontalAlignment="Right" Header="V3 (.pcroot) Options" Margin="0,245,10,0" VerticalAlignment="Top" Width="276" BorderBrush="#FF737373" BorderThickness="0.2,0.2,0.2,0.2" Foreground="White">
131132
<StackPanel Margin="0,4,0,0">
132-
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
133-
<Label x:Name="label_Copy11" Content="Grid size:" HorizontalAlignment="Left" Margin="0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}"/>
134-
<TextBox x:Name="txtGridSize" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" Text="10" ToolTip="Gridsize in meters, splits cloud into tiles with this size. v3 only!"/>
135-
<Label x:Name="label_Copy12" Content="m" HorizontalAlignment="Left" Margin="0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}"/>
136-
</StackPanel>
137133
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
138134
<CheckBox x:Name="chkUseMinPointCount" Content="Minimum point count per tile:" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" ToolTip="If tile has less points than this value, its discarded. Good for removing straypoints. v3 only!"/>
139135
<TextBox x:Name="txtMinPointCount" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" Text="1000"/>
@@ -144,12 +140,24 @@
144140
<CheckBox x:Name="chkGetAvgTileTimestamp" Content="Get Average timestamp per Tile" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="Experimental: Calculate average raw gps_time from tile points and save into pcroot"/>
145141
<CheckBox x:Name="chkCalculateOverlappingTiles" Content="Calculate overlapping tiles" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="Experimental: Save additional overlapped tile data into pcroot (if tile overlaps another tile)"/>
146142
</StackPanel>
147-
</GroupBox>
148-
143+
</GroupBox>
144+
145+
<!-- shared options -->
146+
<GroupBox x:Name="groupBoxShared" HorizontalAlignment="Right" Header="Shared Options" Margin="0,336,10,0" VerticalAlignment="Top" Width="276" BorderBrush="#FF737373" BorderThickness="0.2,0.2,0.2,0.2" Foreground="White">
147+
<StackPanel Margin="0,4,0,0">
148+
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
149+
<Label x:Name="label_Copy11" Content="Grid size:" HorizontalAlignment="Left" Margin="0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}"/>
150+
<TextBox x:Name="txtGridSize" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" Text="10" ToolTip="Gridsize in meters, splits cloud into tiles with this size. For v3 and plugins"/>
151+
<Label x:Name="label_Copy12" Content="m" HorizontalAlignment="Left" Margin="0" VerticalAlignment="Top" Foreground="{DynamicResource MainText}"/>
152+
</StackPanel>
153+
154+
</StackPanel>
155+
</GroupBox>
156+
149157
<!-- gltf options -->
150-
<GroupBox x:Name="groupBoxGLTF" HorizontalAlignment="Right" Header="GLTF (.glb) Options" Margin="0,365,10,0" VerticalAlignment="Top" Width="276" BorderBrush="#FF737373" BorderThickness="0.2,0.2,0.2,0.2" Foreground="White">
158+
<GroupBox x:Name="groupBoxGLTF" HorizontalAlignment="Right" Header="GLTF (.glb) Options" Margin="0,408,10,0" VerticalAlignment="Top" Width="276" BorderBrush="#FF737373" BorderThickness="0.2,0.2,0.2,0.2" Foreground="White">
151159
<StackPanel Margin="0,4,0,0">
152-
<CheckBox x:Name="chkUseGrid" Content="Use grid (split to grid)" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="If disabled, 1 cloud is exported to single .glb file. If enabled: 1 tile is 1 .glb file"/>
160+
<CheckBox x:Name="chkUseGrid" Content="Use grid (split to grid)" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="If disabled: LAZ file(s) are exported as single GLB file. If enabled: LAZ file(s) are split into multiple GLB files"/>
153161
</StackPanel>
154162
</GroupBox>
155163

MainWindow.xaml.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ namespace PointCloudConverter
2929
{
3030
public partial class MainWindow : Window
3131
{
32-
static readonly string version = "24.09.2024";
32+
static readonly string version = "21.10.2024";
3333
static readonly string appname = "PointCloud Converter - " + version;
3434
static readonly string rootFolder = AppDomain.CurrentDomain.BaseDirectory;
3535

@@ -1052,7 +1052,7 @@ void StartProcess(bool doProcess = true)
10521052
args.Add("-intensity=" + (bool)chkImportIntensity.IsChecked);
10531053

10541054
bool isPCROOT = (cmbExportFormat.SelectedItem.ToString() == "PCROOT");
1055-
bool isGLTF = (cmbExportFormat.SelectedItem.ToString() == "GLTF");
1055+
bool isGLTF = (cmbExportFormat.SelectedItem.ToString().ToUpper() == "GLTF" || cmbExportFormat.SelectedItem.ToString().ToUpper() == "GLB");
10561056
// cmbExportFormat.SelectedItem?.ToString()?.ToUpper()?.Contains("PCROOT")
10571057

10581058
if (isPCROOT == true) args.Add("-gridsize=" + txtGridSize.Text);
@@ -1742,6 +1742,15 @@ private void btnExportSettings_Click(object sender, RoutedEventArgs e)
17421742
}
17431743
}
17441744

1745-
1745+
private void btnPlugins_Click(object sender, RoutedEventArgs e)
1746+
{
1747+
// open plugins folder in explorer at location of this exe
1748+
var pluginsFolder = Path.Combine(Directory.GetCurrentDirectory(), "plugins");
1749+
if (Directory.Exists(pluginsFolder) == false)
1750+
{
1751+
Directory.CreateDirectory(pluginsFolder);
1752+
}
1753+
Process.Start(new ProcessStartInfo("explorer.exe", pluginsFolder));
1754+
}
17461755
} // class
17471756
} // namespace

Structs/ImportSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ public void ReleaseReader(int? taskId)
208208
public bool importMetadataOnly { get; set; } = false;
209209
public bool averageTimestamp { get; set; } = false; // calculate average timestamp for all points for this tile
210210
public bool checkoverlap { get; set; } = false; // check if tile overlaps with other tiles (save into pcroot)
211-
public bool useGrid { get; set; } = true; // required for PCROOT format
211+
public bool useGrid { get; set; } = false; // required for PCROOT format (will be automatically enabled for v3)
212212
public string offsetMode { get; set; } = "min"; // TODO use enum: "min" or "legacy" now (legacy is first bounds min only)
213213

214214
public override string ToString()

Tools/Tools.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,11 +291,13 @@ public static void PrintHelpAndExit(char argSeparator, bool waitEnter = false)
291291
Console.WriteLine("-randomize" + argSeparator + "true\t\tRandomize point indexes, to use Dynamic resolution\tDefault is true (Always enabled for v3)");
292292
Console.WriteLine("-seed" + argSeparator + "42\t\tSet random seed\tDefault is some random value");
293293
Console.WriteLine("-json" + argSeparator + "false\t\tOutput console log in JSON format\tDefault is false");
294-
Console.WriteLine("-customintensityrange" + argSeparator + "false\t\tCustom intensity range (0-65535)\tDefault is false");
294+
Console.WriteLine("-customintensityrange" + argSeparator + "false\t\tUse custom intensity range (0-65535) instead of 0-255\tDefault is false");
295295
Console.WriteLine("-metadata" + argSeparator + "false\t\tRead metadata from header, outputs into json file\tDefault is false");
296296
Console.WriteLine("-metadataonly" + argSeparator + "false\t\tRead metadata only (dont process points)\tDefault is false");
297297
Console.WriteLine("-averagetimestamp" + argSeparator + "false\t\tGet Average timestamp per Tile\tDefault is false");
298298
Console.WriteLine("-checkoverlap" + argSeparator + "false\t\tCalculate overlapping tiles\tDefault is false");
299+
Console.WriteLine("-config" + argSeparator + "filename\t\tLoad arguments from text file (easier to handle separate settings for different projects)");
300+
Console.WriteLine("-usegrid" + argSeparator + "true\t\tSplits point cloud to grid (multiple files). Required for V3 format (automatically enabled if its off). \tDefault is true for v3");
299301
Console.WriteLine("-offsetmode" + argSeparator + "min\t\tGet auto-offset bounds, min=min from all bounds, legacy= first cloud min bounds\tDefault is min");
300302
Console.WriteLine("");
301303
Console.WriteLine("? /? -? help -help /help");

0 commit comments

Comments
 (0)