comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: IDLgrWindow Pickdata on an IDLexObjView Obect.
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: IDLgrWindow Pickdata on an IDLexObjView Obect. [message #25385 is a reply to message #25379] Mon, 11 June 2001 14:41 Go to previous messageGo to previous message
m.hadfield is currently offline  m.hadfield
Messages: 36
Registered: April 2001
Member
> Does anyone have any suggestions on how to get the correct 3-D position
> using the Pickdata method for an IDLgrWindow object which is displaying an
> IDLexObjView. Pickdata correctly finds the objects but returns incorrect
> x,y,z values. I am trying to modify xplot3d.pro to return the x,y, and z
> coordinates of a IDLgrPolyline displayed using Orbs for each datapoint.

How are they incorrect?

I've never used an IDLexObjView before but I just coded up a short (and very
crude!) test program and the PickData method seemed to give the right
answers. The test program is below.

One odd thing that I noticed about IDLexObjView is that the Get method has
been overridden (subverted?) so that it returns a reference to the atom it's
displaying. I would expect a view's Get method to return the view's child
model(s). Overriding a superclass's key method like this so it does
something completely different is bad practice IMHO. The preferable way
would have been to add another method, called something like GetAtom. (This
may or may not be relevant to your problem. I wanted to look at the
transformation matrices of the models in the IDLexObjView.To get at them I
had to "Get" the atom then work up through the graphics tree. It turns out
there are 4 models and all have an identity transformation matrix. This
would change if the atom is manipulated by the mouse.)

Perhaps your problem is related to the fact that your 3D objects are
attached to a polyline as symbols?

---
Mark Hadfield
m.hadfield@niwa.cri.nz http://katipo.niwa.cri.nz/~hadfield
National Institute for Water and Atmospheric Research

pro mgh_test_idlexobjview

; Create a view object

oview = obj_new('IDLexObjview')

; Create vertex & connectivity data for a sphere of unit radius

n_vertices = 30
mesh_obj, 4, vert, conn, replicate(1, n_vertices+1, n_vertices)

; Scale vertices & create spheroid object

vert[0,*] = 0.5 * vert[0,*]
vert[1,*] = 0.9 * vert[1,*]

oatom = obj_new('IDLgrPolygon', DATA=vert, POLY=conn)

; Add object to view

oview->Add, oatom

; Display

owin = obj_new('IDLgrWindow', UNITS=0, DIMENSIONS=[500,500], RETAIN=2,
GRAPHICS_TREE=oview)
owin->Draw

; Pick data

if owin->Pickdata(oview, oatom, [200,200], xyz) then $
print, 'Picked data at', xyz

; Skip remainder of code.

return

; Check that atoms, [X,Y,Z]RANGE properties are as expected.

oatom->GetProperty, XRANGE=xrange, YRANGE=yrange, ZRANGE=zrange

print, oatom,xrange,yrange,zrange

; Get all of the atom's parent models and print their transformation
matrices.

oatom->GetProperty, PARENT=omodel

while obj_isa(omodel, 'IDLgrModel') do begin

omodel->GetProperty, TRANSFORM=transform

print, omodel, transform

omodel->GetProperty, PARENT=omodel

endwhile

end



--
Posted from clam.niwa.cri.nz [202.36.29.1]
via Mailgate.ORG Server - http://www.Mailgate.ORG
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: Re: Mapping question...
Next Topic: netplan

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 11:22:35 PDT 2025

Total time taken to generate the page: 0.32187 seconds