Support skew in periodic simulations

Registered by Václav Šmilauer

1. Add Vector3r Scene::cellSkew holding relative skew.

2. Support skew in (at least) Bo1_Sphere_Aabb: Bound::{min,max} are spatial coords of the parallelepiped, but Aabb::halfSize is not (max-min)/2, but axial distance. The Aabb must be enlarged so that the parallelepiped does contain the whole sphere. Add BoundFunctor::skew, which will (at every step) mirror (by BoundDispatcher) Scene::cellSkew. Non-supported functors should throw if skew is non-zero, with explanation.

3. Support skew in Gl1_Aabb (just by always drawing parallelepiped instead of plain box)

4. Support skew in InsertionSortCollider: transform the coordinates when copying (use Aabb::{center,halfSize}).

5. Support skew in InteractionDispatchers: add it to shift2 if needed. Optionally add the same code to InteractionGeometryDispatcher.

No other changes seem to be needed.

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
Václav Šmilauer
Direction:
Approved
Assignee:
Václav Šmilauer
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Václav Šmilauer
Completed by
Václav Šmilauer

Related branches

Sprints

Whiteboard

The actual implementation didn't change the collider, but rather changed the meaning of Bound::{min,max}: they are always the unskewed (unsheared) coordinates rather than the coordinates of the physical space.

Bruno implemented velocity gradient based integration and homothetic resize.

(future changes will only refine thecurrent implementation, closing this one)

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.