App

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
mhr.appcore.tools.brushlike.BrushLikeTool Class Reference

Abstraktní třída, který zapouzdřuje kreslení na kanvas štětcem. More...

Inheritance diagram for mhr.appcore.tools.brushlike.BrushLikeTool:

## Classes
enum | BrushMode
| Výčet určuje mód jednokanálového štětce. More...

## Public Member Functions
| BrushLikeTool (NBitmap brush, BrushMode mode, double opacity, double flow, double spacing)
| Brush se nekopiruje, pouzije se reference, opacity je mozna spise vlastnost konkretni tridy nez abstraktni...
synchronized void | dispose ()
| Slouží k uvolnění nativních prostředků při výměně nástroje.
void | applyTo (Image img, ToolActionData data)
| Aplikuje nástroj na vybraný element obrazu, pokud nelze provést, hodí výjimku.
void | bgnDraw (Image img, int atX, int atY)
| Zahájí kreslení na dané souřadnici, připravý
void | drawTo (Image img, int toX, int toY)
| Nakreslí rovnou čáru od poslední souřadnice do zadané souřadnice.
void | endDraw (Image img, int atX, int atY)
| Ukončí kreslení na dané souřadnici. Pokusí se nakreslit čáru na danou souřadnici a pak odešle canvas.
void | onRender (Image img, NBitmap canvas, NBitmap tmpLayer, NBitmap origLayer, NBitmap masterMask, Rect src, int srcOrigX, int srcOrigY)
| Callback, který volá obraz v okamžiku, kdy je třeba renderovat část obrazu.
void | onCommit (Image image, NBitmap canvas, NBitmap tmpLayer, NBitmap origLayer, NBitmap masterMask, Rect src, int srcOrigX, int srcOrigY)
| Callback, který volá obraz v okamžiku, kdy je kanvas odeslán k provedení finálních úprav.

## Public Attributes
NBitmap | brush
| hrot Štětce.
Rect | brushRect
| Předpřipravený obdélník popisující hrot štětce.
int | centerX
| Předpočítaný střed štětce.
int | centerY
| Předpočítaný střed štětce.

## Static Public Attributes
static final double | flowAsFull = 0.9999
static final double | flowAsNone = 0.0001

## Protected Member Functions
void | finalize () throws Throwable
void | drawAt (Image img, NBitmap canvas, NBitmap mask, int atX, int atY)
| Nakreslí jeden otisk štětce na dané souřadnici.

## Protected Attributes
int | lastX
| Souřadnice bodu, kam se kreslilo naposledy.
int | lastY
| Souřadnice bodu, kam se kreslilo naposledy.
double | opacity
| Průhlednost kanvasu, její aplikace závisí až na konkrétní implementaci onRender a onCommit.
double | flow
| Průhlednost štětce.
double | spacing
| Spacing štětce. Jedná se o absolutní spacing v px!!!
BrushMode | brushMode
| Mód štětce.
Rect | maskRect
| Obdélník masky, je zde aby nemusel být předáván parametrem.

## Detailed Description

Abstraktní třída, který zapouzdřuje kreslení na kanvas štětcem.

Třída zapouzdřuje kreslení na kanvas štětcem. Použije se jednokanálový kanvas a jednokanálový štětec s nastaveným flow, opacity a spacing. Také lze nastavit mód štětce. Odvozené třídy již jen kontrolují, jestli je nástroj aplikovatelný na daný element obrazu a přepisují onRender() a onCommit()

Definition at line 23 of file BrushLikeTool.java.

## Constructor & Destructor Documentation

mhr.appcore.tools.brushlike.BrushLikeTool.BrushLikeTool | ( | NBitmap | brush,
|  | BrushMode | mode,
|  | double | opacity,
|  | double | flow,
|  | double | spacing
| ) |  |
| inline

Brush se nekopiruje, pouzije se reference, opacity je mozna spise vlastnost konkretni tridy nez abstraktni...

Výchozí konstruktor, definuje vše potřebné pro fungování štětce.

