-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathWidget_Filter_Teselate.h
94 lines (80 loc) · 1.57 KB
/
Widget_Filter_Teselate.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#ifndef _WIDGET_FILTER_TESSELATE_
#define _WIDGET_FILTER_TESSELATE_
#include "Filters.h"
#include "Widget_SliderInput.h"
class Widget_UI_Tesselate
{
ImageProcessor::Filters::Tesselate Tesselator;
Widget::SliderInput uipannel;
//runtime flags
bool visible; //render UI true:flase;
int tesselation_parameter; //magnitude of tesselation
bool intrrupt; //UI intrrupt log
public:
Widget_UI_Tesselate()
{
visible=false;
intrrupt=false;
uipannel=Widget::SliderInput("effect","Tesselator",0,140);
Tesselator=ImageProcessor::Filters::Tesselate();
}
void render()
{
if(visible)
{
uipannel.render();
if(tesselation_parameter!=uipannel.getvalue())
{
tesselation_parameter=uipannel.getvalue();
Tesselator.setTesselationParam(tesselation_parameter);
intrrupt=true;
}
else if(uipannel.isApplyButtonpressed())
{
intrrupt=true;
}
else
{
intrrupt=false;
}
}
else
return;
}
void processWith(unsigned char *src,int h,int w,int c)
{
Tesselator.setimage(src,h,w,4);
Tesselator.process();
}
void setVisiblity(bool _visiblity)
{
visible=_visiblity;
}
bool filterApply()
{
return uipannel.isApplyButtonpressed();
}
bool isVisible()
{
return visible;
}
bool hasintrrupted()
{
if(intrrupt==true)
{
intrrupt=false;
return true;
}
else
return false;
}
unsigned char *getProcessed()
{
unsigned char * im_=Tesselator.getimage();
if(im_!=NULL)
return im_;
else
return NULL;
}
};
#endif