From b45c727b8d3f1a48353fdc70d7f59d5ad23637bf Mon Sep 17 00:00:00 2001 From: vro Date: Thu, 22 Aug 2013 13:07:17 +0400 Subject: [PATCH] 0024061: Draw-commands for Voxels are insufficient to test the functionality Upgrade of draw-commands + a new draw-command calling conversion of a shape into voxels. Resolved of a problem of failure of non-regression tests on voxels (vis/bug19820). --- src/ViewerTest/ViewerTest_VoxelCommands.cxx | 365 +++++++++++++++----- tests/v3d/voxel/A1 | 2 +- tests/v3d/voxel/A2 | 2 +- tests/v3d/voxel/A3 | 2 +- tests/v3d/voxel/A4 | 2 +- tests/v3d/voxel/A5 | 2 +- tests/v3d/voxel/A6 | 2 +- tests/v3d/voxel/A7 | 2 +- tests/v3d/voxel/A8 | 2 +- tests/v3d/voxel/A9 | 2 +- tests/v3d/voxel/B1 | 2 +- tests/v3d/voxel/B2 | 2 +- tests/v3d/voxel/B3 | 9 + 13 files changed, 297 insertions(+), 99 deletions(-) create mode 100644 tests/v3d/voxel/B3 diff --git a/src/ViewerTest/ViewerTest_VoxelCommands.cxx b/src/ViewerTest/ViewerTest_VoxelCommands.cxx index e5977bfdc6..ca438f9350 100755 --- a/src/ViewerTest/ViewerTest_VoxelCommands.cxx +++ b/src/ViewerTest/ViewerTest_VoxelCommands.cxx @@ -32,16 +32,60 @@ #include #include -#include +// A method parses the input parameters. +static Standard_Boolean GetInputParameters(Standard_Integer nbargs, const char** args, + Standard_Real& x, Standard_Real& y, Standard_Real& z, + Standard_Real& dx, Standard_Real& dy, Standard_Real& dz, + Standard_Integer& nbx, Standard_Integer& nby, Standard_Integer& nbz) +{ + // Default values. + nbx = 10; nby = 10; nbz = 10; + x = 0.0; y = 0.0; z = 0.0; + dx = 1.0; dy = 1.0; dz = 1.0; -static Standard_Integer VOXELBOOLDS(Draw_Interpretor& di, Standard_Integer, const char**) + // "voxelboolds 0 0 0 1 1 1 100 100 100" + if (nbargs == 10) + { + nbx = Draw::Atoi(args[7]); + nby = Draw::Atoi(args[8]); + nbz = Draw::Atoi(args[9]); + } + // "voxelboolds 0 0 0 1 1 1" + if (nbargs == 7 || nbargs == 10) + { + dx = Draw::Atof(args[4]); + dy = Draw::Atof(args[5]); + dz = Draw::Atof(args[6]); + } + // "voxelboolds 0 0 0" + if (nbargs == 4 || nbargs == 7 || nbargs == 10) + { + x = Draw::Atof(args[1]); + y = Draw::Atof(args[2]); + z = Draw::Atof(args[3]); + } + // "voxelboolds" + if (nbargs == 1) + { + // use default parameters + } + + return nbargs == 1 || nbargs == 4 || nbargs == 7 || nbargs == 10; +} + +static Standard_Integer VOXELBOOLDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelboolds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. BoolDS: - - Voxel_BoolDS ds(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_BoolDS ds(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -84,17 +128,22 @@ static Standard_Integer VOXELBOOLDS(Draw_Interpretor& di, Standard_Integer, cons } } - return 0; // Sehr gut + return 0; } -static Standard_Integer VOXELCOLORDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELCOLORDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; - + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelcolords [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } + // 1. ColorDS: - - Voxel_ColorDS ds(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_ColorDS ds(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -140,15 +189,20 @@ static Standard_Integer VOXELCOLORDS(Draw_Interpretor& di, Standard_Integer, con return 0; } -static Standard_Integer VOXELFLOATDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELFLOATDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; - + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelfloatds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } + // 1. FloatDS: - - Voxel_FloatDS ds(0, 0, 0, 1, 1, 1, nbx, nby, nbz); - + Voxel_FloatDS ds(x, y, z, dx, dy, dz, nbx, nby, nbz); + for (ix = 0; ix < nbx; ix++) { for (iy = 0; iy < nby; iy++) @@ -213,14 +267,19 @@ static Standard_Integer VOXELFLOATDS(Draw_Interpretor& di, Standard_Integer, con return 0; } -static Standard_Integer VOXELOCTBOOLDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELOCTBOOLDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 30, nby = 30, nbz = 30; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxeloctboolds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. OctBoolDS: - - Voxel_OctBoolDS ds(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_OctBoolDS ds(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -315,14 +374,19 @@ static Standard_Integer VOXELOCTBOOLDS(Draw_Interpretor& di, Standard_Integer, c return 0; } -static Standard_Integer VOXELROCTBOOLDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELROCTBOOLDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz, i, j; - Standard_Integer nbx = 30, nby = 30, nbz = 30; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz, i, j; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelroctboolds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. ROctBoolDS: - - Voxel_ROctBoolDS ds(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_ROctBoolDS ds(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -400,27 +464,23 @@ static Standard_Integer VOXELROCTBOOLDS(Draw_Interpretor& di, Standard_Integer, } } - // Test converter - Standard_Integer progress = 0; - TopoDS_Shape S = BRepPrimAPI_MakeSphere(100.0).Shape(); - Voxel_ROctBoolDS* ds2 = new Voxel_ROctBoolDS; - Voxel_FastConverter converter(S, *ds2, 0.1, nbx, nby, nbz, 1); - converter.Convert(progress); - ds2->OptimizeMemory(); - delete ds2; - return 0; } -static Standard_Integer VOXELFUSEBOOLDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELFUSEBOOLDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelfuseboolds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. Set two BoolDS: - - Voxel_BoolDS ds1(0, 0, 0, 1, 1, 1, nbx, nby, nbz); - Voxel_BoolDS ds2(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_BoolDS ds1(x, y, z, dx, dy, dz, nbx, nby, nbz); + Voxel_BoolDS ds2(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -477,15 +537,20 @@ static Standard_Integer VOXELFUSEBOOLDS(Draw_Interpretor& di, Standard_Integer, return 0; } -static Standard_Integer VOXELFUSECOLORDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELFUSECOLORDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelfusecolords [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. Set two ColorDS: - - Voxel_ColorDS ds1(0, 0, 0, 1, 1, 1, nbx, nby, nbz); - Voxel_ColorDS ds2(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_ColorDS ds1(x, y, z, dx, dy, dz, nbx, nby, nbz); + Voxel_ColorDS ds2(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -552,15 +617,20 @@ static Standard_Integer VOXELFUSECOLORDS(Draw_Interpretor& di, Standard_Integer, return 0; } -static Standard_Integer VOXELFUSEFLOATDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELFUSEFLOATDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; - - // 1. Set two FloatDS: + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelfusefloatds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } - Voxel_FloatDS ds1(0, 0, 0, 1, 1, 1, nbx, nby, nbz); - Voxel_FloatDS ds2(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + // 1. Set two FloatDS: + Voxel_FloatDS ds1(x, y, z, dx, dy, dz, nbx, nby, nbz); + Voxel_FloatDS ds2(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -627,15 +697,20 @@ static Standard_Integer VOXELFUSEFLOATDS(Draw_Interpretor& di, Standard_Integer, return 0; } -static Standard_Integer VOXELCUTBOOLDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELCUTBOOLDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelcutboolds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. Set two BoolDS: - - Voxel_BoolDS ds1(0, 0, 0, 1, 1, 1, nbx, nby, nbz); - Voxel_BoolDS ds2(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_BoolDS ds1(x, y, z, dx, dy, dz, nbx, nby, nbz); + Voxel_BoolDS ds2(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -702,15 +777,20 @@ static Standard_Integer VOXELCUTBOOLDS(Draw_Interpretor& di, Standard_Integer, c return 0; } -static Standard_Integer VOXELCUTCOLORDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELCUTCOLORDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelcutcolords [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. Set two ColorDS: - - Voxel_ColorDS ds1(0, 0, 0, 1, 1, 1, nbx, nby, nbz); - Voxel_ColorDS ds2(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_ColorDS ds1(x, y, z, dx, dy, dz, nbx, nby, nbz); + Voxel_ColorDS ds2(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -777,15 +857,20 @@ static Standard_Integer VOXELCUTCOLORDS(Draw_Interpretor& di, Standard_Integer, return 0; } -static Standard_Integer VOXELCUTFLOATDS(Draw_Interpretor& di, Standard_Integer, const char**) +static Standard_Integer VOXELCUTFLOATDS(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) { - Standard_Integer ix, iy, iz; - Standard_Integer nbx = 100, nby = 100, nbz = 100; + // Parse input parameters. + Standard_Real x, y, z, dx, dy, dz; + Standard_Integer ix, iy, iz, nbx, nby, nbz; + if (!GetInputParameters(nbargs, args, x, y, z, dx, dy, dz, nbx, nby, nbz)) + { + di << "Usage: voxelcutfloatds [x, y, z, dx, dy, dz nbx, nby, nbz]"; + return 1; + } // 1. Set two FloatDS: - - Voxel_FloatDS ds1(0, 0, 0, 1, 1, 1, nbx, nby, nbz); - Voxel_FloatDS ds2(0, 0, 0, 1, 1, 1, nbx, nby, nbz); + Voxel_FloatDS ds1(x, y, z, dx, dy, dz, nbx, nby, nbz); + Voxel_FloatDS ds2(x, y, z, dx, dy, dz, nbx, nby, nbz); for (ix = 0; ix < nbx; ix++) { @@ -852,18 +937,122 @@ static Standard_Integer VOXELCUTFLOATDS(Draw_Interpretor& di, Standard_Integer, return 0; } +static Standard_Integer VOXELBOOLDSCONVERT(Draw_Interpretor& di, Standard_Integer nbargs, const char** args) +{ + TopoDS_Shape S; + Standard_Integer nbx = 100, nby = 100, nbz = 100; + Standard_Real deflection = 0.1; + Standard_Boolean fast = Standard_True; + Standard_Integer nbthreads = 1; + Standard_Boolean usetriangulation = Standard_False; + Standard_Integer fillInVolume = 0; + + if (nbargs < 2) + { + di << "Usage: voxelbooldsconvert shape [nbx nby nbz deflection 0|1(fast or accurate) nbthreads usetriangulation \ + 0|1|2(fill-in volume: no|yes|yes using shape)]"; + return 1; + } + + // Get shape for conversion. + S = DBRep::Get(args[1]); + + if (nbargs > 2) + { + if (nbargs >= 5) + { + nbx = Draw::Atoi(args[2]); + nby = Draw::Atoi(args[3]); + nbz = Draw::Atoi(args[4]); + } + if (nbargs >= 6) + { + deflection = Draw::Atof(args[5]); + } + if (nbargs >= 7) + { + // 0 means fast, + // 1 means accurate. + fast = Draw::Atoi(args[6]) == 0 ? Standard_True : Standard_False; + } + if (nbargs >= 8) + { + nbthreads = Draw::Atoi(args[7]); + if (nbthreads < 1) + { + di << "Wrong number of threads: 1 .. nb cores"; + return 1; + } + else if (nbthreads > 100) // seems too much... + { + di << "Too many threads..."; + } + } + if (nbargs >= 9) + { + usetriangulation = Draw::Atoi(args[8]) == 0 ? Standard_False : Standard_True; + } + if (nbargs >= 10) + { + fillInVolume = Draw::Atoi(args[9]); + if (fillInVolume < 0 || fillInVolume > 2) + { + di << "Fill-in volume parameter accepts the values: 0 - no, 1 - yes, 2 - yes wusing shape"; + return 1; + } + } + } + + // Call converter. + Voxel_BoolDS ds; + Standard_Boolean ret; + Standard_Integer progress = 0; + Voxel_FastConverter converter(S, ds, deflection, nbx, nby, nbz, nbthreads, usetriangulation); + + // Convert. + if (fast) + ret = converter.Convert(progress); + else + ret = converter.ConvertUsingSAT(progress); + + // Fill-in volume. + if (ret) + { + switch (fillInVolume) + { + case 0: + break; + case 1: + converter.FillInVolume(1, nbthreads); + break; + case 2: + converter.FillInVolume(1, S, nbthreads); + break; + } + } + + return ret == Standard_True ? 0 : 1; +} + void ViewerTest::VoxelCommands(Draw_Interpretor& theCommands) { - const char* g = "Viewer Voxel non-regression test-commands"; - theCommands.Add("voxelboolds","voxelboolds; returns 0 if success",__FILE__,VOXELBOOLDS,g); - theCommands.Add("voxelcolords","voxelcolords; returns 0 if success",__FILE__,VOXELCOLORDS,g); - theCommands.Add("voxelfloatds","voxelfloatds; returns 0 if success",__FILE__,VOXELFLOATDS,g); - theCommands.Add("voxeloctboolds","voxeloctboolds; returns 0 if success",__FILE__,VOXELOCTBOOLDS,g); - theCommands.Add("voxelroctboolds","voxelroctboolds; returns 0 if success",__FILE__,VOXELROCTBOOLDS,g); - theCommands.Add("voxelfuseboolds","voxelfuseboolds; returns 0 if success",__FILE__,VOXELFUSEBOOLDS,g); - theCommands.Add("voxelfusecolords","voxelfusecolords; returns 0 if success",__FILE__,VOXELFUSECOLORDS,g); - theCommands.Add("voxelfusefloatds","voxelfusefloatds; returns 0 if success",__FILE__,VOXELFUSEFLOATDS,g); - theCommands.Add("voxelcutboolds","voxelcutboolds; returns 0 if success",__FILE__,VOXELCUTBOOLDS,g); - theCommands.Add("voxelcutcolords","voxelcutcolords; returns 0 if success",__FILE__,VOXELCUTCOLORDS,g); - theCommands.Add("voxelcutfloatds","voxelcutfloatds; returns 0 if success",__FILE__,VOXELCUTFLOATDS,g); + const char* g = "Voxel draw-commands"; + // Basic commands. + theCommands.Add("voxelboolds" ,"voxelboolds [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELBOOLDS,g); + theCommands.Add("voxelcolords" ,"voxelcolords [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELCOLORDS,g); + theCommands.Add("voxelfloatds" ,"voxelfloatds [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELFLOATDS,g); + theCommands.Add("voxeloctboolds" ,"voxeloctboolds [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELOCTBOOLDS,g); + theCommands.Add("voxelroctboolds" ,"voxelroctboolds [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELROCTBOOLDS,g); + // Boolean operations. + theCommands.Add("voxelfuseboolds" ,"voxelfuseboolds [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELFUSEBOOLDS,g); + theCommands.Add("voxelfusecolords","voxelfusecolords [x y z dx dy dz nbx nby nbz]",__FILE__,VOXELFUSECOLORDS,g); + theCommands.Add("voxelfusefloatds","voxelfusefloatds [x y z dx dy dz nbx nby nbz]",__FILE__,VOXELFUSEFLOATDS,g); + theCommands.Add("voxelcutboolds" ,"voxelcutboolds [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELCUTBOOLDS,g); + theCommands.Add("voxelcutcolords" ,"voxelcutcolords [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELCUTCOLORDS,g); + theCommands.Add("voxelcutfloatds" ,"voxelcutfloatds [x y z dx dy dz nbx nby nbz]" ,__FILE__,VOXELCUTFLOATDS,g); + // Conversion of a shape into voxels. + theCommands.Add("voxelbooldsconvert", + "voxelbooldsconvert shape [nbx nby nbz deflection 0|1(fast or accurate) nbthreads usetriangulation \ + 0|1|2(fill-in volume: no|yes|yes using shape)]", + __FILE__,VOXELBOOLDSCONVERT,g); } diff --git a/tests/v3d/voxel/A1 b/tests/v3d/voxel/A1 index 9ad45e1cee..c1ea8fcb4e 100644 --- a/tests/v3d/voxel/A1 +++ b/tests/v3d/voxel/A1 @@ -1 +1 @@ -voxelboolds +voxelboolds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A2 b/tests/v3d/voxel/A2 index 75607d0bcd..3862b61d63 100644 --- a/tests/v3d/voxel/A2 +++ b/tests/v3d/voxel/A2 @@ -1 +1 @@ -voxelcolords +voxelcolords -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A3 b/tests/v3d/voxel/A3 index 04941bd170..088d19451c 100644 --- a/tests/v3d/voxel/A3 +++ b/tests/v3d/voxel/A3 @@ -1 +1 @@ -voxelfloatds +voxelfloatds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A4 b/tests/v3d/voxel/A4 index f0329433a3..44286960f4 100644 --- a/tests/v3d/voxel/A4 +++ b/tests/v3d/voxel/A4 @@ -1 +1 @@ -voxeloctboolds +voxeloctboolds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A5 b/tests/v3d/voxel/A5 index e9b030c546..6284750586 100644 --- a/tests/v3d/voxel/A5 +++ b/tests/v3d/voxel/A5 @@ -1 +1 @@ -voxelroctboolds +voxelroctboolds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A6 b/tests/v3d/voxel/A6 index 16b89e1b74..0b06845350 100644 --- a/tests/v3d/voxel/A6 +++ b/tests/v3d/voxel/A6 @@ -1 +1 @@ -voxelfuseboolds +voxelfuseboolds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A7 b/tests/v3d/voxel/A7 index 3ecc2fb063..c1989bec1c 100644 --- a/tests/v3d/voxel/A7 +++ b/tests/v3d/voxel/A7 @@ -1 +1 @@ -voxelfusecolords +voxelfusecolords -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A8 b/tests/v3d/voxel/A8 index 03b7baf98e..191bebe4e4 100644 --- a/tests/v3d/voxel/A8 +++ b/tests/v3d/voxel/A8 @@ -1 +1 @@ -voxelfusefloatds +voxelfusefloatds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/A9 b/tests/v3d/voxel/A9 index 94112ae079..87f668d864 100644 --- a/tests/v3d/voxel/A9 +++ b/tests/v3d/voxel/A9 @@ -1 +1 @@ -voxelcutboolds +voxelcutboolds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/B1 b/tests/v3d/voxel/B1 index fa9616e5ac..9d6372d197 100644 --- a/tests/v3d/voxel/B1 +++ b/tests/v3d/voxel/B1 @@ -1 +1 @@ -voxelcutcolords +voxelcutcolords -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/B2 b/tests/v3d/voxel/B2 index 9280088cca..a0914c38d4 100644 --- a/tests/v3d/voxel/B2 +++ b/tests/v3d/voxel/B2 @@ -1 +1 @@ -voxelcutfloatds +voxelcutfloatds -5 -5 -5 10 10 10 10 10 10 diff --git a/tests/v3d/voxel/B3 b/tests/v3d/voxel/B3 new file mode 100644 index 0000000000..958d733630 --- /dev/null +++ b/tests/v3d/voxel/B3 @@ -0,0 +1,9 @@ +psphere s 100.0 +voxelbooldsconvert s 100 100 100 1.0 0 1 0 0 +voxelbooldsconvert s 100 100 100 1.0 1 1 0 0 +voxelbooldsconvert s 100 100 100 1.0 0 1 1 0 +voxelbooldsconvert s 100 100 100 1.0 1 1 1 0 +voxelbooldsconvert s 100 100 100 1.0 0 2 1 0 +voxelbooldsconvert s 100 100 100 1.0 1 2 1 0 +voxelbooldsconvert s 100 100 100 1.0 0 2 1 1 +voxelbooldsconvert s 100 100 100 1.0 1 2 1 2 -- 2.20.1