aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx
diff options
context:
space:
mode:
authoreleanor-park <eleanor_park@brown.edu>2024-06-06 13:14:41 -0400
committereleanor-park <eleanor_park@brown.edu>2024-06-06 13:14:41 -0400
commit2277349fc4d5460e94a7a6b705b56488c0efb184 (patch)
tree73dc5fc6f74da323b903a6e9f5be870ce0cef23b /src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx
parent2f5757ffaebaec9d459404fec266295abeebd2b0 (diff)
working on creating ink strokes from pts
Diffstat (limited to 'src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx')
-rw-r--r--src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx b/src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx
index fc88b5cc6..7e66a62d4 100644
--- a/src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx
+++ b/src/client/views/collections/collectionFreeForm/SmartDrawHandler.tsx
@@ -23,7 +23,7 @@ export class SmartDrawHandler extends ObservableReactComponent<{}> {
@observable private _yRelativeToTop: boolean = true;
@observable private _isLoading: boolean = false;
@observable private _userInput: string = '';
- @observable public coords: InkData | undefined = undefined;
+ @observable public strokes: InkData[] = [];
constructor(props: any) {
super(props);
@@ -55,6 +55,7 @@ export class SmartDrawHandler extends ObservableReactComponent<{}> {
@action
drawWithGPT = async (startPoint: {X: number, Y: number}, input: string) => {
+ console.log("start point is", startPoint);
this.setIsLoading(true);
try {
const res = await gptAPICall(input, GPTCallType.DRAW);
@@ -63,13 +64,27 @@ export class SmartDrawHandler extends ObservableReactComponent<{}> {
return;
}
console.log("GPT response:", res);
- // controlPts: {X: number, Y: number}[] = []
- // code to extract list of coords from the string
- // this.coords = controlPts.map(pt: {X: number, Y: number } => {pt.X + startPoint.X, pt.Y + startPoint.Y});
-
+ try {
+ // const controlPts: [number, number][][] = JSON.parse(res) as [number, number][][];
+ // console.log("Control Points", controlPts);
+ // const transformedPts: { X: number; Y: number }[][] = [];
+ // controlPts.forEach(stroke => {
+ // stroke.map(pt => {
+ // pt.X += startPoint.X, pt.Y += startPoint.Y;
+ // });
+ // transformedPts.push(stroke);
+ // });
+
+ const controlPts: { X: number; Y: number }[][] = JSON.parse(res).map((stroke: [number, number][]) =>
+ stroke.map(([X, Y]) => ({ X: X + startPoint.X, Y: Y + startPoint.Y })));
+ console.log("transformed points", controlPts);
+ this.strokes = controlPts;
+ } catch (err) {
+ console.error('Incompatible GPT output type');
+ }
} catch (err) {
- console.error('GPT call failed');
+ console.error('GPT call failed', err);
}
this.setIsLoading(false);