@eyepop.ai/eyepop-render-2d 0.18.6 → 0.18.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/eyepop.render2d.index.d.mts +1 -0
- package/dist/eyepop.render2d.index.d.ts +1 -0
- package/dist/eyepop.render2d.index.js +77 -3
- package/dist/eyepop.render2d.index.js.map +1 -1
- package/dist/eyepop.render2d.index.mjs +77 -3
- package/dist/eyepop.render2d.index.mjs.map +1 -1
- package/dist/eyepop.render2d.min.js +1 -1
- package/package.json +2 -2
|
@@ -39,6 +39,7 @@ declare namespace Render2d {
|
|
|
39
39
|
function renderMask(target?: string): RenderRule;
|
|
40
40
|
function renderContour(target?: string): RenderRule;
|
|
41
41
|
function renderFace(target?: string): RenderRule;
|
|
42
|
+
function renderKeypoints(target?: string): RenderRule;
|
|
42
43
|
function renderHand(target?: string): RenderRule;
|
|
43
44
|
function renderPose(target?: string): RenderRule;
|
|
44
45
|
function renderTrail(durationSeconds?: number, traceDetails?: string | undefined, target?: string): RenderRule;
|
|
@@ -39,6 +39,7 @@ declare namespace Render2d {
|
|
|
39
39
|
function renderMask(target?: string): RenderRule;
|
|
40
40
|
function renderContour(target?: string): RenderRule;
|
|
41
41
|
function renderFace(target?: string): RenderRule;
|
|
42
|
+
function renderKeypoints(target?: string): RenderRule;
|
|
42
43
|
function renderHand(target?: string): RenderRule;
|
|
43
44
|
function renderPose(target?: string): RenderRule;
|
|
44
45
|
function renderTrail(durationSeconds?: number, traceDetails?: string | undefined, target?: string): RenderRule;
|
|
@@ -394,8 +394,8 @@ var RenderHand = class {
|
|
|
394
394
|
}
|
|
395
395
|
renderKeyPoints(keyPoints, fillColor, width, xOffset, yOffset, xScale, yScale) {
|
|
396
396
|
const labelsToPoints = /* @__PURE__ */ new Map();
|
|
397
|
-
let maxZ =
|
|
398
|
-
let minZ =
|
|
397
|
+
let maxZ = 1;
|
|
398
|
+
let minZ = -1;
|
|
399
399
|
for (let i2 = 0; i2 < keyPoints.points.length; i2++) {
|
|
400
400
|
const keyPoint = keyPoints.points[i2];
|
|
401
401
|
labelsToPoints.set(keyPoint.classLabel, keyPoint);
|
|
@@ -838,6 +838,76 @@ var RenderContour = class {
|
|
|
838
838
|
}
|
|
839
839
|
};
|
|
840
840
|
|
|
841
|
+
// render-keypoints.ts
|
|
842
|
+
var RenderKeyPoints = class {
|
|
843
|
+
start(context, style) {
|
|
844
|
+
this.context = context;
|
|
845
|
+
this.style = style;
|
|
846
|
+
}
|
|
847
|
+
draw(element, xOffset, yOffset, xScale, yScale, streamTime) {
|
|
848
|
+
if (element.keyPoints) {
|
|
849
|
+
const style = this.style;
|
|
850
|
+
if (!style) {
|
|
851
|
+
throw new Error("render() called before start()");
|
|
852
|
+
}
|
|
853
|
+
let fillColor = style.colors.primary_color;
|
|
854
|
+
for (let i = 0; i < element.keyPoints.length; i++) {
|
|
855
|
+
const keyPoints = element.keyPoints[i];
|
|
856
|
+
this.renderKeyPoints(keyPoints, fillColor, Math.max(element.width, element.height), xOffset, yOffset, xScale, yScale);
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
renderKeyPoints(keyPoints, fillColor, width, xOffset, yOffset, xScale, yScale) {
|
|
861
|
+
let maxZ = 1;
|
|
862
|
+
let minZ = -1;
|
|
863
|
+
for (let i2 = 0; i2 < keyPoints.points.length; i2++) {
|
|
864
|
+
const keyPoint = keyPoints.points[i2];
|
|
865
|
+
if (keyPoint.z) {
|
|
866
|
+
if (keyPoint.z > maxZ) {
|
|
867
|
+
maxZ = keyPoint.z;
|
|
868
|
+
}
|
|
869
|
+
if (keyPoint.z < minZ) {
|
|
870
|
+
minZ = keyPoint.z;
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
const context = this.context;
|
|
875
|
+
const style = this.style;
|
|
876
|
+
if (!context || !style) {
|
|
877
|
+
throw new Error("render() called before start()");
|
|
878
|
+
}
|
|
879
|
+
const MIN_RADIUS = 2;
|
|
880
|
+
const MAX_RADIUS = width / 40;
|
|
881
|
+
for (var i = 0; i < keyPoints.points.length; i++) {
|
|
882
|
+
const p = keyPoints.points[i];
|
|
883
|
+
const x = xOffset + p.x * xScale;
|
|
884
|
+
const y = yOffset + p.y * yScale;
|
|
885
|
+
const z = p.z ?? 0 * Math.max(xScale, yScale);
|
|
886
|
+
const radius = MAX_RADIUS - (z - minZ) * (MAX_RADIUS - MIN_RADIUS) / (maxZ - minZ);
|
|
887
|
+
context.beginPath();
|
|
888
|
+
context.arc(x, y, radius, 0, Math.PI * 2, false);
|
|
889
|
+
context.fillStyle = fillColor;
|
|
890
|
+
context.fill();
|
|
891
|
+
context.strokeStyle = style.colors.secondary_color;
|
|
892
|
+
context.stroke();
|
|
893
|
+
let label;
|
|
894
|
+
if (typeof p.visible == "undefined") {
|
|
895
|
+
label = p.classLabel;
|
|
896
|
+
} else {
|
|
897
|
+
label = `${p.classLabel} (${p.visible ? "visible" : "invisible"})`;
|
|
898
|
+
}
|
|
899
|
+
context.font = style.font;
|
|
900
|
+
context.fillStyle = "#ffffff";
|
|
901
|
+
context.textAlign = "left";
|
|
902
|
+
context.textBaseline = "top";
|
|
903
|
+
const tw = context.measureText(label);
|
|
904
|
+
let xPos = p.x * xScale + xOffset + radius;
|
|
905
|
+
let yPos = p.y * yScale + yOffset - (radius + tw.actualBoundingBoxAscent + tw.actualBoundingBoxDescent);
|
|
906
|
+
context.fillText(label, xPos, yPos);
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
};
|
|
910
|
+
|
|
841
911
|
// index.ts
|
|
842
912
|
var Render2d;
|
|
843
913
|
((Render2d2) => {
|
|
@@ -849,7 +919,7 @@ var Render2d;
|
|
|
849
919
|
return { render: new RenderBlur(), target };
|
|
850
920
|
}
|
|
851
921
|
Render2d2.renderBlur = renderBlur;
|
|
852
|
-
function renderBox(includeSecondaryLabels = false, target = "
|
|
922
|
+
function renderBox(includeSecondaryLabels = false, target = "$..objects.*") {
|
|
853
923
|
return { render: new RenderBox(includeSecondaryLabels), target };
|
|
854
924
|
}
|
|
855
925
|
Render2d2.renderBox = renderBox;
|
|
@@ -865,6 +935,10 @@ var Render2d;
|
|
|
865
935
|
return { render: new RenderFace(), target };
|
|
866
936
|
}
|
|
867
937
|
Render2d2.renderFace = renderFace;
|
|
938
|
+
function renderKeypoints(target = "$..objects[?(@.keyPoints)]") {
|
|
939
|
+
return { render: new RenderKeyPoints(), target };
|
|
940
|
+
}
|
|
941
|
+
Render2d2.renderKeypoints = renderKeypoints;
|
|
868
942
|
function renderHand(target = '$..objects[?(@.classLabel=="hand circumference")]') {
|
|
869
943
|
return { render: new RenderHand(), target };
|
|
870
944
|
}
|