Definition at line 23 of file CurvesView.java.
mhr.appandroid.views.CurvesView.CurvesView |
( |
Context |
context | ) |
|
|
inline |
mhr.appandroid.views.CurvesView.CurvesView |
( |
Context |
context, |
|
|
AttributeSet |
attrs |
|
) |
| |
|
inline |
mhr.appandroid.views.CurvesView.CurvesView |
( |
Context |
context, |
|
|
AttributeSet |
attrs, |
|
|
int |
defStyle |
|
) |
| |
|
inline |
int mhr.appandroid.views.CurvesView.addPoint |
( |
float |
xx, |
|
|
float |
yy |
|
) |
| |
|
inlineprotected |
Definition at line 143 of file CurvesView.java.
{
int pos = -1;
if (xx < 0 || xx > 1 || yy < 0 || yy > 1) {
return pos;
}
for (
int i = 1; i <
x.length; i++) {
pos = i;
break;
}
}
if (pos < 0) {
return pos;
}
float[] tx = new float[ptsCount + 1];
float[] ty = new float[ptsCount + 1];
int i = 0;
while (i < pos) {
i++;
}
tx[i] = xx;
ty[i] = yy;
i++;
}
y2 =
new float[ptsCount + 1];
xc1 =
new float[ptsCount];
xc2 =
new float[ptsCount];
yc1 =
new float[ptsCount];
yc2 =
new float[ptsCount];
}
return pos;
}
void mhr.appandroid.views.CurvesView.cpInit |
( |
| ) |
|
|
inlineprotected |
Inicializuje hodnoty kontrolních bodů tak, aby Bezierovy kubické křivky přibližně odpovídaly kubickému splajnu. interval mezi interpolovanymi body ve směru x je rozdělen na třetiny, a tam jsou umístěny kontrolní body - posun ve směru y je dán velikostí derivace, která je určena ze vztahu pro kubický spline, kterým by se proložily dané body.
Definition at line 365 of file CurvesView.java.
{
double d0;
double d1;
double delta;
for (int i = 0; i < n; i++) {
d0 = (
y[i+1] -
y[i]) / (
x[i+1] -
x[i]) - 2.0/6.0 * (
x[i+1] -
x[i]) *
y2[i] - 1.0/6.0 * (
x[i+1] -
x[i]) *
y2[i+1];
d1 = (
y[i+1] -
y[i]) / (
x[i+1] -
x[i]) + 1.0/6.0 * (
x[i+1] -
x[i]) *
y2[i] + 2.0/6.0 * (
x[i+1] -
x[i]) *
y2[i+1];
yc1[i] = (float) (
y[i] + d0 * (delta) / 3.0);
yc2[i] = (float) (
y[i+1] - d1 * (delta) / 3.0);
xc1[i] = (float) (x[i] + delta / 3.0);
xc2[i] = (float) (x[i+1] - delta / 3.0);
}
}
float [][] mhr.appandroid.views.CurvesView.getPoints |
( |
| ) |
|
|
inline |
Definition at line 395 of file CurvesView.java.
{
float[][] retVal =
new float[2][
x.length];
for (
int i = 0; i <
x.length; i++) {
retVal[1][i] = 1.0f -
y[i];
}
return retVal;
}
void mhr.appandroid.views.CurvesView.init |
( |
| ) |
|
|
inlineprotected |
Definition at line 244 of file CurvesView.java.
{
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
cPressed = BitmapFactory.decodeResource(getResources(),
R.drawable.scrubber_control_pressed_bw);
cNormal = BitmapFactory.decodeResource(getResources(),
R.drawable.scrubber_control_normal_bw);
detector =
new GestureDetector(getContext(),
new GestureListener());
int ptsCount = 2;
x =
new float[] {0.0f, 1.0f};
y =
new float[] {1.0f, 0.0f};
y2 =
new float[ptsCount];
xc1 =
new float[ptsCount - 1];
xc2 =
new float[ptsCount - 1];
yc1 =
new float[ptsCount - 1];
yc2 =
new float[ptsCount - 1];
frame.setColor(0xFFFFFFFF);
frame.setStyle(Style.STROKE);
frame.setAntiAlias(
true);
}
void mhr.appandroid.views.CurvesView.onDraw |
( |
Canvas |
canvas | ) |
|
|
inlineprotected |
Definition at line 461 of file CurvesView.java.
{
Paint paint =
curve.getPaint();
paint.setStrokeWidth(2.0f /
xLength);
for (
int i = 0; i <
x.length; i++) {
} else {
}
}
}
void mhr.appandroid.views.CurvesView.onMeasure |
( |
int |
widthMeasureSpec, |
|
|
int |
heightMeasureSpec |
|
) |
| |
|
inline |
Definition at line 429 of file CurvesView.java.
{
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
if (width < height) {
width = height;
} else {
height = width;
}
setMeasuredDimension(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
}
void mhr.appandroid.views.CurvesView.onSizeChanged |
( |
int |
w, |
|
|
int |
h, |
|
|
int |
oldw, |
|
|
int |
oldh |
|
) |
| |
|
inlineprotected |
Voláno v okamžiku, kdy view dostane rozměry.
Definition at line 443 of file CurvesView.java.
{
super.onSizeChanged(w, h, oldw, oldh);
curvesRect =
new Rect(xOffset, yOffset, w - xOffset, h - yOffset);
xOffset / 2.0f,
yOffset / 2.0f,
w - xOffset / 2.0f,
h - yOffset / 2.0f);
}
boolean mhr.appandroid.views.CurvesView.onTouchEvent |
( |
MotionEvent |
ev | ) |
|
|
inline |
Definition at line 478 of file CurvesView.java.
{
ViewParent parent = getParent();
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(true);
}
if (ev.getAction() == MotionEvent.ACTION_UP) {
invalidate();
}
}
return true;
}
void mhr.appandroid.views.CurvesView.prepareCurve |
( |
| ) |
|
|
inlineprotected |
Definition at line 320 of file CurvesView.java.
{
Path p = new Path();
for (
int i = 0; i <
x.length - 1; i++) {
}
curve =
new ShapeDrawable(
new PathShape(p, 1, 1));
Paint paint =
curve.getPaint();
paint.setStyle(Style.STROKE);
paint.setColor(0xFFFFFFFF);
paint.setAntiAlias(true);
}
boolean mhr.appandroid.views.CurvesView.removeSelPoint |
( |
| ) |
|
|
inlineprotected |
Definition at line 111 of file CurvesView.java.
{
if (selIndex < 1 || selIndex >
x.length - 2) {
return false;
}
float[] tx = new float[ptsCount - 1];
float[] ty = new float[ptsCount - 1];
int i = 0;
i++;
}
i++;
i++;
}
y2 =
new float[ptsCount - 1];
xc1 =
new float[ptsCount - 2];
xc2 =
new float[ptsCount - 2];
yc1 =
new float[ptsCount - 2];
yc2 =
new float[ptsCount - 2];
return true;
}
void mhr.appandroid.views.CurvesView.setPoints |
( |
float |
pts[][] | ) |
|
|
inline |
Definition at line 406 of file CurvesView.java.
{
int ptsCount = pts[0].length;
for (int i = 0; i < ptsCount; i++) {
}
y2 =
new float[ptsCount];
xc1 =
new float[ptsCount - 1];
xc2 =
new float[ptsCount - 1];
yc1 =
new float[ptsCount - 1];
yc2 =
new float[ptsCount - 1];
invalidate();
}
int mhr.appandroid.views.CurvesView.xToGlob |
( |
float |
xVal | ) |
|
|
inlineprotected |
float mhr.appandroid.views.CurvesView.xToNorm |
( |
float |
xVal | ) |
|
|
inlineprotected |
void mhr.appandroid.views.CurvesView.y2ValsInit |
( |
| ) |
|
|
inlineprotected |
Definition at line 337 of file CurvesView.java.
{
int i, k;
double p, qn, sig, un;
double[] u =
new double[
x.length];
int valsCount =
x.length;
int lastVal = valsCount - 1;
u[0] = 0.0;
for (i = 1; i < lastVal; i++) {
sig = (
x[i] -
x[i - 1]) / (
x[i + 1] -
x[i - 1]);
p = sig *
y2[i - 1] + 2.0;
y2[i] =(float)((sig - 1.0) / p);
u[i] = (
y[i + 1] -
y[i]) / (
x[i + 1] -
x[i])
- (
y[i] -
y[i - 1]) / (
x[i] -
x[i - 1]);
u[i] = (6.0 * u[i] / (
x[i + 1] -
x[i - 1]) - sig * u[i - 1]) / p;
}
qn = un = 0.0;
y2[lastVal] =(float) ( (un - qn * u[valsCount - 2]) / (qn *
y2[valsCount - 2] + 1.0));
for (k = valsCount - 2; k >= 0; k--) {
y2[k] = (float) (
y2[k] *
y2[k + 1] + u[k]);
}
}
int mhr.appandroid.views.CurvesView.yToGlob |
( |
float |
yVal | ) |
|
|
inlineprotected |
float mhr.appandroid.views.CurvesView.yToNorm |
( |
float |
yVal | ) |
|
|
inlineprotected |
Rect mhr.appandroid.views.CurvesView.boundingRect |
|
protected |
int mhr.appandroid.views.CurvesView.cHeight |
|
protected |
Bitmap mhr.appandroid.views.CurvesView.cNormal |
|
protected |
Bitmap mhr.appandroid.views.CurvesView.cPressed |
|
protected |
Rect mhr.appandroid.views.CurvesView.cRect |
|
protected |
ShapeDrawable mhr.appandroid.views.CurvesView.curve |
|
protected |
Rect mhr.appandroid.views.CurvesView.curvesRect |
|
protected |
int mhr.appandroid.views.CurvesView.cWidth |
|
protected |
int mhr.appandroid.views.CurvesView.cXCenter |
|
protected |
int mhr.appandroid.views.CurvesView.cYCenter |
|
protected |
GestureDetector mhr.appandroid.views.CurvesView.detector |
|
protected |
Paint mhr.appandroid.views.CurvesView.frame |
|
protected |
RectF mhr.appandroid.views.CurvesView.marginRect |
|
protected |
Paint mhr.appandroid.views.CurvesView.marginRectPaint |
|
protected |
float mhr.appandroid.views.CurvesView.minDelta = 0.001f |
|
protected |
int mhr.appandroid.views.CurvesView.selIndex = -1 |
|
protected |
float [] mhr.appandroid.views.CurvesView.x |
|
protected |
float [] mhr.appandroid.views.CurvesView.xc1 |
|
protected |
float [] mhr.appandroid.views.CurvesView.xc2 |
|
protected |
int mhr.appandroid.views.CurvesView.xLength |
|
protected |
int mhr.appandroid.views.CurvesView.xOffset |
|
protected |
float [] mhr.appandroid.views.CurvesView.y |
|
protected |
float [] mhr.appandroid.views.CurvesView.y2 |
|
protected |
float [] mhr.appandroid.views.CurvesView.yc1 |
|
protected |
float [] mhr.appandroid.views.CurvesView.yc2 |
|
protected |
int mhr.appandroid.views.CurvesView.yLength |
|
protected |
int mhr.appandroid.views.CurvesView.yOffset |
|
protected |
The documentation for this class was generated from the following file:
- /home/xxx/eclipse_workspaces/app/appandroid/src/mhr/appandroid/views/CurvesView.java