Definuji rutiny, ktere je nutno implementovat pro vykreslovani danych grafickych objektu (usecky, kruznice, elipsy, oblouky, krivky, polygony, apod.). Jednotlive podrobnosti viz package iface.
Typicky jsou kreslici objekty napojeny na vystup ve tvaru BitMask nebo AlphaMask (jedna-li se o anti-aliasing).
Vsechny protokoly typu *Render maji jako predka protokol Property (viz), tj musi implementovat jednoduche metody na cteni a nastavovani atributu (viz dalsi oddil).
Jednoduchy protokol pro cteni a nastavovani libovolnych atributu. Atributy se oznacuji retezcovymi identifikatory a maji libovolny Javovsky typ (potomek tridy Object).
Cteni atributu:
Object get ( String key ). Vraci null, kdyz danemu
atributu nerozumi.
Zapis atributu:
Object set ( String key, Object value ). Vraci starou hodnotu atributu.
Zjistovani, kterym atributum objekt rozumi:
String[] understands (). Vraci pole vsech klicu.
boolean understands ( String key ). Vraci jen jeden priznak.
Slouzi k reprezentaci mnoziny pixelu v rovine. Standarni implementaci je vhodna datova struktura, do ktere se daji pixely zapisovat a zpatky take cist.
Interface lze vsak pouzit i k reprezentaci charakteristicke funkce mnoziny pixelu v rovine (lze jen cist, zapis se ignoruje) nebo naopak vystupniho filtru (lze jen zapisovat, cist nikoli).
Detaily budou doplneny pozdeji. Zatim lze nahlednout do on-line dokumentace.
Obsahuje sadu konstant definujicich vsechny mozne binarni boolovske operace. Pouziva se pri kresleni (potomci protokolu Render) nebo v metodach realizujicich mnozinove operace.
Dokumentace viz tato stranka.
Pouziva se pro efektivni prochazeni mnozinami typu BitMask nebo AlphaMask. Na pozadani (metoda enumerator()) se k dane mnozine vytvori trida implementujici tento enumerator. Lze pracovat najednou s vice enumeratory nad jednou mnozinou. Neni zaruceno poradi prochazeni prvku (ani deterministicnost!).
Slouzi k reprezentaci "fuzzy" mnoziny pixelu v rovine. Kazdy pixel nese informaci, z kolika procent je jeho plocha "pokryta" (analogie alfa-kanalu). Pristupove funkce jsou velmi podobne tem z BitMask.
Detaily budou doplneny pozdeji. Zatim lze nahlednout do on-line dokumentace.
Slouzi k reprezentaci rastroveho obrazku v rovine. Bezny vyznam tohoto protokolu predpoklada implementaci pomoci vhodne datove struktury (dvojrozmerne pole pixelu), ale existuji i aplikace pouzivajici pouze vstup (napr. vypocet proceduralniho obrazku za behu "on-the-fly") nebo pouze vystup (vystupni filtr).
Detaily budou doplneny pozdeji. Zatim lze nahlednout do on-line dokumentace.
Slouzi k reprezentaci vektorove grafiky (posloupnost kreslicich prikazu). Zatim neni v JagrLib implementovan.
Zakladni logika je odvozena od systemu kresleni v jazyce Adobe PostScript. Tzv. "cesta" (Path) se nejprve konstruuje za pomoci prikazu newPath, moveTo, lineTo, arcTo, closePath, apod. Potom ji lze obkreslit (stroke), vybarvit jeji vnitrek (fill), nastavit podle ni orezavani (clip), atd. S celymi cestami se da zachazet pomoci prikazu pushPath a popPath. Sada prikazu obsahuje rovnez funkce pro praci s pismem (typu textPath i drawText).
Vektorovy format predpoklada uzivatelsky system souradnic pouzivajici floating-point aritmetiku (double).
Zatim se lze podivat do definic VectorGraphics, VectorCommand a VCommand.
Souhrn vsech protokolu bude obsahovat
tato stranka.
Copyright (c) 2002-2003 Josef Pelikán, last change: 17.10.2002