Refactor controllers
This MR aims to refactor the VirtualCouplingObject class into a SceneObjectController, as well as correct some style and architecture issues.
97fc549f
STYLE: correct identationConvert tabs to 4 spaces
fbc48bae
ENH: simplify TrackingController constructor- Get rid of scaling in constructor (too many parameters, why choose scaling and not others? Use
setTranslationScaling
instead) - No more default
nullptr
value forDeviceClient
in controller constructor
85470771
ENH: Implement getMasterGeometryReturns the master geometry. A geometry is qualified master by the direction of the geometry maps of the object. For example with a dynamic object, physic geometry will drive the changes to the colliding geometry, which will drive the changes to the visual geometry...
d8fee1f4 (fixes #84 (closed))
ENH: Divide SceneObject & CollidingObjectColliding geometry is only in CollidingObject, not
SceneObject`. To do this, we also had to :
- Have
PbdObject
inheritCollidingObject
(in the future there should not be a distinct object class just for Pbd : there should just be dynamical objects that can use different models, like Pbd or FEM) - Remove useless checks when creating interactions: even two colliding objects (not dynamic, aka static) could be interacting if they are both controlled by devices
0340bde7
STYLE: correct some includes and forward declarations7c272963
ENH: remove interface for transforming geometry in RigidObjectWe are still wondering how to store/apply our geometries. Having yet another interface to only wrap the API to transform the geometry is not needed: we can directly call them on the geometry themselves for more transparency on what geometry is being updated. This should be investigated later on when we will work with rigid body dynamics.
#99 (closed))
ENH: Refactor VirtualCouplingObject in a controller (fixes-
SceneObjectController
: similar to cameraController, it subclasses trackingController to update the transformation of an object master geometry, instead of updating itself. -
SceneObject
: similar to camera, has an interface to easily setup a controller using a device client. -
CollidingObject
: stores the force vector that needs to be applied to the device. -
SceneManager
: make the API calls from controller instead of object