BotNavSim  v0.4.3
Mobile Robot Simulation
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 CBotLoaderBot loader provides functions for finding and loading robots.
 CBotNavSimBotNavSim high-level manager class. Holds BotNavSim.State and controls state transition behaviour.
 CUI_Credits.CreditSerializable (exposed to UnityEditor) for holding creditation data
 CDraw.CubeData
 CEnvLoaderEnvironment loader searches for and loads environment GameObjects from the Unity Resources folder.
 CFileBrowserFile browser utility class for finding files and folders.
 CHSBColorUtility struct for transforming RGB Color to HSB Color (sourced from a previous project)
 CINavigationINavigation interface for robot navigation algorithms. This component of the robot is responsible for calculating a direction along a path to a specified location.
 CIObservableInterface for objects that are observable via CamController must keep their world bounds up-to-date
 CBotPathBotPath displays information about a recorded path taken or calculated.
 CCamController.StubObservableA blank IObservable implementation (used when the _areas list is empty)
 CLogLoaderLog loader high level BotNavSim state manager
 CRobotRobot class bridges the gap between sensors and INavigation. The navigation direction is cached in Robot.navigationCommand. This class does not implement any physics simulation. Robot locomotion models are implemented in other classes that require this component for communications and data.
 CSimulation.Observer
 CIWindowFunctionInterface for classes that implement a GUI.WindowFunction
 CIToolbarInterface for classes that implement a toolbar item
 CUI_CameraControlsIToolbar class for controlling the camera.
 CUI_EnvironmentEditorIToolbar class provides controls for the Environment Editor (not implemented!)
 CUI_LogIToolbar class for providing controls of data logging. Includes editing parameters to log and enable/disable logging. Calls functions to Log class
 CUI_LogLoaderIToolbar class provides controls for loading and viewing CSV data logs.
 CUI_RobotEditorIToolbar class provides controls for the Robot Editor (not implemented!)
 CUI_SimulationBatchIToolbar class for displaying and editing the simulation batch list
 CUI_SimulationControlIToolbar class for simulation control. Provides controls for pausing, stopping or skipping the current test Provides a toggle for exhibition mode. Provides a slider for simulation timescale.
 CUI_CreditsIWindowFunction class for displaying credits. Also inherits from MonoBehaviour to expose credit data to UnityEditor when added as a component to the UI GameObject
 CUI_PromptIWindowFunction class that prompts the user for action.
 CUI_SimulationSettingsAn instantiable class that provides a UI for editing a given Simulation.Settings object
 CDraw.LineData
 CLogProvides data logging capabilities. Data is logged in CSV format.
 CMonoBehaviour
 CArDroneAR Drone control system implementation. Developed with data from http://parrotcontact.emencia.net/website/user-guides/download-user-guides.php?pdf=ar-drone-2/AR-Drone-2_User-guide_Android_UK.pdf See final report for diagram of implementation.
 CBoeBotBoeBot differential drive control system. Built using data from: https://www.parallax.com/product/900-00008 See final report for diagram of implementation
 CCamControllerControls the camera orientation and render modes according to ViewMode in viewModeList user input. viewModeList is maintained by the state manager class in control i.e. Simulation, LogLoader, RobotEditor, EnvironmentEditor
 CDestinationSets a random sprite for displaying the robot destination.
 CDrawDraws stuff, useful for displaying debug data in the simulation. Note that GL implementations require that this Monobehaviour be attached to a the rendering camera (OnPostRender event)
 CEnvironmentEnvironment data
 CEnvironmentEditorEnvironment editor state machine class.
 CLogLoaderLog loader high level BotNavSim state manager
 CRobotRobot class bridges the gap between sensors and INavigation. The navigation direction is cached in Robot.navigationCommand. This class does not implement any physics simulation. Robot locomotion models are implemented in other classes that require this component for communications and data.
 CRobotEditorRobot editor state machine.
 CSensorAbstract Sensor class for all sensor implementations to inherit from.
 CParamSensorParameter sensor is a 2D FOV sensor model, loosely based on real ultrasonic sensor behaviour
 CUltrasonicSensorUltrasonic sensor model.
 CSimulationThis is a manager class used to overlook the running of a simulation.
 CSpriteFadeFades a sprite alpha channel to invisible
 CTestCameraA test script that tracks trains a camera on a target object. This was used to test and build robot models.
 CUI_CreditsIWindowFunction class for displaying credits. Also inherits from MonoBehaviour to expose credit data to UnityEditor when added as a component to the UI GameObject
 CUI_ToolbarUI Toolbar provides controls for choosing which UI windows to display
 CNavLoaderUsed to find and load INavigation implementations from .dll files.
 CObjectSerializerObject serializer utility class.
 CPidPid encapsulates PID control for floating point variables.
 CPidVector3PidVector3 encapsulates PID control for 3D vectors.
 CPluginFactory< T >Plugin factory utility class instantates interfaces from a DLL assembly file Adapted from: http://stackoverflow.com/questions/5751844/how-to-reference-a-dll-on-runtime
 CPluginFactory< INavigation >
 CProximityDataProximity data structure.
 CSimulation.Settings
 CStringsA utility class for strings used in this project.