|
1 | 1 | // Processing_api.h |
2 | 2 | // Included in user-defined classes that don't inherit from PApplet. |
3 | | -// Most free functions come from Processing.h (included below). |
4 | | -// This file only adds sketch state accessors that require g_papplet. |
| 3 | +// Provides sketch state accessors and drawing forwarders via g_papplet. |
5 | 4 | #pragma once |
6 | 5 | #include "Processing.h" |
7 | 6 | #include <string> |
@@ -30,3 +29,87 @@ inline bool isKeyDown(int k) { |
30 | 29 | if(!PApplet::g_papplet||k<0||k>=256) return false; |
31 | 30 | return PApplet::g_papplet->keysDown[k]; |
32 | 31 | } |
| 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