Shade triangle-list markers like other objects. #833
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My current project is using triangle-list markers (in interactive markers) to show meshes that are loaded via MoveIt. However the current version of rviz does not do any shading of triangle-list markers. (It was not computing the surface normals of the faces.) Therefore triangle-list marker coloring is completely flat, so all you can see is the outline. This pull request fixes this so that triangle-list markers are shaded the same as meshes and primitive shapes. I compute the surface normal using the cross-product of the edges. If the cross-product is (0,0,0), Ogre::Vector3::normalise() does nothing ( http://www.ogre3d.org/docs/api/1.9/_ogre_vector3_8h_source.html#l00446 ), so I don't need to check for it myself.
Before:
![old_box](https://cloud.githubusercontent.com/assets/1562730/5459038/251ace02-850c-11e4-95fb-2ee502119578.png)
After:
![new_box](https://cloud.githubusercontent.com/assets/1562730/5459042/2d035512-850c-11e4-999b-4b0de0919e60.png)