Renderable
Description
This merge request completes the basic rendering of haptic surfaces with various 3D geometries that can be arbitrarily transformed with translation, rotation, shear, and scale.
The previously created geometry classes are used as the basis for the classes in Renderable.cs, RenderableGeometry2D.cs, and RenderableGeometry3D.cs. These renderable classes augement the geometric calculations with rules about how to render a certain geometry as a haptic surface, either from the interior or exterior.
The classes in HapticSurface.cs, which derive from the base HapticObject class, take a renderable geometry and apply a set of surface properties so that the outputs of the calculations can be converted into forces applied at the endpoint.
Haptic surfaces with diffferent geometries can be tested in BurtSharp.Sandbox.HapticGeometryTest.
What to focus on
- This code was already reviewed by @e.mahan, as described in this comment: !415 (comment 79311). The changes that I have made to the code since that review have all been related to debugging; therefore, we are assuming that the code does not need to be re-reviewed. Instead, it will be tested for functionality in BurtSharp.Sandbox.HapticGeometryTest and in LaundryLoader.
- In HapticGeometryTest, go through each "scene" and check that the surfaces are rendered correctly without any unexpected force discontinuities. Apply the rotation, shearing, and scaling transforms and check that they are still rendered correctly.
- In LaundryLoader (commit 8d6810cd4bb838c8ff628489408dbd4cd0ca6081 in feature/renderable), check that all haptic surfaces are rendered correctly.