aboutsummaryrefslogtreecommitdiff
path: root/calibrate.c
diff options
context:
space:
mode:
Diffstat (limited to 'calibrate.c')
-rw-r--r--calibrate.c72
1 files changed, 62 insertions, 10 deletions
diff --git a/calibrate.c b/calibrate.c
index 15c362c..ff3b774 100644
--- a/calibrate.c
+++ b/calibrate.c
@@ -14,6 +14,7 @@
struct SurviveContext * ctx;
int quit = 0;
+static int LighthouseCount = 0;
void HandleKey( int keycode, int bDown )
{
@@ -206,9 +207,9 @@ void DisplayPose(SurvivePose pose, size_t xResolution, size_t yResolution)
CNFGTackSegment(
(short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp1out[0]),
- yResolution-(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
+ (short)yResolution-(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
(short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp2out[0]),
- yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
+ (short)yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
}
// line for the (0,-y) to (0,+y))
@@ -232,9 +233,9 @@ void DisplayPose(SurvivePose pose, size_t xResolution, size_t yResolution)
CNFGTackSegment(
(short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp1out[0]),
- yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
+ (short)yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
(short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp2out[0]),
- yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
+ (short)yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
}
// Small line to indicate (0,+y)
@@ -244,23 +245,73 @@ void DisplayPose(SurvivePose pose, size_t xResolution, size_t yResolution)
FLT tmp2[3];
FLT tmp2out[3];
- tmp1[1] = minRectSize + ((pose.Pos[2] * 40.0));
+ tmp1[1] = minRectSize + ((pose.Pos[2] * 40.0)*1.3);
tmp1[2] = 0;
- tmp1[0] = tmp1[1] * 0.3;
+ tmp1[0] = ((pose.Pos[2] * 40.0)) * 0.3;
quatrotatevector(tmp1out, pose.Rot, tmp1);
- tmp2[1] = minRectSize + ((pose.Pos[2] * 40.0));
+ tmp2[1] = minRectSize + ((pose.Pos[2] * 40.0)*0.7);
+ tmp2[2] = 0;
+ tmp2[0] = -(((pose.Pos[2] * 40.0)) * 0.3);
+
+ quatrotatevector(tmp2out, pose.Rot, tmp2);
+
+ CNFGTackSegment(
+ (short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp1out[0]),
+ (short)yResolution - (short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
+ (short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp2out[0]),
+ (short)yResolution - (short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
+ }
+ // Small line to indicate (+x,0)
+ {
+ FLT tmp1[3];
+ FLT tmp1out[3];
+ FLT tmp2[3];
+ FLT tmp2out[3];
+
+ tmp1[0] = minRectSize + ((pose.Pos[2] * 40.0)*1.3);
+ tmp1[2] = 0;
+ tmp1[1] = tmp1[0] * 0.3;
+
+ quatrotatevector(tmp1out, pose.Rot, tmp1);
+
+ tmp2[0] = minRectSize + ((pose.Pos[2] * 40.0)*.7);
tmp2[2] = 0;
- tmp2[0] = -(tmp1[1] * 0.3);
+ tmp2[1] = -(tmp1[0] * 0.3);
quatrotatevector(tmp2out, pose.Rot, tmp2);
CNFGTackSegment(
(short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp1out[0]),
- yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
+ (short)yResolution - (short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
(short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp2out[0]),
- yResolution -(short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
+ (short)yResolution - (short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
+ }
+ // Small line to indicate (+x,0)
+ {
+ FLT tmp1[3];
+ FLT tmp1out[3];
+ FLT tmp2[3];
+ FLT tmp2out[3];
+
+ tmp1[0] = minRectSize + ((pose.Pos[2] * 40.0)*.7);
+ tmp1[2] = 0;
+ tmp1[1] = tmp1[0] * 0.3;
+
+ quatrotatevector(tmp1out, pose.Rot, tmp1);
+
+ tmp2[0] = minRectSize + ((pose.Pos[2] * 40.0)*1.3);
+ tmp2[2] = 0;
+ tmp2[1] = -(tmp1[0] * 0.3);
+
+ quatrotatevector(tmp2out, pose.Rot, tmp2);
+
+ CNFGTackSegment(
+ (short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp1out[0]),
+ (short)yResolution - (short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp1out[1]),
+ (short)(windowCenterX + (pose.Pos[0] * sizeScale) + tmp2out[0]),
+ (short)yResolution - (short)(windowCenterY + (pose.Pos[1] * sizeScale) + tmp2out[1]));
}
@@ -343,6 +394,7 @@ void * SurviveThread(void *jnk)
{
ctx = survive_init( 0 );
+
uint8_t i =0;
for (i=0;i<32;++i) {
sensor_name[i] = malloc(3);