35 |
import java.awt.Dimension; |
import java.awt.Dimension; |
36 |
import java.awt.Point; |
import java.awt.Point; |
37 |
|
|
38 |
|
/** A class that converts ImageSpans to SpanImageVobs. |
39 |
|
*/ |
40 |
public class DefaultSpanImageFactory extends SpanImageFactory { |
public class DefaultSpanImageFactory extends SpanImageFactory { |
41 |
public static boolean dbg = false; |
public static boolean dbg = false; |
42 |
private static void p(String s) { |
private static void p(String s) { |
43 |
System.out.println("DefaultSpanImageFactory: "+s); } |
System.out.println("DefaultSpanImageFactory: "+s); } |
44 |
|
|
45 |
public PoolManager poolManager = PoolManager.getInstance(); |
public PaperMaker paperMaker ; |
|
public PaperMaker paperMaker = new PlainPaperMaker(); |
|
46 |
public ScrollBlockImager scrollBlockImager; |
public ScrollBlockImager scrollBlockImager; |
47 |
|
|
48 |
public DefaultSpanImageFactory(ScrollBlockImager imager) { |
public DefaultSpanImageFactory(ScrollBlockImager imager, |
49 |
|
PaperMaker paperMaker) { |
50 |
this.scrollBlockImager = imager; |
this.scrollBlockImager = imager; |
51 |
|
this.paperMaker = paperMaker; |
52 |
} |
} |
53 |
|
|
54 |
/** Get the whole contiguous 2D image that this span is a part of. |
/** Get the whole contiguous 2D image that this span is a part of. |
65 |
} |
} |
66 |
} |
} |
67 |
|
|
68 |
public SpanImageVob getSpanImageVob(ImageSpan s) { |
public Object f(Object imageSpan0) { |
69 |
|
ImageSpan imageSpan = (ImageSpan)imageSpan0; |
70 |
|
|
71 |
ImageSpan superImage = getSuperImageSpan(s); |
ImageSpan superImage = getSuperImageSpan(imageSpan); |
72 |
|
|
73 |
SingleImage singleImage = scrollBlockImager.getSingleImage( |
SingleImage singleImage = scrollBlockImager.getSingleImage( |
74 |
s, poolManager); |
imageSpan.getSuperImageSpan()); |
75 |
|
|
76 |
// x,y texcoords of (1,1) inside texture |
// x,y texcoords of (1,1) inside texture |
77 |
float x1 = singleImage.virtualTexture.mipzipFile.getOrigWidth(); |
float x1 = singleImage.virtualTexture.mipzipFile.getOrigWidth(); |
98 |
float xscale = 1f / largest.width / xpixReso; |
float xscale = 1f / largest.width / xpixReso; |
99 |
float yscale = 1f / largest.height / ypixReso; |
float yscale = 1f / largest.height / ypixReso; |
100 |
|
|
101 |
Point p =s.getLocation(); |
Point p =imageSpan.getLocation(); |
102 |
Dimension ps =s.getSize(); |
Dimension ps =imageSpan.getSize(); |
103 |
|
|
104 |
float xoffs = p.x / (float)d.width * x1; |
float xoffs = p.x / (float)d.width * x1; |
105 |
float yoffs = p.y / (float)d.height * y1; |
float yoffs = p.y / (float)d.height * y1; |
116 |
|
|
117 |
Paper paper = paperMaker.makePaper(singleImage, texgen); |
Paper paper = paperMaker.makePaper(singleImage, texgen); |
118 |
|
|
119 |
return poolManager.makeVob( |
return PoolManager.getInstance().makeVob( |
120 |
singleImage, |
singleImage, |
121 |
paper, |
paper, |
122 |
texgen, |
texgen, |