- Add: Support for several SOFA types for parameter exchange: Vec3, vector, vector, vector, Mat3 and string
- Add: Security breakdown: if high velocity is detected. It is possible to use callback to unactive Unity components.
- Add: Handling of sofa.ini file inside Unity to set Sofa resources and examples path. This fix the caduceus absolute path issue.
- Add: New script to copy SofaUnity resources when building App with Unity.
- Create SofaUnity additional assets regarding (see Assets Available):
- Geomagic Haptic tool controller: Track tool position from Sofa simulation and tool buttons activation.
- Organ models: 3D organs models, with textures and correspongin collision models as well as an example scene.
- XRay rendering: Render X-Ray image of 3D organs from SOFA simulation.
- VR Surgical Room: Collection of 3D models of surgical tools and devices. With textures and controller scripts.
- VR Interaction tools: collection of script to be able to use the VR controller (Oculus or Vive) to interact with the 3D view and SOFA simulation.
- Add: Bool to activate or freeze the simulation in sofaContext.
- Add: Dictionnary to translate the error code return by SofAdvancePhysicsAPI.dll and update all the logs.
- Add: Method: sofaLog() to automatically format info in the logs. Can be display using bool log parameter.
- Add: New script to reverse all normals of a mesh at start.
- Add: Method and counter to track unity life cycle.
- Add: Option in SSphereCollision to be able to use a unique sphere position.
- Change: SofaBaseMesh is now using Sofa componoent topology revision to detect changes.
- Move: all object hiearchy creation into a specific class created as soon as one SObject is created.
Experimental Work on Multi-threading support:
- Change: There are now 2 SofaContext update method, either sync or async updateImpl. Set to sync for the moment as async is experimental.
- Change: Use the new sofaAdvancePhysicsAPI signature to pass the number of thread to be created at construction inside Sofa.
- Change: SObject and SRayCaster register themself inside the hiearchy to be able to run Async update.
Major bug fix:
- Fix: It is now possible to reload a SOFA scene inside the SofaContext.
- Fix: All assets to be compatible with unity windows App build.
- Fix: Crash when closing simulation. SofaContext was free twice at end.
- Fix: Crash when license checked failed.
- Fix: Sofa plugin loading method to use relative path to the Unity app.
- Fix: All Unity components check that their corresponding Sofa object is well init. If not, Unity object is disabled.
- Fix: Check code error when creating SOFA context. Set sofaContextAPI to not ready if creation failed.
- Fix: Components GUI parameters are now well saved between editor and play mode.
Other bug Fix:
- Fix: problem of bad normal directions after changing the topology in visual mesh.
- Fix: Attach tool interactor explosing the liver because of too high stiffness. Add option to be able to change this value.
- Fix: Texture2DFromRaw init when no target and inherite from SBaseObject and be in the Sofa object hierachy.
- Fix: SpereCollisionModel problem of allocating too big buffers and freezing Unity.
- Fix: Bug of bad deletion of rayCaster causing Unity to crash.
- Fix: Liver, demo_fall_1, demo_fall_2, benchmarks, tissue_fall and interactions demos.