Warning: currently the picking Utilities are not working with GeometryInfo
structure in which the Geometry Type is indexed (e.g. TRIANGLE_FAN_ARRAY,
TRIANGLE_STRIP_ARRAY, etc.).
Try to use others simple structures.
I hope this is useful for you.
By Mauro.
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, July 14, 2000 1:59 PM
Subject: [JAVA3D] Picking Geometry Info Shapes
> Hi,
> I managed to get the Java3D 1.2 Pick funktionaliy to work, but it is still
> not working with Polygons I create with the help of GeometryInfo-Objects.
> I get the following capability set exception:
>
> javax.media.j3d.CapabilityNotSetException: Shape3D: no capability to allow
> inter
> sect
> at javax.media.j3d.Shape3D.intersect(Shape3D.java:434)
> at
> com.sun.j3d.utils.picking.PickTool.pickGeomAllSorted(PickTool.java:67
> 2)
> at
> com.sun.j3d.utils.picking.PickTool.pickGeomClosest(PickTool.java:736)
>
> at
> com.sun.j3d.utils.picking.PickTool.pickClosest(PickTool.java:512)
> at
> app.gis3D.PickObjectBehavior.updateScene(PickObjectBehavior.java:115)
>
> at
> com.sun.j3d.utils.picking.behaviors.PickMouseBehavior.processStimulus
> (PickMouseBehavior.java:153)
> at
> javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:167)
> at javax.media.j3d.J3dThread.run(J3dThread.java:256)
>
>
> I tried to set the capabilites with the following:
>
> ginfo.setCoordinates(coordsccw);
> ginfo.setStripCounts(stripCounts);
>
> Triangulator tr = new Triangulator();
> tr.triangulate(ginfo);
>
> NormalGenerator ng = new NormalGenerator();
> ng.generateNormals(ginfo);
>
> Stripifier st = new Stripifier();
> st.stripify(ginfo);
>
> // Set Appearance
> Appearance app = createAppearance();
> PolygonAttributes polyAppear = new PolygonAttributes();
> polyAppear.setCullFace(PolygonAttributes.CULL_NONE);
> app.setPolygonAttributes(polyAppear);
>
> -> ginfo.getGeometryArray().setCapability(Geometry.ALLOW_INTERSECT);
>
> // Create Shape3D
> Shape3D shape = new Shape3D();
> shape.setAppearance(app);
> shape.setGeometry(ginfo.getGeometryArray());
> shape.setCapability(Shape3D.ALLOW_APPEARANCE_READ);
> shape.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
> -> shape.setCapability(Geometry.ALLOW_INTERSECT);
>
> sf3d.addChild(shape);
>
> But it is not working. So what now?
> I really appreciate your help, thanks Desiree
>
>
>
> o------------------------------------------------------------------------o
> | Desiree Hilbring Institut fuer Photogrammetrie und Fernerkundung |
> | Universitaet Karlsruhe, Germany |
> | |
> | email: [EMAIL PROTECTED] |
> | # 0721 6083676 |
> o------------------------------------------------------------------------o
>
>
===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body
> of the message "signoff JAVA3D-INTEREST". For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>
>
Hi,
I managed to get the Java3D 1.2 Pick funktionaliy to work, but it is still
not working with Polygons I create with the help of GeometryInfo-Objects.
I get the following capability set exception:
javax.media.j3d.CapabilityNotSetException: Shape3D: no capability to allow
inter
sect
at javax.media.j3d.Shape3D.intersect(Shape3D.java:434)
at
com.sun.j3d.utils.picking.PickTool.pickGeomAllSorted(PickTool.java:67
2)
at
com.sun.j3d.utils.picking.PickTool.pickGeomClosest(PickTool.java:736)
at
com.sun.j3d.utils.picking.PickTool.pickClosest(PickTool.java:512)
at
app.gis3D.PickObjectBehavior.updateScene(PickObjectBehavior.java:115)
at
com.sun.j3d.utils.picking.behaviors.PickMouseBehavior.processStimulus
(PickMouseBehavior.java:153)
at
javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:167)
at javax.media.j3d.J3dThread.run(J3dThread.java:256)
I tried to set the capabilites with the following:
ginfo.setCoordinates(coordsccw);
ginfo.setStripCounts(stripCounts);
Triangulator tr = new Triangulator();
tr.triangulate(ginfo);
NormalGenerator ng = new NormalGenerator();
ng.generateNormals(ginfo);
Stripifier st = new Stripifier();
st.stripify(ginfo);
// Set Appearance
Appearance app = createAppearance();
PolygonAttributes polyAppear = new PolygonAttributes();
polyAppear.setCullFace(PolygonAttributes.CULL_NONE);
app.setPolygonAttributes(polyAppear);
-> ginfo.getGeometryArray().setCapability(Geometry.ALLOW_INTERSECT);
// Create Shape3D
Shape3D shape = new Shape3D();
shape.setAppearance(app);
shape.setGeometry(ginfo.getGeometryArray());
shape.setCapability(Shape3D.ALLOW_APPEARANCE_READ);
shape.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
-> shape.setCapability(Geometry.ALLOW_INTERSECT);
sf3d.addChild(shape);
But it is not working. So what now?
I really appreciate your help, thanks Desiree
o------------------------------------------------------------------------o
| Desiree Hilbring Institut fuer Photogrammetrie und Fernerkundung |
| Universitaet Karlsruhe, Germany |
| |
| email: [EMAIL PROTECTED] |
| # 0721 6083676 |
o------------------------------------------------------------------------o
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".