This class manages emitters, primitives, raytracing and multithreading. Full XML docs for each field are included with the DLL. ```cs public class RaytracingContext { // Create + destroy public RaytracingContext(); public void Dispose(); // Customisable settings public Action<string> LogCallback; public bool LogMemoryAllocationWarnings; public int WorkItemCount; public int MaximumConcurrencyLevel; public int MaximumGroupedEAXCount; public float SpeedOfSound; public float MetersPerUnit; public float ReferenceFrequencyLF; public float ReferenceFrequencyHF; public bool EmittersOutsideTheWorldAreMuffled; public AirAbsorptionSettings AirAbsorption; public CustomEAXFormulas CustomEAXFormulas; public Vector3F WorldPosition; public Vector3F WorldSize; public Vector3F WorldMax; public MaterialProperties GetMaterial(MaterialType type); // The following settings are only available in debug builds, and only affect rendering public bool RenderingEnabled; public Color GetMaterialColor(MaterialType type); public void SetMaterialColor(MaterialType type, Color colour); public Vector3F CameraPosition; public float CameraPitch; public float CameraYaw; public float FieldOfView // Update + wait for threads public void Update(); public void Wait(); // Primitives public void AddPrimitive(Primitive primitive); public void RemovePrimitive(Primitive primitive); // Emitters public Emitter AddEmitter(Emitter emitter); public void RemoveEmitter(Emitter emitter); // Reverb public bool materialsDirty; public bool ReverbCalculated; public List<EAXReverbResults> GroupedEAX; public Action OnReverbUpdated; // Benchmarks public float MainThreadTime; public float PreparationTime; public float RaytracingTime; public float AnalysisTime; public int RaysCastThisFrame; public int TotalPossibleRayCount; public float RayCachePercent; } ```