Substituir Shapes no Java 3D

4 respostas
marcioyudi

Olá,

Estou desenvolvendo uma aplicação de teste com o Java 3D e estou tentando trocar um dado Shape3D por outro (ex: um ColorCube por uma Sphere, por exemplo). Porém não estou conseguindo.

Já efetuei uma pesquisa no fórum, estudei o tutorial sobre Java 3D da Sun e também o link do "Killer Game Programming in Java" (citado no GUJ).

Atualmente estou tentando alterar o bloco correspondente à montagem do BranchGroup baseado no exemplos do tutorial da Sun.

public BranchGroup createSceneGraph() {
         // Create the root of the branch graph
         BranchGroup objRoot = new BranchGroup();
 
         // Create the transform group node and initialize it to the 
         // identity. Add it to the root of the subgraph.
         TransformGroup objSpin = new TransformGroup();
         objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
         objRoot.addChild(objSpin);
 
         // Create a simple shape leaf node, add it to the scene graph.
         // ColorCube is a Convenience Utility class
         objSpin.addChild(new ColorCube(0.4));       // <-- tentando alterar nesse ponto, inserindo uma referência de uma outra classe ou ainda um Vector no lugar desta..
 
         // Create a new Behavior object that will perform the desired
         // operation on the specified transform object and add it into
         // the scene graph.
         Alpha rotationAlpha = new Alpha(-1, 4000);
  
         RotationInterpolator rotator =
                 new RotationInterpolator(rotationAlpha, objSpin);
 
         // a bounding sphere specifies a region a behavior is active
         // create a sphere centered at the origin with radius of 100
         BoundingSphere bounds = new BoundingSphere();
         rotator.setSchedulingBounds(bounds);
         objSpin.addChild(rotator);
 
         return objRoot;
     } // end of CreateSceneGraph method

Alguém poderia me orientar quanto à isso?

Abraços,
Marcio Yudi Shimoda

4 Respostas

J

tu quer fazer o que mesmo?!?

marcioyudi

Eu queria fazer um programa para testar instâncias da biblioteca com.sun.j3d.utils.geometry.* numa única aplicação e aos poucos ir montando interação nele.

O problema atual é que não estou sendo capaz de trocar a exibição de um pelo outro sem dar erro.

J

nao mexo muito em java 3d mas, …
que eu me lembre todas as forma tem um atributo "vivo"
acho que se vc colocar vivo para false, talvez ele nao seja renderizado :wink:
testa aí e flws!

marcioyudi

Josueh, obrigado pela ajuda.

Mas não consegui fazer o que eu imaginava, então resolvi fazer da forma mais simples para funcionar: O código monta o Java3D em um Dialog ao invés de montá-lo no próprio Frame principal. Felizmente está funcionando.

Meu muito obrigado pelo apoio e atenção.

Abraços,
Marcio Yudi Shimoda

Criado 17 de setembro de 2008
Ultima resposta 18 de set. de 2008
Respostas 4
Participantes 2