BotNavSim  v0.4.3
Mobile Robot Simulation
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 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
 CBotLoaderBot loader provides functions for finding and loading robots.
 CBotNavSimBotNavSim high-level manager class. Holds BotNavSim.State and controls state transition behaviour.
 CBotPathBotPath displays information about a recorded path taken or calculated.
 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
 CStubObservableA blank IObservable implementation (used when the _areas list is empty)
 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)
 CCubeData
 CLineData
 CEnvironmentEnvironment data
 CEnvironmentEditorEnvironment editor state machine class.
 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
 CIToolbarInterface for classes that implement a toolbar item
 CIWindowFunctionInterface for classes that implement a GUI.WindowFunction
 CLogProvides data logging capabilities. Data is logged in CSV format.
 CLogLoaderLog loader high level BotNavSim state manager
 CNavLoaderUsed to find and load INavigation implementations from .dll files.
 CObjectSerializerObject serializer utility class.
 CParamSensorParameter sensor is a 2D FOV sensor model, loosely based on real ultrasonic sensor behaviour
 CPidPid encapsulates PID control for floating point variables.
 CPidVector3PidVector3 encapsulates PID control for 3D vectors.
 CPluginFactoryPlugin factory utility class instantates interfaces from a DLL assembly file Adapted from: http://stackoverflow.com/questions/5751844/how-to-reference-a-dll-on-runtime
 CProximityDataProximity data structure.
 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.
 CSimulationThis is a manager class used to overlook the running of a simulation.
 CObserver
 CSettings
 CSpriteFadeFades a sprite alpha channel to invisible
 CStringsA utility class for strings used in this project.
 CTestCameraA test script that tracks trains a camera on a target object. This was used to test and build robot models.
 CUI_CameraControlsIToolbar class for controlling the camera.
 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
 CCreditSerializable (exposed to UnityEditor) for holding creditation data
 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_PromptIWindowFunction class that prompts the user for action.
 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_SimulationSettingsAn instantiable class that provides a UI for editing a given Simulation.Settings object
 CUI_ToolbarUI Toolbar provides controls for choosing which UI windows to display
 CUltrasonicSensorUltrasonic sensor model.