[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:01635] Re: 直方体の幅変更



―――――☆★  みんなで買えば安くなる! 楽天 共同購入  ★☆――――
┏━━━┓      
┃楽●天┃     売り切れ続出、だからトクするチャンス
┗━━━┛    目玉商品満載! 家電・グルメ・ファッション…
    今すぐアクセス⇒  http://www.rakuten.co.jp/?PR00cast
------------------------------------------------------------------------

3D勉強中の伏見です。

前回はTransform3D のご指摘をありがとうございました。
現在テスト中ですが、疑問点があります。

TextFieldの検証用のためえんどうさん作成の
AppearanceTestをお借りしています。
これで、試験的にBox用のTransform3Dであるbt3dに
bt3d.setScale(0.5)
を付加すると、みごとにBoxは半分の大きさになりました。(あたりまえか(笑))

しかし、次にTransformGroupのAPIにあるSetCapabilityより

    TransformGroup btrans = new TransformGroup(bt3d);
→    btrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    btrans.addChild(new Box( 0.16f, 0.16f, 0.16f, yapp ));
    trans.addChild(btrans);

と、TransformGroupへのWriteを許可して、

    panel.add(new Label("Transparency"));
    TextField tfield = new TextField("0.0", 4);
    tfield.addActionListener( new ActionListener() {
      public void actionPerformed(ActionEvent e)  {
        float value = 0.0f;
        try {
          value = Float.parseFloat(e.getActionCommand());
          if (value > 1.0f) value = 1.0f;
          if (value < 0.0f) value = 0.0f;
          System.out.println("value=" + value);

→ bt3d.setScale(0.5);

        } catch (NumberFormatException ex) { }
      }
    });
    panel.add(tfield);

と、試験的にActionListenere内でsetScaleをしたのですが、
TextFieldへ入力してもBoxは変わりませんでした。
ちなみにSystem.out.println により
VALUE=0.2 等の入力した値は確認できます。

これは、TransformGroupeの
setCapability(TransformGroupe.ALLOW_TRANSFORM_WRITE)
では、Transform3D の途中変更は出来ない等の制限があるのでしょうか?


伏見@相変わらず進歩が無い(笑)