Skip to content

Commit

Permalink
debug draw mode
Browse files Browse the repository at this point in the history
  • Loading branch information
AdamPorcineFudgepuppy committed Jul 8, 2024
1 parent 13a39b2 commit af7fc66
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 12 deletions.
35 changes: 32 additions & 3 deletions src/ComputerscareDebug.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ struct ComputerscareDebug : ComputerscareMenuParamModule {
NUM_LIGHTS
};

std::vector<std::string> drawModes = {"Off","Horizontal Bars", "Dots", "Arrows", "Connected Arrows", "Horse"};
std::vector<std::string> drawModes = {"Off","Horizontal Bars", "Dots", "Lines", "Lines+Dot","Connected Shape", "Connected Shape + Dots"};
std::vector<std::string> textModes= {"Off","Poly List","Complex Rect","Complex Polar"};

float logLines[NUM_LINES] = {0.f};
Expand Down Expand Up @@ -388,8 +388,11 @@ struct DebugViz : TransparentWidget {
thicknesses.push_back(Vec(260 / (17.f), 0));
}
draw.drawLines(pts.get(), rThetaVec, colors, thicknesses);
} else if(drawMode==2) {
} else if(drawMode==2 || drawMode == 3 || drawMode == 4 || drawMode == 5|| drawMode == 6) {
//draw as dots, assuming [x0,y0,x1,y1,...]



float xx[16] = {};
float yy[16] = {};
float colorsToDraw[16] = {1.f};
Expand Down Expand Up @@ -434,11 +437,37 @@ struct DebugViz : TransparentWidget {
std::vector<Vec> polyVals;
std::vector<NVGcolor> colors;
std::vector<Vec> thicknesses;


std::vector<Vec> pointsVec = pts.get();
Points allOrigin = Points();
allOrigin.linear(numPoints,Vec(0,0),Vec(0,0));

for (int i = 0; i < 16; i++) {
colors.push_back(draw.sincolor(-colorsToDraw[i]/3, {1, 1, 2}));
}
draw.drawDots(pts.get(),colors,5.f);

//std::vector<Vec> rthetaVec = rthetaVec.linear(16, Vec(0, 0), Vec(0, 0));
Points rtheta = Points();
rtheta.linear(numPoints, Vec(40, 0), Vec(0, 12));

if(drawMode==2) {
draw.drawDots(pointsVec,colors,5.f);
} else if(drawMode==3) {
//lines from origin
draw.drawLinesFromTo(allOrigin.get(),pts.get(),nvgRGB(30,120,230),1.2f);
} else if(drawMode == 4) {
//thin line and dot
draw.drawLinesFromTo(allOrigin.get(),pts.get(),nvgRGBA(30,120,230,100),1.2f);
draw.drawDots(pointsVec,colors,5.f);
} else if(drawMode == 5) {
//connected shape
draw.drawShape(pointsVec,nvgRGBA(30,120,230,50),nvgRGB(120,0,40),1.f);
} else if(drawMode == 6) {
//connected shape and dots
draw.drawShape(pointsVec,nvgRGBA(30,120,230,50),nvgRGB(120,0,40),1.f);
draw.drawDots(pointsVec,colors,5.f);
}

}
}
Expand Down
33 changes: 24 additions & 9 deletions src/drawFunctions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,7 @@ struct DrawHelper {
DrawHelper(NVGcontext* ctx) {
vg = ctx;
}
void drawShape(std::vector<Vec> points, NVGcolor fillColor = COLOR_COMPUTERSCARE_PINK) {
drawShape(points, fillColor, COLOR_COMPUTERSCARE_TRANSPARENT, 0.f);
}
void drawShape(std::vector<Vec> points, NVGcolor fillColor, NVGcolor strokeColor) {
drawShape(points, fillColor, strokeColor, 1.f);
}
void drawShape(std::vector<Vec> points, NVGcolor strokeColor, float thickness) {
drawShape(points, COLOR_COMPUTERSCARE_TRANSPARENT, strokeColor, thickness);
}

void drawShape(std::vector<Vec> points, NVGcolor fillColor, NVGcolor strokeColor, float thickness) {
unsigned int n = points.size();
nvgSave(vg);
Expand Down Expand Up @@ -122,6 +114,29 @@ struct DrawHelper {
}
nvgRestore(vg);
}
void drawOneLine(float x0,float y0, float x1, float y1, NVGcolor strokeColor = COLOR_COMPUTERSCARE_RED, float thickness = 1.f) {
nvgStrokeColor(vg, strokeColor);
nvgStrokeWidth(vg, thickness);


nvgBeginPath(vg);
nvgMoveTo(vg, x0,y0);
nvgLineTo(vg, x1,y1);
nvgStroke(vg);
nvgClosePath(vg);

}
void drawLinesFromTo(std::vector<Vec> pointsFrom, std::vector<Vec> pointsTo, NVGcolor strokeColor = COLOR_COMPUTERSCARE_RED, float thickness = 1.f) {
unsigned int n = pointsFrom.size();
nvgSave(vg);

for (unsigned int i = 0; i < n; i++) {
drawOneLine(pointsFrom[i].x, pointsFrom[i].y,pointsTo[i].x , pointsTo[i].y,strokeColor,thickness);

}

nvgRestore(vg);
}
void drawField(std::vector<Vec> points, NVGcolor strokeColor = BLACK, float length = 4, float thickness = 1.f) {
unsigned int n = points.size();
nvgSave(vg);
Expand Down

0 comments on commit af7fc66

Please sign in to comment.