Page 1 of 2

[Done/Fixed] Loading multiple Scalar Fields with PLY files

Posted: Sun Mar 23, 2014 4:31 pm
by Remi-C
Hey,
another feature request :-)

For my excuse I have been silently using this software for 2 years.

It would be incredibly useful to change the ply loader in order to enable loading of multiple scalar field !

Another (cosmetic) cool change could be that when loading several file at a time (i.e when drag and dropping multiple PLY files),
the mapping of the attributes is kept and re-used,thus avoiding to always select the same stuff for every file.

Thanks,
Cheers,
Rémi-C

Re: Loading multiple Scalar Fields with PLY files

Posted: Sun Mar 23, 2014 7:52 pm
by daniel
Indeed, there's no good reason to prevent the user from loading multiple SFs. I'll add this to the TODO list.

And about remembering the loading parameters, the best we can do is like what is done with LAS files: an "Apply all" button that remembers the current parameters for the current session (i.e. you would have to close and re-open CC to change them).

Daniel

Re: Loading multiple Scalar Fields with PLY files

Posted: Sun Mar 23, 2014 8:28 pm
by Remi-C
Great,
I could try so many cool stuff with multiple scalar field for ply files (my ply have about 20 scalar fields).
Currently I have to convert to ascii then painfully load.

The button apply to all would be perfect!

Thank you very much,

Cheers,
Rémi-C

Re: Loading multiple Scalar Fields with PLY files

Posted: Thu Mar 27, 2014 9:17 pm
by daniel
Ok this is done (on the github trunk). That will be available in the next beta/official release.

Re: Loading multiple Scalar Fields with PLY files

Posted: Tue Apr 01, 2014 2:22 pm
by Remi-C
Wow,
that's a quick fix !
Thanks very much !

I can't wait to try it and do some 20 millions point cloud rendering with many scalar fields !

My colleagues are also grateful.

Cheers,
Rémi-C

Re: Loading multiple Scalar Fields with PLY files

Posted: Tue Apr 22, 2014 8:43 am
by Remi-C
Hey,
I just tested the new import functionality with latest 2.5.4 release on windows.
Sadly it crashes cloud compare :-/

With the 2.5.4 I can load and display ascii and ply files,
but if I use a scalar field (or many), it crashes cc when loading the points.
Something to do with qt I guess.

I don't know how to help debugging this, if I load Visual Studio 2008 when the crash occurs, I don't have qt symbols.

If you want test data producing the crash it is here :https://github.com/Remi-C/Pointcloud_in ... data/riegl

Cheers,
Rémi-C

Re: Loading multiple Scalar Fields with PLY files

Posted: Tue Apr 22, 2014 12:22 pm
by Remi-C
Hey,
I compilled from github sources on ubuntu 12.04
Same problem.
The debugger said

"
Program received signal SIGSEGV, Segmentation fault.
0xb572b82f in ?? () from /lib/i386-linux-gnu/libc.so.6
(gdb) continue
"

Cheers,
Rémi-C

Re: Loading multiple Scalar Fields with PLY files

Posted: Tue Apr 22, 2014 1:10 pm
by daniel
Oh, crap. What a nasty bug... It's fixed on the github trunk.

I guess we'll have to issue a 'beta' release asap :(

Daniel

Re: Loading multiple Scalar Fields with PLY files

Posted: Tue Apr 22, 2014 9:27 pm
by daniel
Ok, I've published the new 'v2.5.4.1' release on the project webpage.

The archive files have the same names so as to be 'silently' downloaded in place of the old ones.

Re: Loading multiple Scalar Fields with PLY files

Posted: Wed Apr 23, 2014 11:06 am
by Remi-C
Cool !
On windows it works seamlessly B-)

On Ubuntu I don't know because latest changes on github make the code not compiling (Ubuntu 12.04, git to trunk, cmake, was compiling yesterday)
(/cloudcompare/libs/qCC_glWindow/ccRenderingTools.cpp: In static member function ‘static void ccRenderingTools::DrawColorRamp(const ccScalarField*, ccGLWindow*, int, int, float)’:
/cloudcompare/libs/qCC_glWindow/ccRenderingTools.cpp:234:14: error: expected unqualified-id before ‘(’ token
make[2]: *** [libs/qCC_glWindow/CMakeFiles/QCC_GL_LIB.dir/ccRenderingTools.cpp.o] Error 1
make[1]: *** [libs/qCC_glWindow/CMakeFiles/QCC_GL_LIB.dir/all] Error 2
make: *** [all] Error 2
)

I don't understand this error, the code seems very clean. Tried to simplify it with no success, doesn't seems either to be a character problem (line ending or fake space).

Cheers,
Rémi-C


for (std::set<double>::iterator it = keyValues.begin(); it != keyValues.end(); ++it)
{
if (!std::isfinite(*it)){

bool minusInf = (*it < 0);
keyValues.erase(it);
if (minusInf)
keyValues.insert(-std::numeric_limits<ScalarType>::max());
else
keyValues.insert(std::numeric_limits<ScalarType>::max());
it = keyValues.begin(); //restart the process (easier than trying to be intelligent here ;)
}
}