Using Custom Visualization for Entities
These examples show how you can create MATLAB based custom visualization for entities. The example illustrates the visualization of a restaurant layout with customer entities entering, dining, and leaving.
Structure of Model
The model contains the following major components:
- The Resource Pool block models the tables in the restaurant. Since there are 10 tables in the restaurant, the resource amount is 10.
- The Entity Generator block (Patron Enter) generates entities representing customers. They enter a waiting area, represented by a Resource Acquire. Here they wait for a free table.
- When a table is available for a customer, he can move to the Entity Server block which models the duration of eating.
- When the customer is done eating, he releases the table back to the pool and exits the restaurant.
modelname = 'seExampleCustomVisualization'; open_system(modelname);
Visualizing the Restaurant
seExampleRestaurantAnimator visualizes the restaurant as follows:
- seExampleRestaurantAnimator provides the visualization of the restaurant layout for the model.
- It generates the figure containing the layout of a restaurant with an entrance, a waiting area, 10 dining tables, and an exit.
- As entities move during the simulation, it creates a marker (glyph) for each entity in the figure and programs motion for the marker so that it appears to move from one point to another.
- The animator assigns a table ID for each waiting customer and shows the customer moving to the table.
- To inspect the attributes of the customer entity, pause the model and click on a customer entity glyph. The figure displays the TimeToDine attribute.
- To make the motion appear continuous, it uses a MATLAB timer to periodically execute a function that incrementally moves each entity towards its destination.
- It uses MATLAB graphics to display statistics on the figure about the number of entities entering, waiting, and leaving.
- Clicking an entity in the visualization displays the attributes that it contains. It uses a MATLAB graphics callback to program a ButtonDownFcn on each entity marker.
animator = seExampleRestaurantAnimator; sim(modelname); waitfor(animator.getFigureHandle, 'Tag', 'End');
close(animator.getFigureHandle); bdclose all; clear modelname animator