[vtkusers] Drwaing on a vtkActor in Java
cakbulut
cakbulut at web.de
Mon Jul 25 14:02:57 EDT 2011
Hi all,
I am using vtk for rendering DICOM images in Java. My target is to draw
points (java Point) on the DICOM Image. The DICOM images is rendered in a
vtkCanvas (in an extended version MyCanvas, see below) object.
The following code shows the loading and adding of the vtk canvas in a
JInternalFrame.
vtkDICOMImageReader reader = new vtkDICOMImageReader();
reader.SetDirectoryName("C:\\vtkDev\\Book\\data\\SE000002");
reader.Update();
mapper.SetInput(reader.GetOutput());
actor = new vtkActor2D();
actor.SetMapper(mapper);
canvas.GetRenderer().AddActor2D(actor);
// canvas.addMouseListener(arg0)
this.add(canvas, BorderLayout.CENTER);
Over the GUI I create a Java BufferedImage which I put on the vtkActor in
the paint method of the canvas. In the paint method I use the Graphics
object of the vtkCanvas and override the paint method.
THE PROBLEM: The BufferedImages are not on the DICOM Image they are under
the DICOM Image.
What I am makeing wrong????
The code follows:
class MyCanvas extends vtkCanvas implements MouseInputListener
{
ArrayList<Point> points = new ArrayList<Point>();
public void mouseClicked(MouseEvent e)
{
int x = e.getX();
int y = e.getY();
points.add(new Point(x, y));
//repaint();
}
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.RED);
BufferedImage b = null;
Graphics2D d2 = null;
Graphics2D g2d = (Graphics2D) g;
if (images.size() > 0)
{
// if (b != null)
// g2d.drawImage(b, null, 500, 500);
b = images.get(0);
d2= b.createGraphics();
d2.setBackground(Color.YELLOW);
d2.setColor(Color.RED);
System.out.println("Hallo");
d2.drawString("ballo", 50, 50);
d2.drawLine(10, 10, 50, 50);
g2d.drawImage(b,null, 0, 0);
if(images.size() > 1)
{
BufferedImage b1 = images.get(1);
Graphics2D d3= b1.createGraphics();
d3.setBackground(Color.YELLOW);
d3.setColor(Color.YELLOW);
System.out.println("Hallo");
d3.drawString("sallo", 80, 80);
d3.drawLine(10, 10, 50, 40);
g2d.drawImage(b1,null, 0, 0);
}
}
// If user has chosen a point, paint a small dot on
top.
if (points != null)
{
for (Point x : points)
{
g2d.setColor(Color.RED);
g2d.fillRect(x.x, x.y, 3, 3);
}
}
}
Best regards.
--
View this message in context: http://vtk.1045678.n5.nabble.com/Drwaing-on-a-vtkActor-in-Java-tp4631768p4631768.html
Sent from the VTK - Users mailing list archive at Nabble.com.
More information about the vtkusers
mailing list