Skip to content

Commit 85d15f0

Browse files
committed
Merge branch 'dev'
* dev: (23 commits) add quotes to path with spaces fix #48, update help text fix shuffle for packed rgb+int+class fix int/class color for rgb mode filter after scaling move distance filter to main loop add filter by distance with ui,settings and args, fix nul ref if cancelled processing, fix int+class writing, add version 5 header refactor: dont convert intensity/classification to float (since its byte already) fixed classification issue (header wrong format) fixing classification testing classification packing to int test classification packing (instead of int) add initial distance based filter fix separate component randomizations add separate classification output *.cla cleanup addpoint() fix intensity rewriting shuffle, adding separate classification support adding classification color support ...
2 parents 25a3edd + 87a3485 commit 85d15f0

19 files changed

+634
-149
lines changed

App.config

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,15 @@
154154
<setting name="offsetMode" serializeAs="String">
155155
<value>min</value>
156156
</setting>
157+
<setting name="importClassification" serializeAs="String">
158+
<value>False</value>
159+
</setting>
160+
<setting name="useFilter" serializeAs="String">
161+
<value>False</value>
162+
</setting>
163+
<setting name="filterDistance" serializeAs="String">
164+
<value>0.5</value>
165+
</setting>
157166
</PointCloudConverter.Properties.Settings>
158167
</userSettings>
159168
<runtime>

Icons/app.ico

137 KB
Binary file not shown.

Interfaces/IWriter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public interface IWriter
1414
// output R,G,B values (float 0-1) to file
1515
void WriteRGB(float r, float g, float b);
1616
// optional: if you need to collect points for later processing
17-
void AddPoint(int index, float x, float y, float z, float r, float g, float b, bool hasIntensity, float i, bool hasTime, double time);
17+
void AddPoint(int index, float x, float y, float z, float r, float g, float b, byte intensity, double time, byte classification);
1818
// optional: randomizes points (to use dynamic resolution/tile LOD in Unity)
1919
void Randomize();
2020
// called after all points have been looped through

MainWindow.xaml

Lines changed: 12 additions & 6 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" MinWidth="920">
8+
Title="PointCloudConverter" Height="737" 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"/>
@@ -20,7 +20,7 @@
2020
<ComboBox x:Name="cmbExportFormat" HorizontalAlignment="Left" Margin="710,114,0,0" VerticalAlignment="Top" Width="163" IsReadOnly="True" SelectionChanged="cmbExportFormat_SelectionChanged"/>
2121
<Button x:Name="btnPlugins" Content=".." HorizontalAlignment="Left" VerticalAlignment="Top" ToolTip="Browse plugins folder" Margin="882,115,0,0" Width="16" Click="btnPlugins_Click"/>
2222

23-
<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}}"/>
23+
<TextBox x:Name="txtConsole" HorizontalAlignment="Left" Height="67" 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}}"/>
2424

2525
<Label x:Name="label_Copy5" Content="Generated commandline parameters:" HorizontalAlignment="Left" Margin="10,577,0,0" VerticalAlignment="Top" Foreground="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" FontWeight="Bold"/>
2626
<Button x:Name="btnCopyToClipboard" Content="Copy" HorizontalAlignment="Left" VerticalAlignment="Top" Width="40" Height="20" ToolTip="Browse for output file" Margin="239,580,0,0" Click="btnCopyToClipboard_Click"/>
@@ -41,6 +41,7 @@
4141
<StackPanel Orientation="Horizontal">
4242
<CheckBox x:Name="chkImportRGB" Content="Read RGB" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="True" ToolTip="Reads RGB color values" Checked="chkImportRGB_Checked" Unchecked="chkImportRGB_Unchecked"/>
4343
<CheckBox x:Name="chkImportIntensity" Content="Read Intensity" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="Reads Intensity as Color value" Checked="chkImportIntensity_Checked" Unchecked="chkImportIntensity_Unchecked"/>
44+
<CheckBox x:Name="chkImportClassification" Content="Read Classification" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="Reads Intensity as Color value" Checked="chkImportClassification_Checked" Unchecked="chkImportClassification_Unchecked"/>
4445
</StackPanel>
4546
<StackPanel Orientation="Horizontal">
4647
<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"/>
@@ -81,24 +82,29 @@
8182
<TextBox x:Name="txtKeepEvery" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" Text="10"/>
8283
<Label x:Name="label_Copyxx4" Content="point" HorizontalAlignment="Left" Margin="0" Foreground="{DynamicResource MainText}" VerticalAlignment="Top"/>
8384
</StackPanel>
85+
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
86+
<CheckBox x:Name="chkUseFilter" Content="Filter by distance:" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" ToolTip="Only 1 (first) point is kept within this distance (in world grid, Unity units)"/>
87+
<TextBox x:Name="txtFilterDistance" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" Text="0.5"/>
88+
<Label x:Name="label_Copyxx5" Content="m" HorizontalAlignment="Left" Margin="0" Foreground="{DynamicResource MainText}" VerticalAlignment="Top"/>
89+
</StackPanel>
8490
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
8591
<CheckBox x:Name="chkUseMaxFileCount" Content="Maximum file count:" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" ToolTip="For batch processing, parse only this many files (good for testing with few files first)"/>
8692
<TextBox x:Name="txtMaxFileCount" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="92"/>
8793
</StackPanel>
8894
<CheckBox x:Name="chkRandomize" Content="Randomize" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="True" ToolTip="Randomize point indexes, to use Dynamic resolution. Default is true (Always enabled for v3)"/>
8995
<CheckBox x:Name="chkOpenOutputFolder" Content="Open output folder" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="Open Explorer to Output folder after finished processing"/>
96+
97+
</StackPanel>
98+
99+
<StackPanel Grid.Column="1" Margin="0,4,0,0">
90100
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
91101
<CheckBox x:Name="chkReadMetaData" Content="Import metadata" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="True" ToolTip="Reads LAs/LAZ metadata and saves into file"/>
92102
<CheckBox x:Name="chkMetaDataOnly" Content="Read metadata only" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="Doesnt process clouds, only reads metadata if import metadata is enabled"/>
93103
</StackPanel>
94-
95104
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
96105
<CheckBox x:Name="chkSetRandomSeed" Content="Use random seed:" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" ToolTip="To use same random seed when converting same cloud with different import settings"/>
97106
<TextBox x:Name="txtRandomSeed" HorizontalAlignment="Left" Margin="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" Text="42"/>
98107
</StackPanel>
99-
</StackPanel>
100-
101-
<StackPanel Grid.Column="1" Margin="0,4,0,0">
102108
<StackPanel Grid.Column="1" Margin="0,4,0,0">
103109
<CheckBox x:Name="chkUseJSONLog" Content="Use JSON log *Used in commandline only" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="{DynamicResource MainText}" IsChecked="False" ToolTip="Log messages are written in JSON format. Experimental, V3 format is better supported."/>
104110
</StackPanel>

0 commit comments

Comments
 (0)