I really appreciate your help brian
but my real problem is like this

suppose i have a simple scenegraph containing a
cube and 2D text attached to one of its vertices,
now if i pick and rotate the cube, I want the 2D text
to adjust its position accordingly without getting distorted
and always facing the viewer.

will be greatful if anyone can help me out

saurabh


----- Original Message -----
From: Brian Eppert <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, March 13, 2001 11:20 PM
Subject: Re: [JAVA3D] Annotation


> Don't know if anyone answered this already, but here's how I handled
> it (in a subclass of TransformGroup):
>
> {
>     TransformGroup labelTG = new TransformGroup();
>     labelTG.setCapability(labelTG.ALLOW_TRANSFORM_WRITE);
>
>     Transform3D topTransform = new Transform3D();
>     getTransform(topTransform);
>
>     Text2D label = new Text2D(getTarget().getLabelString(),
>                               new Color3f(1f, 1f, 1f), "Courier",
>                               14, Font.PLAIN);
>
>     GeometryArray ga = (GeometryArray) label.getGeometry();
>     Point3f       center = getCenter(ga);
>
>     Vector3f      centerTranslation = new Vector3f(-center.x, 0, 0);
>     Vector3f      currentTranslation = new Vector3f();
>     Vector3f      offsetTranslation = new
> Vector3f(getTarget().getLabelOffset());
>
>     topTransform.get(currentTranslation);
>
>     currentTranslation.add(centerTranslation);
>     currentTranslation.add(offsetTranslation);
>
>     topTransform.setTranslation(currentTranslation);
>     setTransform(topTransform);
>
>     Billboard billboard = new Billboard(labelTG,
>                                         Billboard.ROTATE_ABOUT_POINT,
>                                         new Point3f(center.x,
> center.y, 0));
>
>     billboard.setSchedulingBounds(new BoundingSphere(new Point3d(),
> 1000.0));
>     addChild(billboard);
>
>     labelTG.addChild(label);
>     addChild(labelTG);
> }
>
> The utility method getCenter:
>   float [] mins = new float[3];
>   float [] maxs = new float[3];
>   float [] curr = new float[3];
>
>   public Point3f getCenter(GeometryArray geomArray) {
>
>     if((geomArray == null) || geomArray.getVertexCount() == 0)
>       return null;
>
>     geomArray.getCoordinate(0, mins);
>     geomArray.getCoordinate(0, maxs);
>
>     for (int i = 1; i < geomArray.getVertexCount(); i++) {
>
>       geomArray.getCoordinate(i, curr);
>
>       if (curr[0] < mins[0]) {mins[0] = curr[0];}
>       if (curr[0] > maxs[0]) {maxs[0] = curr[0];}
>
>       if (curr[1] < mins[1]) {mins[1] = curr[1];}
>       if (curr[1] > maxs[1]) {maxs[1] = curr[1];}
>
>       if (curr[2] < mins[2]) {mins[2] = curr[2];}
>       if (curr[2] > maxs[2]) {maxs[2] = curr[2];}
>     }
>
>     return new Point3f((maxs[0] + mins[0]) / 2, (maxs[1] + mins[1]) /
> 2,
>                        (maxs[2] + mins[2]) / 2);
>   }
>
> Hope it helps.
> -Brian
>
> --- Saurabh Akhauri <[EMAIL PROTECTED]> wrote:
> > I am trying to add 2D text as annotation to a 3D part.
> > If i add same behaviour to both and try to rotate the part, the
> > text also
> > rotates with the part and looks distorted/vanishes.
> >
> > Is there some way by which the 2D text always remains at same plane
> >
> > and adjusts its position relative to the 3D part's rotation /
> > translation / zoom
> > on the screen.
> >
> > Basically i want to have behaviour of the 2D text effected by the
> > behaviour of 3D body.
> >
> > saurabh
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Auctions - Buy the things you want at great prices.
> http://auctions.yahoo.com/
>
>
===========================================================================
> 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".

===========================================================================
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".

Reply via email to