Hi,

        Vow thanks a lot. Hmm, I didnt even think about this, how stupid
        :-)
        But that was cool.

        Cheers
        Tina

> To do this you must set the capabilities before you add the
> BG to the scenegraph.
>
> I do it this way:
>
>             Enumeration enum = sceneGroup.getAllChildren();
>             setVRMLCapabilities(enum);
>             switchGroup.addChild(sceneGroup);
>
> The capablilties are set by the setVRMLCapabilities. This member functions
> sets all the capabilities of all the nodes in the VRML scene graph before
> adding to the scenegraph.
>
>     public void setVRMLCapabilities(Enumeration enum){
>         while (enum.hasMoreElements()) {
>             Object tmpObject = enum.nextElement();
>
>             if (tmpObject instanceof Shape3D) {
>                 System.out.println("setVRMLCapabilities: a shape3D");
>
> ((Shape3D)tmpObject).setCapability(Shape3D.ALLOW_APPEARANCE_READ);
>
> ((Shape3D)tmpObject).setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
>
>                 Appearance appear = ((Shape3D)tmpObject).getAppearance();
>
>
> appear.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_READ);
>
> appear.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
>                 appear.setCapability(Appearance.ALLOW_MATERIAL_READ);
>                 appear.setCapability(Appearance.ALLOW_MATERIAL_WRITE);
>
>                 Material mat = appear.getMaterial();
>                 mat.setCapability(Material.ALLOW_COMPONENT_READ);
>                 mat.setCapability(Material.ALLOW_COMPONENT_WRITE);
>
>             } else if (tmpObject instanceof TransformGroup) {
>                 System.out.println("setVRMLCapabilities: a transformgroup");
>                 TransformGroup tmptransformGroup =
> (TransformGroup)tmpObject;
>
>
> tmptransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
>
> tmptransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_READ);
>
> tmptransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
>
> tmptransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
>
> tmptransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
>
>                 Enumeration nextenum = tmptransformGroup.getAllChildren();
>
>                 setVRMLCapabilities(nextenum);
>             } else if(tmpObject instanceof Group){
>                 System.out.println("setVRMLCapabilities: a group");
>                 Group tmpGroup = (Group)tmpObject;
>
>                 tmpGroup.setCapability(BranchGroup.ALLOW_DETACH);
>                 tmpGroup.setCapability(BranchGroup.ALLOW_BOUNDS_READ);
>                 tmpGroup.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
>                 tmpGroup.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
>
> tmpGroup.setCapability(BranchGroup.ALLOW_LOCAL_TO_VWORLD_READ);
>
>                 Enumeration groupenum = tmpGroup.getAllChildren();
>
>                 setVRMLCapabilities(groupenum);
>             } else {
>                 System.out.println("setVRMLCapabilities: What is this
> thing?");
>             }
>         }
>     }
>
> Ole Vilmann
> Danish Maritime Institute
>
> -----Original Message-----
> From: Tina Manoharan Valappil [mailto:[EMAIL PROTECTED]]
> Sent: 23. november 2000 21:14
> To: [EMAIL PROTECTED]
> Subject: [JAVA3D] RestrictedAccessException - VRMLloader
>
>
>         Dear all,
>
>         this is a part of my scene graph
>
>         TG
>         |
>         BG (ALLOW_CHILDREN_WRITE & ALLOW_CHILDREN_EXTEND)
>
>         To this I am adding a scenegraph dynamically with VRMLloader.
>         The new additions to it are
>
>                 BG (from VRMLloader)
>         |               |
>         BG1             BG2
>         |               |
>         Shape3D1        Shape3D2
>
>         Now if I want to set the capability(ALLLOW_APPEARANCE_READ) to the
>         Shape3D 1 & 2 . It is giving me RestrictedAccessException. So, I
>         tried giving the BG1 & BG2 , ALLOW_CHILDREN_WRITE capability but it
> also
>         gave a RestrictedAccessException cannot set capability bits on a
> live or
>         compiled object. ( I knew that this wouldnt work but just a try)
>
>         Can somebody please tell me as to how I can set the capability for
>         the children shape3Ds which I am dynamically loading with a
> VRMLloader.
>
>
>         Thanks
>         Tina
>
> Tina Manoharan
> PhD. Heriot Watt University
> Ph: 07801 069485 / 07740 959483 (mobile)
> Ph: 0131 449 5111 ext. 4191 (office)
> Ph: 0131 449 5111 ext. 4197 (lab)
>
> ===========================================================================
> 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".
>

Tina Manoharan
PhD. Heriot Watt University
Ph: 07801 069485 (mobile)
Ph: 0131 449 5111 ext. 4191 (office)
Ph: 0131 449 5111 ext. 4197 (lab)

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