Parameters

  brush | Jednokanálová birmapa štětce pro kreslení na kanvas.
  mode | Mód, ve kterém je bitmapa aplikována.
  opacity |
  flow |
  spacing |

Definition at line 51 of file BrushLikeTool.java.

{
BitmapInfo i = brush.getInfo();
if (i.channelCount != ChannelCount.SINGLE_CHANNEL) {
throw new IllegalArgumentException("Requires single channel bitmap.");
}
this.brush = brush;
this.brushMode = mode;
this.opacity = opacity;
this.flow = flow;
this.spacing = spacing;
brushRect = brush.getRect();
centerX = brushRect.getWidth() / 2;
centerY = brushRect.getHeight() / 2;
}

## Member Function Documentation

void mhr.appcore.tools.brushlike.BrushLikeTool.applyTo | ( | Image | img,
|  | ToolActionData | data
| ) |  |
| inline

Aplikuje nástroj na vybraný element obrazu, pokud nelze provést, hodí výjimku.

Parameters

  img | Obraz, na který je nástroj aplikován.
  data | Data určující akci, kterou má nástroj provést.

Exceptions

  ToolNotApplicableException |

Implements mhr.appcore.tools.Tool.

Definition at line 77 of file BrushLikeTool.java.

{
if (!(data instanceof BrushLikeToolActionData)) {
throw new IllegalArgumentException("Received data for different tool");
}
BrushLikeToolActionData d = (BrushLikeToolActionData) data;
switch (d.action) {
case DRAW_BEGIN:
bgnDraw(img, d.eventAtX, d.eventAtY);
break;
case DRAW_TO:
drawTo(img, d.eventAtX, d.eventAtY);
break;
case DRAW_END:
endDraw(img, d.eventAtX, d.eventAtY);
break;
}
}

void mhr.appcore.tools.brushlike.BrushLikeTool.bgnDraw | ( | Image | img,
|  | int | atX,
|  | int | atY
| ) |  |
| inline

Zahájí kreslení na dané souřadnici, připravý

Parameters

  img | Obraz na který se kreslí.
  atX |
  atY |

Definition at line 130 of file BrushLikeTool.java.

{
NBitmap canvas = img.prepareCanvas(this, ChannelCount.SINGLE_CHANNEL);
NBitmap mask = null;
if (img.isMasterMaskActive()) {
mask = img.getMasterMask();
maskRect = mask.getRect();
}
drawAt(img, canvas, mask, atX, atY);
}

synchronized void mhr.appcore.tools.brushlike.BrushLikeTool.dispose | ( |  | ) |
| inline

Slouží k uvolnění nativních prostředků při výměně nástroje.

Implements mhr.appcore.tools.Tool.

Definition at line 68 of file BrushLikeTool.java.

{
if (brush != null ) {
brush.dispose();
brush = null;
}
}

void mhr.appcore.tools.brushlike.BrushLikeTool.drawAt | ( | Image | img,
|  | NBitmap | canvas,
|  | NBitmap | mask,
|  | int | atX,
|  | int | atY
| ) |  |
| inlineprotected

Nakreslí jeden otisk štětce na dané souřadnici.

Parameters

  img | Obraz, na který se kreslí.
  canvas | Canvas
  mask | masterMask, pokud je použita, jinak null
  atX |
  atY |

Definition at line 180 of file BrushLikeTool.java.

{
lastX = atX;
lastY = atY;
if (flow > flowAsFull) {
if (brushMode == BrushMode.MODE_ADD) {
if (mask != null) {
Blender.addTo(canvas, mask, brush, maskRect, atX - centerX, atY - centerY, 0, 0);
} else {
Blender.addTo(canvas, brush, brushRect, atX - centerX, atY - centerY);
}
} else {
if (mask != null) {
Blender.removeFrom(canvas, mask, brush, maskRect, atX - centerX, atY - centerY, 0, 0);
} else {
Blender.removeFrom(canvas, brush, brushRect, atX - centerX, atY - centerY);
}
}
} else if (flow < flowAsNone) {
return;
} else {
if (brushMode == BrushMode.MODE_ADD) {
if (mask != null) {
Blender.addTo(canvas, mask, brush, maskRect, atX - centerX, atY - centerY, 0, 0, flow);
} else {
Blender.addTo(canvas, brush, brushRect, atX - centerX, atY - centerY, flow);
}
} else {
if (mask != null) {
Blender.removeFrom(canvas, mask, brush, maskRect, atX - centerX, atY - centerY, 0, 0, flow);
} else {
Blender.removeFrom(canvas, brush, brushRect, atX - centerX, atY - centerY, flow);
}
}
}
img.addCanvasChangedArea((new Rect(brushRect)).moveBy(atX - centerX, atY - centerY).cropBy(img.getRect()));
}

