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