On accessibility of CC by plugins, and other questions
Posted: Fri Mar 09, 2012 9:39 am
I have some questions on how to accomplish some tasks from a CC plugin.
My plugin creates a new toolbar with a set of functions taken from PCL (PointCloudLibrary).
So, questions:
1. Some of the functions simply add a scalar field (or colors or normals). How can I then update the Properties view? I can have access to public methods of MainWindow but i cannot find a method actually working for this task. MainWindow::update() and MainWindow::UpdateUI() does not seem to work. Also main_window->propertiesTreeView->update() does not work.
2. Sometimes I need to let the user to start the filter on a given selected entity, but next i need to let the user chose other entities, from a combobox for example. How can I get the list of all the entities present in dbRoot (I guess) for a given type (i.e. CC_POINT_CLOUD)? Is there any convenient way?
3. I think I will need to add new types to CC. For example PCL permits the computation of several features descriptor, so it will be useful to create a new type, something like "PCL_FEATURE_DESCRIPTOR" to being able to show this data inside the tree view, as a cloud's child, and so on ... Is this possible without the need to change internal CC code? The same for Keypoints etc...
4. On slowness of point picking tool. I see that is pretty slow on big clouds. I had a look at implementation and I see is based on some OpenGL functionality, isn't? I don't know anythink on how OpenGl performs this but i think it would be faster to implement a method based on octree and box/ray technique.
http://www.opengl.org/resources/faq/tec ... ection.htm gives some interesting hints
http://jgt.akpeters.com/papers/WilliamsEtAl05/ this paper describe an efficient implementation of the ray/box intersection algorithm.
is this feasible? Could this improve the velocity in point picking? I really need a fast picking tool for my work, so I could try to implement this if it is a good solutions, but i will need some information on how to work with cc implementation of octree etc..
Thanks a lot
Luca
My plugin creates a new toolbar with a set of functions taken from PCL (PointCloudLibrary).
So, questions:
1. Some of the functions simply add a scalar field (or colors or normals). How can I then update the Properties view? I can have access to public methods of MainWindow but i cannot find a method actually working for this task. MainWindow::update() and MainWindow::UpdateUI() does not seem to work. Also main_window->propertiesTreeView->update() does not work.
2. Sometimes I need to let the user to start the filter on a given selected entity, but next i need to let the user chose other entities, from a combobox for example. How can I get the list of all the entities present in dbRoot (I guess) for a given type (i.e. CC_POINT_CLOUD)? Is there any convenient way?
3. I think I will need to add new types to CC. For example PCL permits the computation of several features descriptor, so it will be useful to create a new type, something like "PCL_FEATURE_DESCRIPTOR" to being able to show this data inside the tree view, as a cloud's child, and so on ... Is this possible without the need to change internal CC code? The same for Keypoints etc...
4. On slowness of point picking tool. I see that is pretty slow on big clouds. I had a look at implementation and I see is based on some OpenGL functionality, isn't? I don't know anythink on how OpenGl performs this but i think it would be faster to implement a method based on octree and box/ray technique.
http://www.opengl.org/resources/faq/tec ... ection.htm gives some interesting hints
http://jgt.akpeters.com/papers/WilliamsEtAl05/ this paper describe an efficient implementation of the ray/box intersection algorithm.
is this feasible? Could this improve the velocity in point picking? I really need a fast picking tool for my work, so I could try to implement this if it is a good solutions, but i will need some information on how to work with cc implementation of octree etc..
Thanks a lot
Luca