Added more logging for debugging functionality
This commit is contained in:
@@ -2,7 +2,6 @@ package com.example.fitbot.ui.components;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Path;
|
import android.graphics.Path;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
@@ -13,8 +12,6 @@ import com.aldebaran.qi.sdk.QiContext;
|
|||||||
import com.example.fitbot.exercise.Exercise;
|
import com.example.fitbot.exercise.Exercise;
|
||||||
import com.example.fitbot.util.FitnessCycle;
|
import com.example.fitbot.util.FitnessCycle;
|
||||||
import com.example.fitbot.util.path.GesturePath;
|
import com.example.fitbot.util.path.GesturePath;
|
||||||
import com.example.fitbot.util.path.PathSegment;
|
|
||||||
import com.example.fitbot.util.processing.MotionData;
|
|
||||||
import com.example.fitbot.util.processing.MotionProcessor;
|
import com.example.fitbot.util.processing.MotionProcessor;
|
||||||
|
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
@@ -22,11 +19,8 @@ import org.joml.Vector2f;
|
|||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
import org.joml.Vector4f;
|
import org.joml.Vector4f;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
|
||||||
|
|
||||||
public class PersonalMotionPreviewElement extends View {
|
public class PersonalMotionPreviewElement extends View {
|
||||||
|
|
||||||
@@ -47,9 +41,11 @@ public class PersonalMotionPreviewElement extends View {
|
|||||||
private final Paint targetPaint = new Paint();
|
private final Paint targetPaint = new Paint();
|
||||||
private final Paint backgroundColor = new Paint();
|
private final Paint backgroundColor = new Paint();
|
||||||
|
|
||||||
private Matrix4f modelViewMatrix = new Matrix4f(); // The model view matrix for the 3D to 2D transformation.
|
private Matrix4f modelMatrix = new Matrix4f(); // The model view matrix for the 3D to 2D transformation.
|
||||||
|
private Matrix4f viewMatrix = new Matrix4f()
|
||||||
|
.lookAt(new Vector3f(4, 4, 4), new Vector3f(0, 0, 0), new Vector3f(0, 1, 0)); // The view matrix for the 3D to 2D transformation.
|
||||||
private Matrix4f projectionMatrix = new Matrix4f(); // The projection matrix for the 3D to 2D transformation.
|
private Matrix4f projectionMatrix = new Matrix4f(); // The projection matrix for the 3D to 2D transformation.
|
||||||
private final Vector4f objectPosition = new Vector4f(0, 0, -2, 1); // The location of the object in 3D space.
|
private final Vector4f objectPosition = new Vector4f(0, 0, 0, 1); // The location of the object in 3D space.
|
||||||
private ConcurrentLinkedQueue<Vector2f> vectors = new ConcurrentLinkedQueue<>();
|
private ConcurrentLinkedQueue<Vector2f> vectors = new ConcurrentLinkedQueue<>();
|
||||||
|
|
||||||
private Vector2f[] axisVectors;
|
private Vector2f[] axisVectors;
|
||||||
@@ -172,8 +168,7 @@ public class PersonalMotionPreviewElement extends View {
|
|||||||
|
|
||||||
|
|
||||||
private Vector2f projectVertex(Vector3f point, int virtualWidth, int virtualHeight) {
|
private Vector2f projectVertex(Vector3f point, int virtualWidth, int virtualHeight) {
|
||||||
|
modelMatrix
|
||||||
modelViewMatrix
|
|
||||||
.identity()
|
.identity()
|
||||||
.translate(-objectPosition.x, -objectPosition.y, -objectPosition.z);
|
.translate(-objectPosition.x, -objectPosition.y, -objectPosition.z);
|
||||||
|
|
||||||
@@ -185,8 +180,9 @@ public class PersonalMotionPreviewElement extends View {
|
|||||||
|
|
||||||
// Convert world coordinates to screen-space using MVP matrix
|
// Convert world coordinates to screen-space using MVP matrix
|
||||||
Vector4f screenCoordinates = new Vector4f(point, 1.0f)
|
Vector4f screenCoordinates = new Vector4f(point, 1.0f)
|
||||||
.mul(this.modelViewMatrix)
|
.mul(this.projectionMatrix)
|
||||||
.mul(this.projectionMatrix);
|
.mul(this.viewMatrix)
|
||||||
|
.mul(this.modelMatrix);
|
||||||
|
|
||||||
// Normalize screen coordinates from (-1, 1) to (0, virtualWidth) and (0, virtualHeight)
|
// Normalize screen coordinates from (-1, 1) to (0, virtualWidth) and (0, virtualHeight)
|
||||||
float normalizedX = (screenCoordinates.x / screenCoordinates.w + 1.0f) * 0.5f * virtualWidth;
|
float normalizedX = (screenCoordinates.x / screenCoordinates.w + 1.0f) * 0.5f * virtualWidth;
|
||||||
|
@@ -169,11 +169,13 @@ public class MotionProcessor {
|
|||||||
// Step 2: Create rotation matrices for each axis
|
// Step 2: Create rotation matrices for each axis
|
||||||
// Step 4: Rotate the acceleration vector
|
// Step 4: Rotate the acceleration vector
|
||||||
|
|
||||||
return motionData.acceleration
|
return motionData.rotation
|
||||||
|
.mul(5);
|
||||||
|
/*return motionData.acceleration
|
||||||
.rotateZ(-motionData.rotation.z)
|
.rotateZ(-motionData.rotation.z)
|
||||||
.rotateY(-motionData.rotation.y)
|
.rotateY(-motionData.rotation.y)
|
||||||
.rotateX(-motionData.rotation.x)
|
.rotateX(-motionData.rotation.x)
|
||||||
.mul(sampleRate * sampleRate / 2);
|
.mul(sampleRate * sampleRate / 2);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user