public void SendCameraData(IConnectionProvider connectionProvider, Camera camera, DateTime time) { writer.BeginMessage(RemoteMessage.ARCameraData); writer.Write(camera.transform.position.x); writer.Write(camera.transform.position.y); writer.Write(camera.transform.position.z); writer.Write(camera.transform.rotation.x); writer.Write(camera.transform.rotation.y); writer.Write(camera.transform.rotation.z); writer.Write(camera.transform.rotation.w); for (int i = 0; i < 16; i++) { writer.Write(camera.projectionMatrix[0]); } writer.Write(camera.fieldOfView); writer.Write(time.Ticks); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendTouchInput(IConnectionProvider connectionProvider) { for (int i = 0; i < Input.touchCount; ++i) { Touch touch = Input.GetTouch(i); writer.BeginMessage(RemoteMessage.TouchInput); writer.Write(touch.position.x); writer.Write(touch.position.y); writer.Write((long)Time.frameCount); writer.Write(touch.fingerId); writer.Write((int)touch.phase); writer.Write((int)touch.tapCount); // Added in Unity 5.4 writer.Write(touch.radius); writer.Write(touch.radiusVariance); writer.Write((int)touch.type); writer.Write(touch.pressure); writer.Write(touch.maximumPossiblePressure); writer.Write(touch.azimuthAngle); writer.Write(touch.altitudeAngle); writer.EndMessage(stream); } if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendGyroscopeInput(IConnectionProvider connectionProvider) { // TODO: check updateInterval here.. Gyroscope gyro = Input.gyro; writer.BeginMessage(RemoteMessage.GyroInput); writer.Write(gyro.rotationRate.x); writer.Write(gyro.rotationRate.y); writer.Write(gyro.rotationRate.z); writer.Write(gyro.rotationRateUnbiased.x); writer.Write(gyro.rotationRateUnbiased.y); writer.Write(gyro.rotationRateUnbiased.z); writer.Write(gyro.gravity.x); writer.Write(gyro.gravity.y); writer.Write(gyro.gravity.z); writer.Write(gyro.userAcceleration.x); writer.Write(gyro.userAcceleration.y); writer.Write(gyro.userAcceleration.z); writer.Write(gyro.attitude.x); writer.Write(gyro.attitude.y); writer.Write(gyro.attitude.z); writer.Write(gyro.attitude.w); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendJoystickNames(IConnectionProvider connectionProvider) { string[] joystickNames = Input.GetJoystickNames(); if (joystickNames.Length == 0 && oldJoystickNames.Length == 0) { return; } if (!Enumerable.SequenceEqual(oldJoystickNames, joystickNames)) { oldJoystickNames = joystickNames; writer.BeginMessage(RemoteMessage.JoystickNames); writer.Write((byte)joystickNames.Length); foreach (string joystickName in joystickNames) { writer.Write(joystickName); } writer.EndMessage(stream); } if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendLocationServiceData(IConnectionProvider connectionProvider) { var data = new OldLocationData { isEnabledByUser = Input.location.isEnabledByUser, status = Input.location.status, lastData = Input.location.status == LocationServiceStatus.Running ? Input.location.lastData : default(LocationInfo) }; if (oldLocationData.HasValue && (oldLocationData.Value.Equals(data))) { return; } writer.BeginMessage(RemoteMessage.LocationServiceData); writer.Write(data.isEnabledByUser); writer.Write((int)data.status); writer.Write(data.lastData.timestamp); writer.Write(data.lastData.latitude); writer.Write(data.lastData.longitude); writer.Write(data.lastData.altitude); writer.Write(data.lastData.horizontalAccuracy); writer.Write(data.lastData.verticalAccuracy); writer.EndMessage(stream); oldLocationData = data; if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendReadyToStream(IConnectionProvider connectionProvider) { writer.BeginMessage(RemoteMessage.ReadyToScreenStream); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendDeviceOrientation(IConnectionProvider connectionProvider) { writer.BeginMessage(RemoteMessage.DeviceOrientation); writer.Write((int)Screen.orientation); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
internal void SendCustomData(IConnectionProvider connectionProvider, Func <PacketWriter, object> p, int v) { writer.BeginMessage(RemoteMessage.CustomData); writer.Write(v); p(writer); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendHello(IConnectionProvider connectionProvider) { writer.BeginMessage(RemoteMessage.Hello); writer.Write("UnityRemote"); writer.Write((uint)0); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendDeviceFeatures(IConnectionProvider connectionProvider) { writer.BeginMessage(RemoteMessage.DeviceFeatures); writer.Write(Input.touchPressureSupported); writer.Write(Input.stylusTouchSupported); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendTrackingStateChanged(IConnectionProvider connectionProvider, int data) { writer.BeginMessage(RemoteMessage.ARTrackingStateChanged); writer.Write(data); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendCustomData(IConnectionProvider connectionProvider, byte[] data, int id) { writer.BeginMessage(RemoteMessage.CustomData); writer.Write(id); writer.Write(data.Length); writer.Write(data); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendAccelerometerInput(IConnectionProvider connectionProvider) { writer.BeginMessage(RemoteMessage.AccelerometerInput); writer.Write(Input.acceleration.x); writer.Write(Input.acceleration.y); writer.Write(Input.acceleration.z); writer.Write(Time.deltaTime); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendTouchInput(IConnectionProvider connectionProvider, int ph, float x, float y) { writer.BeginMessage(RemoteMessage.CustomData); writer.Write((int)CustomDataID.InputEvent + 1); writer.Write(ph); writer.Write(x); writer.Write(y); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendGyroscopeSettings(IConnectionProvider connectionProvider) { Gyroscope gyro = Input.gyro; writer.BeginMessage(RemoteMessage.GyroSettings); writer.Write(gyro.enabled ? 1 : 0); writer.Write(gyro.updateInterval); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendOptions(IConnectionProvider connectionProvider) { // Add Screen size information // TODO: only send when changed writer.BeginMessage(RemoteMessage.Options); writer.Write(Screen.width); writer.Write(Screen.height); writer.Write((int)Screen.orientation); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendJoystickInput(IConnectionProvider connectionProvider) { writer.BeginMessage(RemoteMessage.JoystickInput); for (int joystick = 0; joystick < MAX_JOYSTICKS; joystick++) { WriteJoystick(joystick); } writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendWebCamDeviceList(IConnectionProvider connectionProvider, RemoteWebCamDevice[] devices) { writer.BeginMessage(RemoteMessage.WebCamDeviceList); writer.Write((uint)devices.Length); foreach (var device in devices) { writer.Write(device.device.isFrontFacing); writer.Write(device.name); } writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendWebCamStream(string name, int width, int height, byte[] image, int angle, bool verticallyMirrored, IConnectionProvider connectionProvider) { writer.BeginMessage(RemoteMessage.WebCamStream); writer.Write(name); writer.Write((uint)width); writer.Write((uint)height); writer.Write(angle); writer.Write(verticallyMirrored); writer.Write((uint)image.Length); writer.Write(image); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendPointCloudUpdated(IConnectionProvider connectionProvider, List <Vector3> points) { writer.BeginMessage(RemoteMessage.ARPointCloudData); writer.Write(points.Count); for (int i = 0; i < points.Count; i++) { writer.Write(points[i].x); writer.Write(points[i].y); writer.Write(points[i].z); } writer.EndMessage(stream); connectionProvider.SendMessage(stream); }
public void SendPlane(IConnectionProvider connectionProvider, int type, BoundedPlane Plane) { writer.BeginMessage(RemoteMessage.ARPlaneData); writer.Write((DateTime.UtcNow - ARRemotePath.connectedTime).TotalSeconds); writer.Write(Plane.Center.x); writer.Write(Plane.Center.y); writer.Write(Plane.Center.z); writer.Write(Plane.Pose.position.x); writer.Write(Plane.Pose.position.y); writer.Write(Plane.Pose.position.z); writer.Write(Plane.Pose.rotation.x); writer.Write(Plane.Pose.rotation.y); writer.Write(Plane.Pose.rotation.z); writer.Write(Plane.Pose.rotation.w); writer.Write(Plane.Size.x); writer.Write(Plane.Size.y); writer.Write((int)Plane.Alignment); writer.Write(type); byte[] t = StructToByteArray <TrackableId>(Plane.Id); IdToArray idToArray = ByteArrayToType <IdToArray>(t); writer.Write(idToArray.id0); writer.Write(idToArray.id1); byte[] subsumedToByte = StructToByteArray <TrackableId>(Plane.SubsumedById); IdToArray subsumedToArray = ByteArrayToType <IdToArray>(subsumedToByte); writer.Write(subsumedToArray.id0); writer.Write(subsumedToArray.id1); writer.EndMessage(stream); connectionProvider.SendMessage(stream); }
public void SendPointCloudUpdated(IConnectionProvider connectionProvider, PointCLoudUpdated data) { int size = sizeof(int) + (sizeof(float) * data.size * 3); byte[] buffer = new byte[size]; MemoryStream stream = new MemoryStream(buffer); BinaryWriter reader = new BinaryWriter(stream); reader.Write(data.size); foreach (var p in data.points) { reader.Write(p.x); reader.Write(p.y); reader.Write(p.z); } reader.Close(); connectionProvider.SendMessage(buffer, pointCloudUpdatedID); }
public void SendCompassData(IConnectionProvider connectionProvider) { var compass = Input.compass; var data = new OldCompassData { enabled = compass.enabled, magneticHeading = compass.magneticHeading, trueHeading = compass.trueHeading, headingAccuracy = 0.0f, rawVector = compass.rawVector, timestamp = compass.timestamp, }; if (oldCompassData.HasValue && (oldCompassData.Value.Equals(data))) { return; } writer.BeginMessage(RemoteMessage.CompassData); writer.Write(data.enabled); writer.Write(data.magneticHeading); writer.Write(data.trueHeading); writer.Write(data.headingAccuracy); writer.Write(data.rawVector.x); writer.Write(data.rawVector.y); writer.Write(data.rawVector.z); writer.Write(data.timestamp); writer.EndMessage(stream); oldCompassData = data; if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendTrackingStateChanged(IConnectionProvider connectionProvider, TrackingStateChanged data) { connectionProvider.SendMessage(StructToByteArray <TrackingStateChanged>(data), trackingStateChanged); }
public void SendFrameReceived(IConnectionProvider connectionProvider, CameraFrameReceived data) { connectionProvider.SendMessage(StructToByteArray <CameraFrameReceived>(data), frameReceivedID); }
public void SendFrameReceived(IConnectionProvider connectionProvider, ARCameraFrameEventArgs frameEventArgs) { if (ARSubsystemManager.cameraSubsystem == null) { return; } writer.BeginMessage(RemoteMessage.ARCameraFrameData); writer.Write(frameEventArgs.lightEstimation.averageBrightness.GetValueOrDefault()); writer.Write(frameEventArgs.lightEstimation.averageColorTemperature.GetValueOrDefault()); writer.Write(frameEventArgs.time.GetValueOrDefault()); var gotDisplayMatrix = ARSubsystemManager.cameraSubsystem.TryGetDisplayMatrix(ref dm); writer.Write(gotDisplayMatrix); if (gotDisplayMatrix) { for (int i = 0; i < 16; i++) { writer.Write(dm[i]); } } Matrix4x4 pm = Matrix4x4.identity; var gotProjectionMatrix = ARSubsystemManager.cameraSubsystem.TryGetProjectionMatrix(ref pm); writer.Write(gotProjectionMatrix); if (gotProjectionMatrix) { for (int i = 0; i < 16; i++) { writer.Write(pm[i]); } } byte fieldMask = 0; if (frameEventArgs.time.HasValue) { fieldMask |= 1 << 0; } if (frameEventArgs.lightEstimation.averageBrightness.HasValue) { fieldMask |= 1 << 1; } if (frameEventArgs.lightEstimation.averageColorTemperature.HasValue) { fieldMask |= 1 << 2; } if (gotProjectionMatrix) { fieldMask |= 1 << 3; } if (gotDisplayMatrix) { fieldMask |= 1 << 4; } writer.Write(fieldMask); writer.EndMessage(stream); if (connectionProvider != null) { connectionProvider.SendMessage(stream); } }
public void SendReferenePointUpdate(IConnectionProvider connectionProvider, ReferencePointUpdateID data) { connectionProvider.SendMessage(StructToByteArray <ReferencePointUpdateID>(data), referencePointUpdateID); }
public void SendPlane(IConnectionProvider connectionProvider, PlaneData planeData) { connectionProvider.SendMessage(StructToByteArray <PlaneData>(planeData), planeEventID); }