void mhr.appcore.tools.brushlike.BrushLikeTool.drawTo | ( | Image | img,
|  | int | toX,
|  | int | toY
| ) |  |
| inline

Nakreslí rovnou čáru od poslední souřadnice do zadané souřadnice.

Parameters

  img | Obraz, na který se kreslí.
  toX |
  toY |

Definition at line 146 of file BrushLikeTool.java.

{
NBitmap canvas = img.getCanvas(this);
NBitmap mask = null;
if (img.isMasterMaskActive()) {
mask = img.getMasterMask();
maskRect = mask.getRect();
}
int[][] pts = LinearInt.interpolate(lastX, lastY, toX, toY, spacing);
for (int i = 1; i < pts[0].length; i++) {
drawAt(img, canvas, mask, pts[0][i], pts[1][i]);
}
}

void mhr.appcore.tools.brushlike.BrushLikeTool.endDraw | ( | Image | img,
|  | int | atX,
|  | int | atY
| ) |  |
| inline

Ukončí kreslení na dané souřadnici. Pokusí se nakreslit čáru na danou souřadnici a pak odešle canvas.

Parameters

  img | Obraz, na který se kreslí.
  atX |
  atY |

Definition at line 165 of file BrushLikeTool.java.

{
NBitmap canvas = img.getCanvas(this);
NBitmap mask = (img.isMasterMaskActive()) ? img.getMasterMask() : null;
drawTo(img, atX, atY);
img.submitCanvas(this, true);
}

void mhr.appcore.tools.brushlike.BrushLikeTool.finalize | ( |  | ) | throws Throwable
| inlineprotected

Definition at line 118 of file BrushLikeTool.java.

{
dispose();
super.finalize();
}

void mhr.appcore.tools.Tool.onCommit | ( | Image | image,
|  | NBitmap | canvas,
|  | NBitmap | tmpLayer,
|  | NBitmap | origLayer,
|  | NBitmap | masterMask,
|  | Rect | src,
|  | int | srcOrigX,
|  | int | srcOrigY
| ) |  |
| inherited

Callback, který volá obraz v okamžiku, kdy je kanvas odeslán k provedení finálních úprav.

Po nástroji je požadováno, aby implementoval tuto metodu tak, že v závislosti na stavu obrazu, canvasu, origLayer a masterMask upraví oblast src v origLayer. tmpLayer nebude již dále viditelná.

Parameters

  img | Obraz, na který je nástroj aplikován.
  canvas | Kanvas, který si nástroj vytvořil a upravuje při volání applyTo
  tmpLayer | Dočasná vrstva sloužící k náhledu úprav
  origLayer | Původní vrstva, kterou tmpLayer zastupuje.
  masterMask | Maska výběru, pokud výběr není použitý je null.
  src | Oblast k přerenderování.
  srcOrigX |
  srcOrigY |

Implemented in mhr.appcore.tools.cancelable.filter.FilterCancelableTool, mhr.appcore.tools.cancelable.lut.LUTCancelableTool, mhr.appcore.tools.brushlike.AlphaBrush, mhr.appcore.tools.brushlike.Brush, mhr.appcore.tools.brushlike.LUTBrush, and mhr.appcore.tools.cancelable.LinearTransformationTool.

