[vtkusers] vtkActor2D ignores SetPosition2() methods

Nithiananthan, Sajendra Sajendra.Nithiananthan at rmp.uhn.on.ca
Wed Jun 27 10:33:02 EDT 2007


Isidro,

Could you be a bit more clear about what you want to do exactly?
Does not a line have zero 'width' and 'height' by definition?
If you want to change the size of your line, perhaps you could change Point1
and Point2 on your line when you needed.  Otherwise you could also position
your line in 3D instead of using an Actor2D, this would give you some more
flexibility.

-SN

-----Original Message-----

I've been trying so hard, and It seems vtkActor2D ignores SetPositon2()
method (or vtkActor2D->GetPosition2Coordinate->SetValue(x,y) method - see
HTML vtkActor2D help). Could somebody help me if this is what's actually
happening?


>> On 6/26/07, Isidro Moreno <morenoisidro at yahoo.com.ar> wrote:
>>> Mark,
>>>
>>>    SetWidth() and SetHeight() methods (vtkProp's methods),define the
>>> dimensions of the rectangle in which the line is drawn (it could be not
>>> a
>>> line, but also a circle, a polygon, etc.). In fact, that rectangle is
>>> which
>>> I want to autoscale when window's size changes. As a result, the line
>>> would
>>> fit to it. That's what I've understood till now. But I could be wrong...
>>>
>>> Isidro
>>>
>>>
>>> >
>>> > On 6/26/07, Isidro Moreno <morenoisidro at yahoo.com.ar> wrote:
>>> >>
>>> >>
>>> >> Hello! I've made a simple VTK/C++ test program. It's just a 2D line.
>>> >> Now,
>>> >> I
>>> >> don't know how to make the line size change. I've tried many methods;
>>> >> and
>>> >> changing vtkActor's coordinate system (vtkActor2D's), but no results.
>>> >> I
>>> >> even
>>> >> wonder what coordinate system is vtkLineSource defined in (see code
>>> >> below).
>>> >>
>>> >> Here's my code:
>>> >>
>>> >> vtkLineSource *line=vtkLineSource::New();
>>> >>     line->SetPoint1(20.0,20.0,0.0);    // what Coordinate System??
>>> >>     line->SetPoint2(80.0,150.0,0.0);  // what Coordinate System??
>>> >>
>>> >> vtkPolyDataMapper2D *mapper=vtkPolyDataMapper2D::New();
>>> >>     mapper->SetInput(line->GetOutput());
>>> >>
>>> >> vtkActor2D *actor=vtkActor2D::New();
>>> >>     actor->SetMapper(mapper);
>>> >>     actor->GetProperty()->SetColor(1.0,0.0,0.0);
>>> >>     actor->SetWidth(0.5);    // Doesn't work!! - The same happens
>>> >> with vtkActor2D->GetPosition2Coordinate->SetValue(double width ,
>>> >> double height)
>>> >>     actor->SetHeight(0.5);   // Doesn't work!! - The same happens
>>> >> with vtkActor2D->GetPosition2Coordinate->SetValue(double width ,
>>> >> double height)
>>> >>
>>> >> vtkRenderer *render=vtkRenderer::New();
>>> >> vtkRenderWindow *win=vtkRenderWindow::New();
>>> >>     win->AddRenderer(render);
>>> >>
>>> >> vtkRenderWindowInteractor
>>> >> *interac=vtkRenderWindowInteractor::New();
>>> >>     interac->SetRenderWindow(win);
>>> >>
>>> >>     render->AddActor2D(actor);
>>> >>     render->SetBackground(0.1,0.2,0.4);
>>> >>
>>> >>     win->Render();
>>> >>
>>> >>     interac->Initialize();
>>> >>     interac->Start();
>>> >>
>>> >> line->Delete();
>>> >> mapper->Delete();
>>> >> actor->Delete();
>>> >> render->Delete();
>>> >> win->Delete();
>>> >> interac->Delete();
>>> >>
>>> >> I want to make the line resize when changing windows size. I'd be
>>> >> very
>>> >> grateful if somebody could help me with this. Thanks!!!

This e-mail may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by anyone other than the person for whom it was originally intended is strictly prohibited. If you have received this e-mail in error, please contact the sender and delete all copies. Opinions, conclusions or other information contained in this e-mail may not be that of the organization.



More information about the vtkusers mailing list