11// Processing_api.h
22// Included in user-defined classes that don't inherit from PApplet.
3- // Provides sketch state accessors and drawing forwarders via g_papplet.
3+ // Brings all Processing free functions into scope via using directive.
4+ // Sketch state variables (width, height, mouseX, etc.) are accessible
5+ // through the inline accessors below.
46#pragma once
57#include " Processing.h"
68#include < string>
79
810using namespace ::Processing;
911
1012// ── Sketch state accessors ────────────────────────────────────────────────────
13+ // These expose PApplet member variables as free functions for hoisted classes.
1114inline int width () { return PApplet::g_papplet ? PApplet::g_papplet->logicalW : 0 ; }
1215inline int height () { return PApplet::g_papplet ? PApplet::g_papplet->logicalH : 0 ; }
1316inline float mouseX () { return PApplet::g_papplet ? PApplet::g_papplet->mouseX : 0 .f ; }
@@ -29,87 +32,3 @@ inline bool isKeyDown(int k) {
2932 if (!PApplet::g_papplet||k<0 ||k>=256 ) return false ;
3033 return PApplet::g_papplet->keysDown [k];
3134}
32-
33- // ── Drawing forwarders ────────────────────────────────────────────────────────
34- // These are needed because Processing.h free functions are in namespace
35- // Processing, but hoisted classes need unqualified access.
36- // Note: random() is NOT forwarded here to avoid shadowing stdlib random().
37- // Use ::Processing::random() or PApplet::g_papplet->random() directly.
38- inline void pushMatrix () { if (PApplet::g_papplet) PApplet::g_papplet->pushMatrix (); }
39- inline void popMatrix () { if (PApplet::g_papplet) PApplet::g_papplet->popMatrix (); }
40- inline void push () { if (PApplet::g_papplet) PApplet::g_papplet->push (); }
41- inline void pop () { if (PApplet::g_papplet) PApplet::g_papplet->pop (); }
42- inline void pushStyle () { if (PApplet::g_papplet) PApplet::g_papplet->pushStyle (); }
43- inline void popStyle () { if (PApplet::g_papplet) PApplet::g_papplet->popStyle (); }
44- inline void beginShape (int k=-1 ){ if (PApplet::g_papplet) PApplet::g_papplet->beginShape (k); }
45- inline void endShape (int m=0 ) { if (PApplet::g_papplet) PApplet::g_papplet->endShape (m); }
46- inline void vertex (float x,float y) { if (PApplet::g_papplet) PApplet::g_papplet->vertex (x,y); }
47- inline void vertex (float x,float y,float z) { if (PApplet::g_papplet) PApplet::g_papplet->vertex (x,y,z); }
48- inline void translate (float x,float y) { if (PApplet::g_papplet) PApplet::g_papplet->translate (x,y); }
49- inline void translate (float x,float y,float z) { if (PApplet::g_papplet) PApplet::g_papplet->translate (x,y,z); }
50- inline void rotate (float a) { if (PApplet::g_papplet) PApplet::g_papplet->rotate (a); }
51- inline void rotateX (float a) { if (PApplet::g_papplet) PApplet::g_papplet->rotateX (a); }
52- inline void rotateY (float a) { if (PApplet::g_papplet) PApplet::g_papplet->rotateY (a); }
53- inline void rotateZ (float a) { if (PApplet::g_papplet) PApplet::g_papplet->rotateZ (a); }
54- inline void scale (float s) { if (PApplet::g_papplet) PApplet::g_papplet->scale (s); }
55- inline void scale (float x,float y) { if (PApplet::g_papplet) PApplet::g_papplet->scale (x,y); }
56- inline void fill (float g) { if (PApplet::g_papplet) PApplet::g_papplet->fill (g); }
57- inline void fill (float r,float g,float b) { if (PApplet::g_papplet) PApplet::g_papplet->fill (r,g,b); }
58- inline void fill (float r,float g,float b,float a){ if (PApplet::g_papplet) PApplet::g_papplet->fill (r,g,b,a); }
59- inline void fill (float g,float a) { if (PApplet::g_papplet) PApplet::g_papplet->fill (g,a); }
60- inline void fill (color c) { if (PApplet::g_papplet) PApplet::g_papplet->fill (c); }
61- inline void noFill () { if (PApplet::g_papplet) PApplet::g_papplet->noFill (); }
62- inline void stroke (float g) { if (PApplet::g_papplet) PApplet::g_papplet->stroke (g); }
63- inline void stroke (float r,float g,float b) { if (PApplet::g_papplet) PApplet::g_papplet->stroke (r,g,b); }
64- inline void stroke (float r,float g,float b,float a){ if (PApplet::g_papplet) PApplet::g_papplet->stroke (r,g,b,a); }
65- inline void stroke (float g,float a) { if (PApplet::g_papplet) PApplet::g_papplet->stroke (g,a); }
66- inline void stroke (color c) { if (PApplet::g_papplet) PApplet::g_papplet->stroke (c); }
67- inline void noStroke () { if (PApplet::g_papplet) PApplet::g_papplet->noStroke (); }
68- inline void strokeWeight (float w) { if (PApplet::g_papplet) PApplet::g_papplet->strokeWeight (w); }
69- inline void background (float g) { if (PApplet::g_papplet) PApplet::g_papplet->background (g); }
70- inline void background (float r,float g,float b) { if (PApplet::g_papplet) PApplet::g_papplet->background (r,g,b); }
71- inline void background (float r,float g,float b,float a){ if (PApplet::g_papplet) PApplet::g_papplet->background (r,g,b,a); }
72- inline void background (color c) { if (PApplet::g_papplet) PApplet::g_papplet->background (c); }
73- inline void point (float x,float y) { if (PApplet::g_papplet) PApplet::g_papplet->point (x,y); }
74- inline void line (float x1,float y1,float x2,float y2){ if (PApplet::g_papplet) PApplet::g_papplet->line (x1,y1,x2,y2); }
75- inline void line (float x1,float y1,float z1,float x2,float y2,float z2){ if (PApplet::g_papplet) PApplet::g_papplet->line (x1,y1,z1,x2,y2,z2); }
76- inline void rect (float x,float y,float w,float h){ if (PApplet::g_papplet) PApplet::g_papplet->rect (x,y,w,h); }
77- inline void rect (float x,float y,float w,float h,float r){ if (PApplet::g_papplet) PApplet::g_papplet->rect (x,y,w,h,r); }
78- inline void ellipse (float x,float y,float w,float h){ if (PApplet::g_papplet) PApplet::g_papplet->ellipse (x,y,w,h); }
79- inline void circle (float x,float y,float d) { if (PApplet::g_papplet) PApplet::g_papplet->circle (x,y,d); }
80- inline void triangle (float x1,float y1,float x2,float y2,float x3,float y3){ if (PApplet::g_papplet) PApplet::g_papplet->triangle (x1,y1,x2,y2,x3,y3); }
81- inline void arc (float x,float y,float w,float h,float s,float e){ if (PApplet::g_papplet) PApplet::g_papplet->arc (x,y,w,h,s,e); }
82- inline void arc (float x,float y,float w,float h,float s,float e,int m){ if (PApplet::g_papplet) PApplet::g_papplet->arc (x,y,w,h,s,e,m); }
83- inline void image (PImage* img,float x,float y) { if (PApplet::g_papplet) PApplet::g_papplet->image (img,x,y); }
84- inline void image (PImage* img,float x,float y,float w,float h){ if (PApplet::g_papplet) PApplet::g_papplet->image (img,x,y,w,h); }
85- inline void text (const ::std::string& s,float x,float y){ if (PApplet::g_papplet) PApplet::g_papplet->text (s,x,y); }
86- inline void text (int v,float x,float y) { if (PApplet::g_papplet) PApplet::g_papplet->text (v,x,y); }
87- inline void text (float v,float x,float y) { if (PApplet::g_papplet) PApplet::g_papplet->text (v,x,y); }
88- inline void textSize (float s) { if (PApplet::g_papplet) PApplet::g_papplet->textSize (s); }
89- inline void textAlign (int a,int b=-1 ) { if (PApplet::g_papplet) PApplet::g_papplet->textAlign (a,b); }
90- inline float textWidth (const ::std::string& s) { return PApplet::g_papplet ? PApplet::g_papplet->textWidth (s) : 0 ; }
91- inline void tint (float r,float g,float b,float a){ if (PApplet::g_papplet) PApplet::g_papplet->tint (r,g,b,a); }
92- inline void noTint () { if (PApplet::g_papplet) PApplet::g_papplet->noTint (); }
93- inline void colorMode (int m,float mx=255 .f) { if (PApplet::g_papplet) PApplet::g_papplet->colorMode (m,mx); }
94- inline void blendMode (int m) { if (PApplet::g_papplet) PApplet::g_papplet->blendMode (m); }
95- inline void noLoop () { if (PApplet::g_papplet) PApplet::g_papplet->noLoop (); }
96- inline void loop () { if (PApplet::g_papplet) PApplet::g_papplet->loop (); }
97- inline void redraw () { if (PApplet::g_papplet) PApplet::g_papplet->redraw (); }
98- inline PImage* loadImage (const ::std::string& p) { return PApplet::g_papplet ? PApplet::g_papplet->loadImage (p) : nullptr ; }
99- inline PImage* createImage (int w,int h,int m=1 ) { return PApplet::g_papplet ? PApplet::g_papplet->createImage (w,h,m) : nullptr ; }
100- inline float noise (float x) { return PApplet::g_papplet ? PApplet::g_papplet->noise (x) : 0 ; }
101- inline float noise (float x,float y) { return PApplet::g_papplet ? PApplet::g_papplet->noise (x,y) : 0 ; }
102- inline float noise (float x,float y,float z) { return PApplet::g_papplet ? PApplet::g_papplet->noise (x,y,z) : 0 ; }
103- inline float random (float hi) { return PApplet::g_papplet ? PApplet::g_papplet->random (hi) : 0 ; }
104- inline float random (float lo,float hi) { return PApplet::g_papplet ? PApplet::g_papplet->random (lo,hi) : 0 ; }
105- inline void lights () { if (PApplet::g_papplet) PApplet::g_papplet->lights (); }
106- inline void noLights () { if (PApplet::g_papplet) PApplet::g_papplet->noLights (); }
107- inline void box (float s) { if (PApplet::g_papplet) PApplet::g_papplet->box (s); }
108- inline void box (float w,float h,float d) { if (PApplet::g_papplet) PApplet::g_papplet->box (w,h,d); }
109- inline void sphere (float r) { if (PApplet::g_papplet) PApplet::g_papplet->sphere (r); }
110- inline void camera (float ex,float ey,float ez,float cx,float cy,float cz,float ux,float uy,float uz){ if (PApplet::g_papplet) PApplet::g_papplet->camera (ex,ey,ez,cx,cy,cz,ux,uy,uz); }
111- inline color lerpColor (color a,color b,float t) { return PApplet::g_papplet ? PApplet::g_papplet->lerpColor (a,b,t) : a; }
112- inline bool isKeyDown (int k) {
113- if (!PApplet::g_papplet||k<0 ||k>=256 ) return false ;
114- return PApplet::g_papplet->keysDown [k];
115- }
0 commit comments