44 void HandleKey(
int key) {std::cout <<
"Key: " << key << std::endl; }
45 void HandlePointer(
int button) { std::cout <<
"Pointer: " << button << std::endl; }
57 MovePointEventSurface(
Position2d &p,
Point2d tl,
Point2d br,
const float &speed) :p(p), tl(tl), br(br), speed(speed), moveleft(false), moveright(false), moveup(false), movedown(false)
59 p.p.x = (tl.x+br.x)/2;
60 p.p.y = (tl.x+br.x)/2;
66 case 273: moveup =
true;
break;
67 case 274: movedown =
true;
break;
68 case 275: moveright =
true;
break;
69 case 276: moveleft =
true;
break;
77 case 273: moveup =
false;
break;
78 case 274: movedown =
false;
break;
79 case 275: moveright =
false;
break;
80 case 276: moveleft =
false;
break;
90 if (moveup && moveleft) { speed2 /= sqrt(2); }
91 else if (moveup && moveright) { speed2 /= sqrt(2); }
92 else if (movedown && moveleft) { speed2 /= sqrt(2); }
93 else if (movedown && moveright) { speed2 /= sqrt(2); }
94 if (moveup) { p.p.y -= speed2; }
95 if (movedown) { p.p.y += speed2; }
96 if (moveleft) { p.p.x -= speed2; }
97 if (moveright) { p.p.x += speed2; }
98 if (p.p.y < tl.y) p.p.y = tl.y;
99 if (p.p.y > br.y) p.p.y = br.y;
100 if (p.p.x < tl.x) p.p.x = tl.x;
101 if (p.p.x > br.x) p.p.x = br.x;
131template<
class T,
class D,
class DC,
class DR>
142 virtual bool get_val(
float x,
float y)
const=0;
143 virtual void set_val(
float x,
float y,
bool b)=0;
155 rr.
br.
x = arr.Size();
156 rr.
tl.
y = float(r.start);
157 rr.
tl.
y = float(r.end);
160 float XCount()
const {
return arr.Size(); }
161 float YCount()
const {
return float(r.end) - float(r.start); }
173 assert(x<arr.Size());
175 assert(y<
float(r.end)-
float(r.start));
177 bool b = arr.Index(x) <
T(y);
185 if (x >= 0.0 && x < arr.Size())
187 arr[x] = r.start +
T(y);
188 float old_val = r.start;
189 float new_val = r.end;
201 std::cout <<
"ArrayDataType: Error, array index! " << std::endl;
218 float XCount()
const {
return r.br.x - r.tl.x; }
219 float YCount()
const {
return r.br.y - r.tl.y; }
226 for(
int i=0;i<arr.Size();i++)
231 float dist = sqrt(dx*dx +
dy*
dy);
232 if (dist<(r.br.x-r.tl.x)/140.0)
return true;
247 rr.
tl.
x = x-(r.br.x-r.tl.x)/140.0;
249 rr.
br.
x = x+(r.br.x-r.tl.x)/140.0;
277 bool Frame(
float time);
282 float screenx, screeny;
300 bool Frame(
float time);
314 typedef std::vector<FrameAnim*>::iterator
iterator;
317 for(
iterator i = vec.begin();i!=vec.end();i++)
324 for(
iterator i = vec.begin();i!=vec.end();i++)
331 for(
iterator i = vec.begin();i!=vec.end();i++)
333 (*i)->PreFrame(time);
338 for(
iterator i = vec.begin();i!=vec.end();i++)
346 for(
iterator i = vec.begin();i!=vec.end();i++)
353 std::vector<FrameAnim*> vec;
360 std::pair<float,float>
Size()
const
363 return std::make_pair(dt.XCount(), dt.YCount()); }
364 bool Index(std::pair<float, float> p)
const
366 return dt.get_val(p.first, p.second);
375 std::pair<int,int>
Size()
const {
return std::make_pair(x,y); }
376 bool Index(std::pair<int, int> p)
const
378 std::pair<float,float> pp = func.Size();
380 float ys = pp.second;
381 float xx =
Sample(p.first, x, xs);
382 float yy =
Sample(p.second, y, ys);
384 return func.Index(std::make_pair(xx,yy));
388 return float(x2)/float(intsize)*
size;
418 std::pair<Point2d, float>
Elem()
const
423 Point p2 = pl.u_p + pl.u_x;
424 Point p3 = pl.u_p + pl.u_y;
429 return std::make_pair(pp, i.
tuv.
dx);
463 dt.set_val(pos.x/x*dt.XCount(), pos.y/y*dt.YCount(),
true);
472 dt.set_val(pos.x/x*dt.XCount(), pos.y/y*dt.YCount(),
true);
477 dt.set_val(pos.x/x*dt.XCount(), pos.y/y*dt.YCount(),
false);
485 const Region &r = dt.InvalidRects();
487 for(
int i=0;i<
size;i++)
490 rr.
tl.
x *= x/dt.XCount();
491 rr.
tl.
y *= 2.0*y/dt.YCount();
492 rr.
br.
x *= x/dt.XCount();
493 rr.
br.
y *= 2.0*y/dt.YCount();
494 dtbitmap.Generate(rr);
499 dt.ClearInvalidRects();
515 TextureWidget(
BufferRef buffer,
TextureEvents &events,
int screensizex,
int screensizey,
Render *r) :
Widget(r), buffer(buffer), events(events), rectangle(screensizex, screensizey), quads_to_planes(rectangle), sx(screensizex), sy(screensizey), rectangle2(rectangle,
Matrix::Translate(0.0,0.0,0.1)), outline(rectangle2) { }
516 float XRot()
const {
return 1.0; }
517 float YRot()
const {
return 1.0; }
518 float ZRot()
const {
return 0.0; }
521 events.HandleKey(key);
526 events.HandlePointer(button);
538 bool Frame(
float time);
546 bool changed, changed2;
553class EditArray :
public Array<int, T>,
public Widget
556 EditArray(Array<int, T> &initial_val, Range<T> &r,
int x,
int y, Rect rect) : copy_array(initial_val), dt(copy_array, r), bitmap(dt, x,y), rect(rect)
558 copy_array.Generate();
571 dt.set_val(p.
x, p.
y,
true);
573 copy_array.Generate();
578 bool Frame(
float time)
583 CopyArray<T> copy_array;
585 DataTypeBitmap bitmap;
P func(int c, EveryApi &ev)
Definition test.cpp:59
void rectangle(Matrix m, float x, float y, FaceStore &s)
Definition Functions.cc:66
size dy
Definition GameApi_gui.cc:1727
ArrayConvert< Region, int, Rect > RegionConvert
Definition Graph.hh:100
LinePlaneIntersection LinePlaneIntersectionFunc(Point line_p1, Point line_p2, Point plane_p1, Point plane_p2, Point plane_p3)
Definition Intersect.cc:44
void ClearInvalidRects()
Definition Widgets.hh:162
bool get_val(float x, float y) const
Definition Widgets.hh:170
float YCount() const
Definition Widgets.hh:161
ArrayDataType(VectorArray< T > &arr, Range< T > &r)
Definition Widgets.hh:151
float XCount() const
Definition Widgets.hh:160
void set_val(float x, float y, bool b)
Definition Widgets.hh:181
const Region & InvalidRects() const
Definition Widgets.hh:166
virtual I Size() const =0
Definition Widgets.hh:357
std::pair< float, float > Size() const
Definition Widgets.hh:360
bool Index(std::pair< float, float > p) const
Definition Widgets.hh:364
DataTypeArray(DataType &dt)
Definition Widgets.hh:359
Definition Widgets.hh:397
BufferRef Ref() const
Definition Widgets.hh:401
void Generate(Rect r)
Definition Widgets.hh:400
DataTypeBitmap(DataType &dt, int x, int y)
Definition Widgets.hh:399
Definition Widgets.hh:267
void HandlePointer(int button)
Definition Widgets.hh:468
void HandleTextureChange(Texture &tex)
Definition Widgets.hh:481
DataTypeTextureEvents(DataType &dt, int x, int y)
Definition Widgets.hh:455
void HandleKey(int key)
Definition Widgets.hh:467
void Pos(Point2d p)
Definition Widgets.hh:460
Definition Database.hh:27
virtual bool get_val(float x, float y) const =0
virtual float XCount() const =0
virtual float YCount() const =0
virtual void ClearInvalidRects()=0
virtual const Region & InvalidRects() const =0
virtual void set_val(float x, float y, bool b)=0
Definition Widgets.hh:119
void HandlePointer(int button)
Definition Widgets.hh:45
void HandleKey(int key)
Definition Widgets.hh:44
void HandlePointerMove(Point2d p)
Definition Widgets.hh:46
virtual void HandlePointer(int button)=0
virtual void HandlePointerMove(Point2d p)=0
virtual void HandleKeyDown(int key)
Definition Widgets.hh:37
virtual void HandleKey(int key)=0
virtual void HandleFrame(float time)
Definition Widgets.hh:39
virtual void HandleKeyUp(int key)
Definition Widgets.hh:38
virtual bool Frame(float time)=0
FrameAnim(Render *render)
Definition Effect.hh:110
virtual B Index(A a) const =0
Definition Widgets.hh:133
Definition Effect.hh:8076
Definition VectorTools.hh:279
void HandleFrame(float)
Definition Widgets.hh:87
MovePointEventSurface(Position2d &p, Point2d tl, Point2d br, const float &speed)
Definition Widgets.hh:57
void HandlePointer(int button)
Definition Widgets.hh:84
void HandleKeyDown(int key)
Definition Widgets.hh:62
void HandleKey(int key)
Definition Widgets.hh:86
void HandleKeyUp(int key)
Definition Widgets.hh:73
void HandlePointerMove(Point2d p)
Definition Widgets.hh:85
Definition Effect.hh:4715
PlaneRayIntersection(Point p, Vector v, Plane pl)
Definition Widgets.hh:417
std::pair< Point2d, float > Elem() const
Definition Widgets.hh:418
Definition VectorTools.hh:350
float YCount() const
Definition Widgets.hh:219
virtual void ClearInvalidRects()
Definition Widgets.hh:221
virtual const Region & InvalidRects() const
Definition Widgets.hh:220
bool get_val(float x, float y) const
Definition Widgets.hh:222
Point2dArrayDataType(VectorArray< Point2d > &arr, Rect r)
Definition Widgets.hh:214
float XCount() const
Definition Widgets.hh:218
void set_val(float x, float y, bool b)
Definition Widgets.hh:236
Definition Effect.hh:4371
Definition Effect.hh:1305
RectFrameAnim(Rect r, FrameAnim &obj, Rect screen, Render *rr)
Definition Widgets.hh:273
void PostFrame()
Definition Widgets.hh:278
bool Frame(float time)
Definition Widgets.cc:30
void Init()
Definition Widgets.hh:274
void Cleanup()
Definition Widgets.hh:275
void PreFrame(float time)
Definition Widgets.hh:276
Point2d br
Definition Graph.hh:95
Point2d RectInternalCoordinates(Point2d p)
Definition Graph.hh:87
bool InsideRect(Point2d p)
Definition Graph.hh:79
Point2d tl
Definition Graph.hh:94
Definition Effect.hh:9104
Definition Effect.hh:9514
RotateFrameAnim(FrameAnim &next, Render *r)
Definition Widgets.hh:287
void Cleanup()
Definition Widgets.hh:292
void Init()
Definition Widgets.hh:288
void PreFrame(float time)
Definition Widgets.hh:296
bool Frame(float time)
Definition Widgets.cc:52
void PostFrame()
Definition Widgets.hh:301
Definition Widgets.hh:372
std::pair< int, int > Size() const
Definition Widgets.hh:375
SamplePairArray(Array< std::pair< float, float >, bool > &func, int x, int y)
Definition Widgets.hh:374
bool Index(std::pair< int, int > p) const
Definition Widgets.hh:376
static float Sample(int x2, int intsize, float size)
Definition Widgets.hh:386
Definition Widgets.hh:444
virtual void HandleKey(int key)=0
virtual void HandleTextureChange(Texture &tex)=0
virtual void Pos(Point2d p)=0
virtual void HandlePointer(int button)=0
TextureWidget(BufferRef buffer, TextureEvents &events, int screensizex, int screensizey, Render *r)
Definition Widgets.hh:515
void SetChanged(bool b)
Definition Widgets.hh:534
float YRot() const
Definition Widgets.hh:517
BufferRef Bitmap() const
Definition Widgets.hh:530
float ZRot() const
Definition Widgets.hh:518
void HandlePointer(int button)
Definition Widgets.hh:524
void HandleKey(int key)
Definition Widgets.hh:519
bool Frame(float time)
Definition Widgets.cc:104
void HandlePointerMove(Point2d p)
Definition Widgets.cc:65
float XRot() const
Definition Widgets.hh:516
Definition Effect.hh:1122
void Cleanup()
Definition Widgets.hh:322
void Init()
Definition Widgets.hh:315
void PostFrame()
Definition Widgets.hh:344
std::vector< FrameAnim * >::iterator iterator
Definition Widgets.hh:314
VectorFrameAnim(It beg, It end)
Definition Widgets.hh:313
void PreFrame(float time)
Definition Widgets.hh:329
bool Frame(float time)
Definition Widgets.hh:336
Definition VectorTools.hh:125
float dy
Definition VectorTools.hh:268
float dz
Definition VectorTools.hh:268
float dx
Definition VectorTools.hh:268
PT func2(int face, int point, EveryApi &ev)
Definition test.cpp:27
convert($d)
Definition mesh_api.php:35
n< br > font size
Definition meshpage.php:3536
double f(const std::string &, double, bool) noexcept
Definition profile_cpp_calls_2.cpp:4
static void CopyBuffer(BufferRef source, BufferRef target, int x, int y, int rx, int ry, int rex, int rey)
Definition Buffer.cc:66
Definition Intersect.hh:30
Vector tuv
Definition Intersect.hh:31
Definition VectorTools.hh:910
float x
Definition VectorTools.hh:911
float y
Definition VectorTools.hh:911
Point2d p
Definition Widgets.hh:51
virtual BufferRef Bitmap() const =0
BufferRef buffer
Definition State.hh:122
virtual void SetChanged(bool b)=0