From ddda8b17c36a4d20e7a314c434869741d1f654ab Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 15 Jan 2020 12:04:14 -0800 Subject: [PATCH] Add backend code for sending points --- .../chameleonvision/web/RequestHandler.java | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java b/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java index dd7ff5f0f..b0c1dbde8 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java +++ b/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java @@ -18,8 +18,11 @@ import edu.wpi.cscore.VideoMode; import edu.wpi.first.wpilibj.geometry.Rotation2d; import io.javalin.http.Context; import io.javalin.http.Handler; +import org.opencv.core.Point; +import org.opencv.core.Point3; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -177,12 +180,31 @@ public class RequestHandler { public static void onPnpModel(Context ctx) throws JsonProcessingException { //noinspection unchecked - List points = kObjectMapper.readValue(ctx.body(), List.class); + List> points = kObjectMapper.readValue(ctx.body(), List.class); // each entry should be an xy pair - for(Object point: points) { - //noinspection RedundantCast - point = (List) point; + var pointsList = new ArrayList(); + for(List point: points) { + double x, y; + try { + x = (Double) point.get(0); + } catch (ClassCastException e) { + x = (Integer) point.get(0); + } + try { + y = (Double) point.get(1); + } catch (ClassCastException e) { + y = (Integer) point.get(1); + } + var pointToAdd = new Point3(x, y, 0.0); + pointsList.add(pointToAdd); + } + System.out.println(pointsList.toString()); + + if(VisionManager.getCurrentUIVisionProcess().pipelineManager.getCurrentPipeline().settings instanceof StandardCVPipelineSettings) { + var settings = (StandardCVPipelineSettings) VisionManager.getCurrentUIVisionProcess().pipelineManager.getCurrentPipeline().settings; + settings.targetCornerMat.fromList(pointsList); + var xxx = 4; } } }