Skip to content

Commit 934b07d

Browse files
committed
fixed classification issue (header wrong format)
1 parent f99f728 commit 934b07d

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

MainWindow.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -905,9 +905,9 @@ static bool ParseFile(ImportSettings importSettings, int fileIndex, int? taskId,
905905
// TODO get intensity as separate value
906906
if (importSettings.importIntensity == true)
907907
{
908-
//intensity = taskReader.GetIntensity();
908+
intensity = taskReader.GetIntensity();
909909
// works here
910-
intensity = taskReader.GetClassification();
910+
//intensity = taskReader.GetClassification();
911911
//if (i < 20000) Log.Write("int: " + intensity);
912912

913913
// if no rgb, then replace RGB with intensity

Tools/ArgParser.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -875,11 +875,17 @@ public static ImportSettings Parse(string[] args, string rootFolder, ILogger log
875875
//}
876876

877877
// must have at least one
878-
if (importSettings.importRGB == false && (importSettings.importIntensity == false && importSettings.importClassification == false) && importSettings.importClassification == false)
878+
if (importSettings.importRGB == false && importSettings.importIntensity == false && importSettings.importClassification == false)
879879
{
880880
importSettings.errors.Add("Must have -rgb OR -intensity OR -classification enabled");
881881
}
882882

883+
// but cannot have int and class only
884+
if (importSettings.importRGB == false && importSettings.importIntensity == true && importSettings.importClassification == true)
885+
{
886+
importSettings.errors.Add("Cannot have -intensity and -classification enabled without -rgb");
887+
}
888+
883889
if (importSettings.exportFormat == ExportFormat.UCPC && importSettings.maxThreads > 1)
884890
{
885891
importSettings.errors.Add("UCPC format doesnt support multi-threading yet, use 1 thread only (or remove -maxthreads param)");

Writers/PCROOT.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ void IWriter.Close()
255255
int versionID = importSettings.packColors ? 2 : 1; // (1 = original, 2 = packed v3 format)
256256
if (importSettings.packColors == true) versionID = 2;
257257
if (useLossyFiltering == true) versionID = 3;
258-
if (importSettings.importIntensity == true && importSettings.importRGB && importSettings.packColors) versionID = 4; // new int packed format
258+
if ((importSettings.importIntensity == true || importSettings.importClassification == true) && importSettings.importRGB && importSettings.packColors) versionID = 4; // new int packed format
259259

260260
bool addComments = false;
261261

@@ -429,7 +429,7 @@ void IWriter.AddPoint(int index, float x, float y, float z, float r, float g, fl
429429

430430
if (importSettings.importRGB && importSettings.importIntensity == true) nodeIntensity[key].Add(intensity);
431431
// TODO separate if rgb and or int?
432-
if (importSettings.importClassification == true) nodeClassification[key].Add(classification);
432+
if (importSettings.importRGB && importSettings.importClassification == true) nodeClassification[key].Add(classification);
433433
if (importSettings.averageTimestamp == true) nodeTime[key].Add(time);
434434
}
435435
else // create new list for this key
@@ -443,7 +443,7 @@ void IWriter.AddPoint(int index, float x, float y, float z, float r, float g, fl
443443
nodeB[key] = new List<float> { b };
444444

445445
if (importSettings.importRGB && importSettings.importIntensity == true) nodeIntensity[key] = new List<float> { intensity };
446-
if (importSettings.importClassification == true) nodeClassification[key] = new List<float> { classification };
446+
if (importSettings.importRGB && importSettings.importClassification == true) nodeClassification[key] = new List<float> { classification };
447447
if (importSettings.averageTimestamp == true) nodeTime[key] = new List<double> { time };
448448
}
449449
} // addpoint()

0 commit comments

Comments
 (0)