void InsertEntityNotificationHandler(simengine.InsertSimulationEntity ins) { _entity = (simengine.LaserRangeFinderEntity)ins.Body; _entity.ServiceContract = Contract.Identifier; CreateDefaultState(); physics.RaycastProperties raycastProperties = new physics.RaycastProperties(); raycastProperties.StartAngle = -_state.AngularRange / 2.0f; raycastProperties.EndAngle = _state.AngularRange / 2.0f; raycastProperties.AngleIncrement = (float)_state.AngularResolution; raycastProperties.Range = LASER_RANGE; raycastProperties.OriginPose = new Pose(); _entity.RaycastProperties = raycastProperties; try { _entity.Register(_raycastResults); } catch (Exception ex) { LogError(ex); } // attach handler to raycast results port Activate(Arbiter.Receive(true, _raycastResults, RaycastResultsHandler)); }
void DeleteEntityNotificationHandler(simengine.DeleteSimulationEntity del) { _entity = null; }