public static bool HasChangedBy(this QuaternionData data, QuaternionData comparison, double rotationThreshold) { return((Mathf.Abs(data.x - comparison.x) > rotationThreshold) || (Mathf.Abs(data.y - comparison.y) > rotationThreshold) || (Mathf.Abs(data.z - comparison.z) > rotationThreshold) || (Mathf.Abs(data.w - comparison.w) > rotationThreshold)); }
public void SaveAll() { health = player.Health; stamina = player.Stamina.Value; position = new Vector3Data(player.transform.position); rotation = new QuaternionData(player.transform.rotation); }
private void OrientationSensor_ReadingChanged(object sender, OrientationSensorChangedEventArgs e) { OrientationSensorData reading = e.Reading; QuaternionData data = Orientation; data.Value = reading.Orientation; data.TimeStamp = DateTime.UtcNow; data.SendNotification(); }
public unsafe OrientationDataPacket(UInt32 velocity, QuaternionData rotation) : this() { Velocity = velocity; Rotation = rotation; fixed(OrientationDataPacket *pointer = &this) { Packet.GenerateHeader((Packet.Header *)pointer, (UInt16)Marshal.SizeOf(this), (byte)CustomPackets.Type.OrientationData); } }
public RigidbodyData(Rigidbody body) { this.position = new Vector3Data(body.transform.position); this.rotation = new QuaternionData(body.transform.rotation); this.sleeping = body.IsSleeping(); if (!sleeping) { this.velocity = new Vector3Data(body.velocity); this.angularVelocity = new Vector3Data(body.angularVelocity); } }
public static QuaternionData Serialize(this Quaternion q) { QuaternionData quaternionData = new QuaternionData { x = q.x, y = q.y, z = q.z, w = q.w }; return(quaternionData); }
/// <summary> /// xIMUserial CalInertialAndMagneticDataReceived event to update algorithm in AHRS mode. /// </summary> static void xIMUserial_CalInertialAndMagneticDataReceived_updateAHRS(object sender, x_IMU_API.CalInertialAndMagneticData e) { AHRS.Update(Deg2Rad(e.Gyroscope[0]), Deg2Rad(e.Gyroscope[1]), Deg2Rad(e.Gyroscope[2]), e.Accelerometer[0], e.Accelerometer[1], e.Accelerometer[2], e.Magnetometer[0], e.Magnetometer[1], e.Magnetometer[2]); var quaternion = new[] { AHRS.Quaternion[0], -AHRS.Quaternion[1], -AHRS.Quaternion[2], 0 }; var quaternionData = new QuaternionData(quaternion); var conjugate = quaternionData.ConvertToConjugate(); var rotationMatrix = conjugate.ConvertToRotationMatrix(); _form3DcuboidB.RotationMatrix = rotationMatrix; _stopWatch.Stop(); _stopWatch.Reset(); }
public void ReadFromFile(MemoryStream stream, bool isBigEndian) { Unk0 = stream.ReadUInt32(isBigEndian); NumRotations = stream.ReadUInt32(isBigEndian); RotationData = new QuaternionData[NumRotations]; for (int i = 0; i < NumRotations; i++) { QuaternionData RotationInfo = new QuaternionData(); RotationInfo.KeyFrameStart = stream.ReadUInt32(isBigEndian); RotationInfo.KeyFrameEnd = stream.ReadUInt32(isBigEndian); RotationInfo.Unk0 = stream.ReadUInt16(isBigEndian); RotationInfo.KeyType = stream.ReadUInt16(isBigEndian); RotationInfo.Unk01 = stream.ReadByte8(); RotationInfo.Rotation = QuaternionExtensions.ReadFromFile(stream, isBigEndian); RotationInfo.Unk03 = stream.ReadSingle(isBigEndian); RotationData[i] = RotationInfo; } }
/// <summary> /// constructor /// </summary> public OrientationSensorService(IotNode parent) : base("OrientationSensor", parent) { Orientation = QuaternionData.CreateZeroData(nameof(Orientation)); }
public static Quaternion Deserialize(this QuaternionData quaternionData) { return(new Quaternion(quaternionData.x, quaternionData.y, quaternionData.z, quaternionData.w)); }
public Quaternion Lerp(QuaternionData other, float factor) { return(Quaternion.Slerp(this.Regenerate(), other.Regenerate(), factor)); }
public TransformData(Vector3Data pos, QuaternionData rot, Vector3Data scale) { this.position = pos; this.rotation = rot; this.scale = scale; }
public TransformData(Vector3 pos, Quaternion rot, Vector3 scale) { this.position = new Vector3Data(pos); this.rotation = new QuaternionData(rot); this.scale = new Vector3Data(scale); }
public static Quaternion ToQuaternion(this QuaternionData quaternion) { return(new Quaternion(quaternion.x, quaternion.y, quaternion.z, quaternion.w)); }