In Eyeshot version 12 we introduced a simplified representation of the scene that allows smooth Zoom/Pan/Rotate dynamic movements. This simplified representation is used only during dynamic movements (between the mouse down and mouse up events) and for non-current items when an assembly component is set as current (using Model.Entities.SetCurrent() for example).
This simplified representation, at the time of writing, does not use materials, environment mapping, shadows, silhouettes, line widths and textures. Other items not included are dimension tolerances, radial and diametric dimensions center marks. Item selection is also not drawn.
By default, the Turbo mode is not active. It kicks-in when the number of items in the scene goes beyond the Model.Turbo.MaxComplexity threshold (the default value is int.MaxValue). Turbo mode is most effective with complex scene graphs, therefore when many items or many nested levels are involved.
You can disable it using:
model1.Turbo.MaxComplexity = int.MaxValue;
You can make it always active using:
model1.Turbo.MaxComplexity = 0;
You can check if it is active using:
bool active = model1.Turbo.Enabled;
Preparing this simplified representation takes time, Eyeshot updates it automatically when the scene changes in terms of geometry but not when it changes in terms of color, material, visibility or when the display mode is changed.
To update the simplified representation manually, use:
This method also updates the scene extents, the visual refinement tolerance and, the planar shadow.
- Rebuilding the simplified representation takes time (from a few milliseconds to minutes for huge models). Try to limit the calls to Model.Entities.ComputeBoundingBox() method to the minimum necessary.
- If you need to do an interactive editing of the geometry, try to use the Model.Entities.SetCurrent()/ResetCurrent() method to reduce the number of items in scope or to disable/enable Turbo mode to reduce the number of simplified representation rebuilds.
- If the geometry is very far from world origin, the simplified representation could be more accurate compared to the actual one. To resolve this issue, please consider using the Model.RemoveJittering() method.
- Attribute entity badly affects rebuild speed
Build 12.0.347 Update
In this build the Turbo.OperatingMode and Lag properties have been added. The former allows a number of different representations for entities while the latter to know the exact secondary representation rebuild time in milliseconds. The different representations can be Geometry, GeometryAndEdges, Edges, and Boxes. Each one takes a different time to rebuild and provides a different visual result. With very large assemblies, you may want to sacrifice the visual accuracy in favor of smooth dynamic movements.
From this build, secondary representation is used also for camera animation and Eyeshot control resize.
From this build, the time to build secondary representation varies between different display modes.
Eyeshot 2020 Update
In Eyeshot 2020, we improved the secondary representation rebuild during "Edit Assembly", "Edit Parent", "Open Assembly" and "Close Assembly" commands, speaking in AssemblyDemo terminology. In particular, we are not always rebuilding the complete secondary representation but only what is strictly necessary during assembly navigation. This improves the assembly navigation with Turbo enabled, considerably.
Another improvement is the delay we introduced to allow switching between Zoom/Pan/Rotate before the detailed drawing occurs. This greatly improves user interaction and can be controlled by the Turbo.DetailedDrawingDelay setting.
Eyeshot 2020 also includes a new feature that pushes the need of Turbo secondary representation far ahead in terms of scene object count: the small object culling and frustum culling at any scene graph level during dynamic movements. Fo this reason, the default value for Turbo.MaxComplexity setting has been increased in code samples from 3.000 to 30.000.
So just to recap, here are Turbo representation pros and cons, updated to version 2020.
- On massive 2D drawings or 3D assemblies, it can be the only option to interactively Zoom/Pan/Rotate
- You can choose between boxes, geometry and geometry and edges representations
- It might be slow to compute
- It interferes with geometry editing
- Does not represent selection during dynamic movements at all
- It slows down subassembly edit and open operations
- Some drawing features are lost, like wires thickness and patter, materials texture, etc.