void mhr.appcore.tools.Tool.onRender | ( | Image | img,
|  | NBitmap | canvas,
|  | NBitmap | tmpLayer,
|  | NBitmap | origLayer,
|  | NBitmap | masterMask,
|  | Rect | src,
|  | int | srcOrigX,
|  | int | srcOrigY
| ) |  |
| inherited

Callback, který volá obraz v okamžiku, kdy je třeba renderovat část obrazu.

Po nástroji je požadováno, aby implementoval tuto metodu tak, že v závislosti na stavu obrazu, canvasu, origLayer a masterMask upraví oblast src v tmpLayer tak, že tmpLayer bude obsahovat náhled aplikace nástroje na origLayer.

Parameters

  img | Obraz, na který je nástroj aplikován.
  canvas | Kanvas, který si nástroj vytvořil a upravuje při volání applyTo
  tmpLayer | Dočasná vrstva sloužící k náhledu úprav
  origLayer | Původní vrstva, kterou tmpLayer zastupuje.
  masterMask | Maska výběru, pokud výběr není použitý je null.
  src | Oblast k přerenderování.
  srcOrigX |
  srcOrigY |

Implemented in mhr.appcore.tools.cancelable.lut.LUTCancelableTool, mhr.appcore.tools.cancelable.filter.FilterCancelableTool, mhr.appcore.tools.brushlike.Brush, mhr.appcore.tools.brushlike.LUTBrush, mhr.appcore.tools.brushlike.AlphaBrush, and mhr.appcore.tools.cancelable.LinearTransformationTool.

## Member Data Documentation

NBitmap mhr.appcore.tools.brushlike.BrushLikeTool.brush

hrot Štětce.

Definition at line 105 of file BrushLikeTool.java.

BrushMode mhr.appcore.tools.brushlike.BrushLikeTool.brushMode
| protected

Mód štětce.

Definition at line 110 of file BrushLikeTool.java.

Rect mhr.appcore.tools.brushlike.BrushLikeTool.brushRect

Předpřipravený obdélník popisující hrot štětce.

Definition at line 106 of file BrushLikeTool.java.

int mhr.appcore.tools.brushlike.BrushLikeTool.centerX

Předpočítaný střed štětce.

Definition at line 107 of file BrushLikeTool.java.

int mhr.appcore.tools.brushlike.BrushLikeTool.centerY

Předpočítaný střed štětce.

Definition at line 108 of file BrushLikeTool.java.

double mhr.appcore.tools.brushlike.BrushLikeTool.flow
| protected

Průhlednost štětce.

Definition at line 103 of file BrushLikeTool.java.

final double mhr.appcore.tools.brushlike.BrushLikeTool.flowAsFull = 0.9999
| static

Definition at line 36 of file BrushLikeTool.java.

final double mhr.appcore.tools.brushlike.BrushLikeTool.flowAsNone = 0.0001
| static

Definition at line 38 of file BrushLikeTool.java.

int mhr.appcore.tools.brushlike.BrushLikeTool.lastX
| protected

Souřadnice bodu, kam se kreslilo naposledy.

Definition at line 99 of file BrushLikeTool.java.

int mhr.appcore.tools.brushlike.BrushLikeTool.lastY
| protected

Souřadnice bodu, kam se kreslilo naposledy.

Definition at line 100 of file BrushLikeTool.java.

Rect mhr.appcore.tools.brushlike.BrushLikeTool.maskRect
| protected

Obdélník masky, je zde aby nemusel být předáván parametrem.

Definition at line 112 of file BrushLikeTool.java.

double mhr.appcore.tools.brushlike.BrushLikeTool.opacity
| protected

Průhlednost kanvasu, její aplikace závisí až na konkrétní implementaci onRender a onCommit.

Definition at line 102 of file BrushLikeTool.java.

double mhr.appcore.tools.brushlike.BrushLikeTool.spacing
| protected

Spacing štětce. Jedná se o absolutní spacing v px!!!

Definition at line 104 of file BrushLikeTool.java.

The documentation for this class was generated from the following file:

- /home/xxx/eclipse_workspaces/app/appcore/src/mhr/appcore/tools/brushlike/BrushLikeTool.java