public void NotifyMidTransition(SimulationMethod method) { if (method == currentSimulationMethod && OnEcosystemMidTransition != null) { OnEcosystemMidTransition(); } }
public int GetRecommendedMaxParticles(SimulationMethod simMethod) { switch (simMethod) { case SimulationMethod.Texture: return(4096); case SimulationMethod.InteractionEngine: default: return(24); } }
private void restartSimulator(SimulationMethod method, EcosystemDescription ecosystemDescription, ResetBehavior resetBehavior) { switch (method) { case SimulationMethod.InteractionEngine: _ieSimulator.RestartSimulation(ecosystemDescription, resetBehavior); break; case SimulationMethod.Texture: _textureSimulator.RestartSimulation(ecosystemDescription, resetBehavior); break; default: throw new System.InvalidOperationException(); } }
public void NotifyEndedTransition(SimulationMethod method) { isPerformingTransition = false; if (method == _currentSimulationMethod) { switch (method) { case SimulationMethod.Texture: _currentDescription = _textureSimulator.currentDescription; break; case SimulationMethod.InteractionEngine: _currentDescription = _ieSimulator.currentDescription; break; } if (OnEcosystemEndedTransition != null) { OnEcosystemEndedTransition(); } } }
public void RestartSimulation(EcosystemDescription ecosystemDescription, ResetBehavior resetBehavior) { var oldMethod = _currentSimulationMethod; var newMethod = _simulationMethod; _currentSimulationMethod = newMethod; isPerformingTransition = true; if (OnEcosystemBeginTransition != null) { OnEcosystemBeginTransition(); } if (oldMethod != newMethod) { restartSimulator(oldMethod, EcosystemDescription.empty, resetBehavior); restartSimulator(newMethod, ecosystemDescription, resetBehavior); } else { restartSimulator(_currentSimulationMethod, ecosystemDescription, resetBehavior); } }
private void handleUserInput() { if (buttonOrKey("Restart", _resetParticlePositionsKey)) { RestartSimulation(ResetBehavior.ResetPositions); } if (buttonOrKey("Load Preset", _loadPresetEcosystemKey)) { RestartSimulation(_presetToLoad, ResetBehavior.ResetPositions); } if (buttonOrKey("Randomize Ecosystem", _randomizeEcosystemKey)) { RandomizeSimulation(ResetBehavior.ResetPositions); } if (buttonOrKey("Randomize Colors", _ranzomizeColorsKey)) { RandomizeSimulationColors(); } beginHorizontal(); if (buttonOrKey("Zoom In", _zoomInKey)) { _displayAnchor.localScale *= (1.0f + _zoomFactor); } if (buttonOrKey("Zoom Out", _zoomOutKey)) { _displayAnchor.localScale /= (1.0f + _zoomFactor); } endHorizontal(); beginHorizontal(); if (buttonOrKey("GPU", KeyCode.Alpha1) && _simulationMethod != SimulationMethod.Texture) { _simulationMethod = SimulationMethod.Texture; RestartSimulation(ResetBehavior.ResetPositions); } if (buttonOrKey("IE", KeyCode.Alpha2) && _simulationMethod != SimulationMethod.InteractionEngine) { _simulationMethod = SimulationMethod.InteractionEngine; RestartSimulation(ResetBehavior.ResetPositions); } endHorizontal(); if (_meshLods != null && _meshLods.Length > 0) { beginHorizontal(); for (int i = 0; i < _meshLods.Length; i++) { if (buttonOrKey("LOD" + i, KeyCode.F1 + i)) { particleMesh = _meshLods[i]; } } endHorizontal(); } beginHorizontal(); if (buttonOrKey("Save Ecosystem", _saveEcosystemKey)) { SaveEcosystem(); } if (buttonOrKey("Load Prev", _loadPrevEcosystem)) { loadAtOffset(-1); } if (buttonOrKey("Load Next", _loadNextEcosystem)) { loadAtOffset(1); } endHorizontal(); }