Fw: [vtkusers] vtkActor2D ignores SetPosition2() methods (CORRECTION)
Isidro Moreno
morenoisidro at yahoo.com.ar
Wed Jun 27 11:48:06 EDT 2007
CORRECTION: where it says: "It put a simple line..." it is "I put a...".
Sorry.
> OK, let's see; as you must have seen the code below, it consist of drawing
> a diagonal line. Width a Height are the dimensions the rectangle in which
> this line is defined in. Using these two methods is the same as doing
> vtkActor2D->GetPosition2Coordinate->SetValue(x,y) (where x=width &
> y=height - see HTML help of vtkActor2D) as I've explained below. The
> pourpose of all these is to autoscale any figure in the plane when the
> window's size changes (not just a line but also a polygon, rectangle,
> etc). In fact, I've used this code to draw a period of the sinus function
> and it was fine! But I can't make it fit my window. It put a simple line
> in the code below to make the things easier to understand, but you're the
> second who asks me the same question. Should I be more clear and put the
> actual code? Sorry for my english, I'm spanish speaker.
> I know I can do this with actor 3D, but I think It's not good using it
> in terms of design since I'm working in the plane and many unused memory
> would be kept in if I use actor3D.
>
>
>> 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.
>>
>>
>> --
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.5.472 / Virus Database: 269.9.10/873 - Release Date: 26/6/2007
>> 23:54
>>
>>
>
> _______________________________________________
> This is the private VTK discussion list. Please keep messages on-topic.
> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition. Version: 7.5.472 / Virus Database:
> 269.9.10/873 - Release Date: 26/6/2007 23:54
>
More information about the vtkusers
mailing list