Skip to main content

0.62ブランチができました

34 replies [Last post]
hideya
Offline
Joined: 2003-07-22
Points: 0

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Yoshifumi Maeda

九州工業大学の前田です。

やっと地元福岡に帰って来ました。
返答遅れまして申し訳ありません。

> 特定のクラスのオブジェクトすべてからイベントを取るのは、どう
> いうときに使うのでしょうか? この使い方によってはもう少しスマー
> トな方法が見つかるかもしれないと思います。
>
> # カーソルとジェスチャ以外に、使い方が思い浮かばないのです ^^;;
ローカルな話題になるかも知れませんが、CosmoSchedulerDの場合では…
1.星がクリックされると、
2.あるパネルがイベントをキャッチして
3.そのパネルが詳細を表示する
という流れを作ろうとしたときに使っていました。
SchedulePlanetを継承した全てのクラスからのイベントをキャッチさせて
ました。
これが効率がいいかどうかはちょっとわかりません…。
というか、それ以外には考えが及びませんでした。

ひでやさん
> EventConnector.getEventConnector().addListener(MyEventSource.class,
> myListener);
については、僕は納得がいきます。
前に挙げて頂いた過去の候補よりもわかりやすいですね。
でもComponent3Dに登録するというスタイルがawt風でわかりやすいといえば、
わかりやすいような…。
本当に難しい話題ですね。

setMouseEventPropagatableについての件、理解しました。
おっしゃる通り、ThumbnailにaddListenerしていたの原因でした。
ThumbnailにaddListnerすれば、そこえイベントを食ってくれるんだと思い
込んでました。
シーングラフにおけるそれ以下のコンポーネントに食わせれば良かったんです
ね。
ありがとうございます。

> 前田さん,英語圏の人は,とにかくシンプルで率直な表現を好みます.
> 平野さんがされたように,箇条書きで論点を整理するのは良いアイデアです.
> 是非ともご参考ください.
平野さん、ひでやさん、ありがとうございます!
へんちくりんな英語になっているんですが、もっとシンプルに書き直します。
このまま出すところでした…。お恥ずかしい。
書き直して出します。
時間がかかって仕方がないです (T-T;

-----
九州工業大学大学院 情報工学研究科 小出研究室
前田 良史 (Yoshifumi Maeda)
E-mail: fumi@mickey.ai.kyutech.ac.jp

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

hideya
Offline
Joined: 2003-07-22
Points: 0

前田さん,

英語フォーラムデビューおめでとうございますっ!

早速Paulが返答してますね :-)

> へんちくりんな英語になっているんですが、もっとシンプルに書き直します。
> このまま出すところでした…。お恥ずかしい。
> 書き直して出します。

いやいやとんでもない.良く書けていると思いますよっ.

> 時間がかかって仕方がないです (T-T;

もうこれは慣れ以外のなにものでもないです.
ほんと,自転車乗るのとおんなじです.
指におぼえこませるんです(マジで).
そのうち頭使わなくなります ← おいおいそれはまずいだろ.

> ローカルな話題になるかも知れませんが、CosmoSchedulerDの場合では…

なぁ~るほど.しかし良くちゃんと使えましたね.ドキュメントも無いのに.(当事者として反省しなさい > 自分)

> > EventConnector.getEventConnector().addListener(MyEventSource.class,
> > myListener);
> については、僕は納得がいきます。

コメントどうもありがとう.Paulとも話をしまして,特に反論が無いかぎり,この方向で行くことになりました.

> setMouseEventPropagatableについての件、理解しました。

良かった.うまく行ったようでなによりです.

それでは,今後とも英語フォーラムでも頑張ってくださいっ!

ひでや

hideya
Offline
Joined: 2003-07-22
Points: 0

ひでやです.

続報です.申し訳ないのですが,駄文が長く続きます.
お時間のない方は,最初と最後だけお読みください...

> > setTranslationを行った後にsetAnimation()をすると、先に行ったはずの
> > setTranslationがキャンセルされました。
> > 順番を逆にすると何も問題はないのですが…。
> > setScaleなどの「set」メソッドでも同様の結果です。
> >
> > まぁ、まだ安定版ではないのでバグかどうかはよくわかりませんね。
> > # ↑実装を後回しにしているだけ、というのかな
>
> はひ.これもバグです.「実装を後回しにしている」というのは
> まさに図星ですっ(苦笑).

このバグ,クリティカルな状況にならない限り知らんふりしておこう
かと思っていましたが(極悪),思いのほか早く気になる存在になって
しまいましたので,ついさきほど葬り去りました(修正しました).
Tutorialを書き変えていたのですが,説明の順番上,どうしても
setRotationAxisをsetAnimationより前にしたい状況に陥り
まして...

もしよろしかったら最新のdev-0-6-2を試してみてください.
あと,もしよろしかったらTutorialのクラス改訂版も見てみて,
なにか改善案がありましたらご連絡ください.

> > 問題は,LG3Dでは特定のオブジェクトからのイベントを取る機能
> > に加えて,特定のクラスのオブジェクト全てからの(指定の)イベント
> > を取る機能があって,これをどうユーザに見せるか,という点です.
> > 「この機能はユーザから隠す」という選択肢もあったのですが,
> > 使い方によっては結構便利なので,APIに入れることにしました.
>
> 特定のクラスのオブジェクトすべてからイベントを取るのは、どう
> いうときに使うのでしょうか? この使い方によってはもう少しスマー
> トな方法が見つかるかもしれないと思います。
>
> # カーソルとジェスチャ以外に、使い方が思い浮かばないのです ^^;;

すっ,するどいところをつかれてしまいました... あたふた.

えーと,例えば,MyComp1とかMyComp2とかいうComponent3Dを
継承したクラスがアプリケーション内で定義されていて,
MyComp1とかMyComp2のインスタンスがアプリケーション内に
多数存在していて,それらインスタンスに対するイベントを
Listenしたい場合(前提が長いっ),
インスタンス毎にListenerをAddしても良いのですが,
MyComp1に対して送られた目的のイベントをListenするListenerを
1つつくって,それで全部のイベントを受け取って,その
processEvent()メソッド内でイベントソースを使ってソースに
対して処理を行う,とした方がコードが簡潔になる場合がある,
とかいう使い方で...

特に,今は全てのMyComp1オブジェクトに対するイベントを
Listenしてるけど,状況によっては一時的にListenするのを
一斉に止めたいとか,MyComp2に切り替える必要があるとか,
そういう場合を想定しています.

もしくは,LgEventを継承してMyEvent1とMyEvent2なんかを
実装した場合で,普段は全てのComponentに対して発生したMyEvent1
全てをListenしたいのだけど,場合によってはMyEvent2に切り替え
たいとか,そういった操作が簡単にできます.

MyComp1とかMyEvent1とかいってしまうとイメージがわき難い
のですが,何かのサムネイルを多数表示するようなアプリケーションで
サムネイル特有のイベントがあったりした場合に上のような状況が
あてはまるのでは,と思っています.

もっと具体的には,SceneManager(厳密にはStandardAddContainer)
でFrame3Dに対して上記のようなアプローチをとっています
(もちろん,Frame3Dオブジェクト全部にリスナをAddすることも
できたのですが...)

ほんとうはまだ先があって,実はLG3Dのイベントシステムは
将来的にはアプリケーション間の連携にも利用できるようにしよう
という企みがあります.例えば,任意のアプリケーションが,
MailAppクラスに属するインスタンスに対して発生した
EmailReceivedイベントをListenできて,有用な処理をほどこす
ことができる,と.(セキュリティ? 何それ?)
(↑ ウソです.ちゃんと考えないといけないですっ)
前提としては,MailAppクラスやEmailReceivedイベントに
アプリケーション間で合意が必要になります.
この辺,もう一歩先にいけそうなアイデアはあるのですが,
もう少し整理してから再度紹介させて下さい...
(ちょっと脳がとろけ始めています... 逃げに入りますっ)

で,結論はというと,この件(Static methodの件),Paulとも
再度お話をしまして,やっぱComponent3Dにくっつけるのは
ちょっと強引かな,という話になりました.今のことろ,
かわりに,
[code]
EventConnector.getEventConnector().addListener(MyEventSource.class, myListener);
[/code]
というようなAPIに変更しておいた方が良いのでは,
ということになっています(「品がない」と言っておきつつ).
どうでしょうか?

すみません.駄文が延々とつづいてしまい申し訳ありませんでした.
もう寝ますぅ...

ひでや

Yoshifumi Maeda

九州工業大学の前田です。

やっと地元福岡に帰って来ました。
返答遅れまして申し訳ありません。

> 特定のクラスのオブジェクトすべてからイベントを取るのは、どう
> いうときに使うのでしょうか? この使い方によってはもう少しスマー
> トな方法が見つかるかもしれないと思います。
>
> # カーソルとジェスチャ以外に、使い方が思い浮かばないのです ^^;;
ローカルな話題になるかも知れませんが、CosmoSchedulerDの場合では…
1.星がクリックされると、
2.あるパネルがイベントをキャッチして
3.そのパネルが詳細を表示する
という流れを作ろうとしたときに使っていました。
SchedulePlanetを継承した全てのクラスからのイベントをキャッチさせて
ました。
これが効率がいいかどうかはちょっとわかりません…。
というか、それ以外には考えが及びませんでした。

ひでやさん
> EventConnector.getEventConnector().addListener(MyEventSource.class,
> myListener);
については、僕は納得がいきます。
前に挙げて頂いた過去の候補よりもわかりやすいですね。
でもComponent3Dに登録するというスタイルがawt風でわかりやすいといえば、
わかりやすいような…。
本当に難しい話題ですね。

setMouseEventPropagatableについての件、理解しました。
おっしゃる通り、ThumbnailにaddListenerしていたの原因でした。
ThumbnailにaddListnerすれば、そこえイベントを食ってくれるんだと思い
込んでました。
シーングラフにおけるそれ以下のコンポーネントに食わせれば良かったんです
ね。
ありがとうございます。

> 前田さん,英語圏の人は,とにかくシンプルで率直な表現を好みます.
> 平野さんがされたように,箇条書きで論点を整理するのは良いアイデアです.
> 是非ともご参考ください.
平野さん、ひでやさん、ありがとうございます!
へんちくりんな英語になっているんですが、もっとシンプルに書き直します。
このまま出すところでした…。お恥ずかしい。
書き直して出します。
時間がかかって仕方がないです (T-T;

-----
九州工業大学大学院 情報工学研究科 小出研究室
前田 良史 (Yoshifumi Maeda)
E-mail: fumi@mickey.ai.kyutech.ac.jp

Yuichi SAKURABA

こんにちは、ひでやさん。さくらばです。

On Wed, 30 Mar 2005 01:34:06 EST
interest_ja@javadesktop.org wrote:
> 問題は,LG3Dでは特定のオブジェクトからのイベントを取る機能
> に加えて,特定のクラスのオブジェクト全てからの(指定の)イベント
> を取る機能があって,これをどうユーザに見せるか,という点です.
> 「この機能はユーザから隠す」という選択肢もあったのですが,
> 使い方によっては結構便利なので,APIに入れることにしました.

特定のクラスのオブジェクトすべてからイベントを取るのは、どう
いうときに使うのでしょうか? この使い方によってはもう少しスマー
トな方法が見つかるかもしれないと思います。

# カーソルとジェスチャ以外に、使い方が思い浮かばないのです ^^;;

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yuichi SAKURABA

こんにちは、えんどうさん。さくらばです。

On Tue, 29 Mar 2005 14:18:54 +0900
yasuyuki@javaopen.org wrote:
> > > Java3D のバグかもしれません。
> >
> > Java3Dより,グラフィックスドライバのバグの可能性が高いかも.どのカードに,どのバージョンのドライバを使っているかという情報も必要でしょう.
>
> たとえばこのJava 3Dアプレットはどう見えますでしょうか?
>
> http://www.javaopen.org/j3dbook/examples/AppearanceTest5/AppearanceTest....

GeForce 6600 のマシンで試してみました。デュアルブート (WinXP
と Fedora) なので、同一マシンで両方の OS で試してみました。

WindowsXP SP2 DispDriver v65 JDK1.5.0_02 Java3D 1.3.2 JAI 1.1.2_01
FedoraCore 3 2.6.10 DispDriver v1.0-7167 JDK1.5.0_02 Java3D 1.3.2 JAI 1.1.2_01

結果、WinXP は ○、Fedora は × でした。

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

kazama
Offline
Joined: 2003-06-18
Points: 0

> どうやら、Windows と Linux で挙動が違うようです。
> Windows ではちゃんと透明になりますが、Linux ではダメです。
> ということは、ちゃんとソースを見ているわけではないのですが、
> Java3D のバグかもしれません。

Java3Dより,グラフィックスドライバのバグの可能性が高いかも.どのカードに,どのバージョンのドライバを使っているかという情報も必要でしょう.

yasuyuki@javaopen.org

えんどうです。

> > Java3D のバグかもしれません。
>
> Java3Dより,グラフィックスドライバのバグの可能性が高いかも.どのカードに,どのバージョンのドライバを使っているかという情報も必要でしょう.

たとえばこのJava 3Dアプレットはどう見えますでしょうか?

http://www.javaopen.org/j3dbook/examples/AppearanceTest5/AppearanceTest....

--
ENDO Yasuyuki
http://www.javaopen.org/~yasuyuki/
http://www.javaopen.org/jfriends/

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

hideya
Offline
Joined: 2003-07-22
Points: 0

前田さん,櫻庭さん,みなさま,

ひでやです.ちょっと反応が遅れてしまいました...
前田さん,APIへのコメント,どうもありがとうございます.
そのうちいくつかについてコメントをお返しいたします(長いです...
引用元が誰の文か不明確になってしまいましたがご容赦くださいっ)

このスレッドに出てきた不具合は,是非とも「本家」の方に
なげてみてくださいっ!

> Component3D#addListener(SourceClass, LgEventListener)
> について、このメソッドはstaticな方がいいのでしょうか?
...
> Component3D.addListener(MyEvent,class, ...);
> ではなく、
> myComponent.addListener(MyEvent.class, ...);
> みたいに書きたくなりますよね。

問題は,LG3Dでは特定のオブジェクトからのイベントを取る機能
に加えて,特定のクラスのオブジェクト全てからの(指定の)イベント
を取る機能があって,これをどうユーザに見せるか,という点です.
「この機能はユーザから隠す」という選択肢もあったのですが,
使い方によっては結構便利なので,APIに入れることにしました.

「特定のオブジェクトからのイベントを取る」の表現は簡単で,
みなさんもご承知のように,
[code]
comp.addListener(myListener);
[/code]
になります.問題は「特定のクラスのオブジェクト全てからの
イベントを取る」場合で,どうしましょ.
意味的には,
[code]
(MyEventSource.class).addListener(myListener);
[/code]
なのですが,さすがにClassオブジェクトの仕様は変えられない ^^;
そこで,
[code]
comp.addListener(MyEventSource.class, myListener);
[/code]
なんていう表現も考えられなくはないのですが,その場合,
オブジェクト「comp」の立場が無いです(compに対するメソッド
である意味がない).

イベントマネジャとかいうオブジェクトを定義して,
[code]
EventManager[.getEventManager()].addListener(MyEventSource.class, myListener);
[/code]
なぁんてする手もあったのですが,今一歩品がないかなとも思いました
(こっちの方が良いでしょうか?).

私は,ClassEventSourceとかいうクラスを導入して,それにClassオブジェクト
をラップさせてaddListener()を付加する,
[code]
(new ClassEventSource(MyEventSource.class)).addListener(myListener);
[/code]
なぁんて手を提案したりもしたのですが,「まわりくどい」との反論にあい,
私も「う~む,そうかもな」とも思い,却下(みなさんはどう思われます?
やっぱまわりくどいかなぁ...)

そこで,まぁ,なんとなくComponent3Dにstaticメソッドを追加して,
お茶を濁してみました.

が,厳密に言うと,Component3Dのstaticメソッドであることも変といえば変です.
というのは,イベントソースはComponent3Dに限らないから.「特定のクラスの
オブジェクト全てからのイベントを取る」リスナの登録をComponent3Dのメソッド
でするのは,ちょいとComponent3Dを乱用ぎみです.経験上,staticメソッドってば
無い方が良いです(シングルトンを獲得する等の特定の用途以外では).
でも,今のところ,イベントソースはほとんどの場合Component3Dなので,
後に別のリスナ登録方法を導入した場合でも,staticメソッド
Component3D#addListener(SourceClass, LgEventListener)は,コンビニエンス・
メソッドという意味で残せるから良いかな,なんていう考えもあり,
この程度のお茶の濁し具合で今に至っています.

そんなこんなな背景なのですが,皆さん,何か良いお知恵はありませんで
しょうか???

> Thumbnailがドラッグやマウスホイールイベントを取るのは仕様でしょうか?
> また、イベントを取らないようにすることはできますか?
...
> それにしてもサムネイルに関わらず、デフォルトのイベント処理を
> 切り離すことができるといいですね。
>
> 私も Zoetrope でホイールによる拡大縮小をさせたくなくて、ComponentMover
> を書き直していたのですが、0.62 ではその手が使えなくなってし
> まいました。なにかいい方法ないですかね。

「How to port to 0.62 Wiki page」にも書いたのですが,
http://wiki.java.net/bin/view/Javadesktop/PortingTo062
0.62では,イベントを「下位の」コンポーネントで食って(consumeして)
しまえば,上位のコンポーネントには伝わらず,SceneManagerはデフォルトの
操作を行いません(正確には「行えません」).

具体的には,たとえば,Thumbnailが以下のような構造をしていた場合,
[code]
Thumbnail -> Container3D -> Component3D -> Shape3D
[/code]
Shape3D上をクリックした等のイベントは,
[code]
Thumbnail <- Container3D <- Component3D <- Shape3D
[/code]
のように流れます.ここで,SceneManagerはThumbnailに対してaddListener()
するのですが,Container3DかComponent3Dに対してaddListener()をしてイベント
を食べてしまえば,SceneManagerはデフォルトの動作をしません(できません).
[code]
Thumbnail <- Container3D <- Component3D <- Shape3D
| | |
V V V
SceneManager MyListener (MyAnotherListener)
[/code]
Frame3Dに関しても同様です.

もし逆に,仮に下位のコンポーネントでもイベントを取りたいし,
同時に上位のコンポーネントにもイベントを伝えたい場合には,
その下位のコンポーネントに対して,addListener()をすると同時に
setMouseEventPropagatable(true)を呼び出します.
「How to port to 0.62 Wiki page」にはもう少し詳しく書いてあります
のでご参照ください.

なお,基本的な姿勢としては,「上に伝わったイベントの解釈は,
お上(SceneManager)の思うがままに」ということになってます.
デフォルトのSceneManagerは実装例の一つです.将来他の解釈をする
SceneManagerがあらわれる可能性があることも,ちょっとだけ気に
留めておいてください.

> それでコントロールしようとマウスホイールを動かすと、
> Thumbnailがスルスルと後ろに逃げて行く…^^;
> # Thumbnailの拡大縮小機能のためです。
> # Frame3Dの機能なんでしょうね。
...
> アプリのフォーカシングにサムネイルのドラッグは必要かなと思う
> のですが、ホイールはなんか無駄のような気がしてきました。
>
> というのも、今のインプリだとホイール回してもサムネイルがポコ
> ポコはねるだけだからです。
>
> これがバグなのか、仕様なのかいまいち分からない ^^;;

バグです.はい.
Frame3D用のComponent3DMoverをThumbnailにも流用した副作用です.
Thumbnail向けにはホイールのイベントを無視するThumbnailMoverか
なにかを書かなくちゃいけなかったのですが,手を抜いてしまいました...
ちゃんと英語のフォーラムでもレポートしてくださいね.

> setTranslationを行った後にsetAnimation()をすると、先に行ったはずの
> setTranslationがキャンセルされました。
> 順番を逆にすると何も問題はないのですが…。
> setScaleなどの「set」メソッドでも同様の結果です。
>
> まぁ、まだ安定版ではないのでバグかどうかはよくわかりませんね。
> # ↑実装を後回しにしているだけ、というのかな

はひ.これもバグです.「実装を後回しにしている」というのは
まさに図星ですっ(苦笑).
こっちも英語のフォーラムでレポートしてください.

> 不具合とリクエストを本家の方に投げてみることにします。
> 英語でメールを書いたことないので、いい経験になりますね。
> がんばります。

ぜひとも頑張ってください.英語フォーラムで待っていますっ!

ひでや

hideya
Offline
Joined: 2003-07-22
Points: 0

一件,補足です.

> ここで,SceneManagerはThumbnailに対してaddListener()
> するのですが,Container3DかComponent3Dに対してaddListener()をしてイベント
> を食べてしまえば,SceneManagerはデフォルトの動作をしません(できません).
[code]
> Thumbnail <- Container3D <- Component3D <- Shape3D
> | | |
> V V V
> SceneManager MyListener (MyAnotherListener)
[/code]
ここでもし,以下のようにした場合,
[code]
MyListener
A
|
Thumbnail <- Container3D <- Component3D <- Shape3D
|
V
SceneManager
[/code]
MyListenerとSceneManager両方にイベントが行きます.
ですので,もしSceneManagerにイベントを伝えたくない場合には,
Thumbnailより下位のオブジェクトにaddListener()してください.

あと,平野さん,英語フォーラムに投げる際の「まとめ」のお手伝い,
どうもありがとうございます.

前田さん,英語圏の人は,とにかくシンプルで率直な表現を好みます.
平野さんがされたように,箇条書きで論点を整理するのは良いアイデアです.
是非ともご参考ください.

ひでや

Yuichi SAKURABA

こんにちは、ひでやさん。さくらばです。

On Wed, 23 Mar 2005 18:48:35 EST
interest_ja@javadesktop.org wrote:
> I have one suggestion to your apps. It looks like your apps have a fixed size, which can be too large based on user's environment. You can get the screen size (the LG3D window size in the dev mode) by using [code]Frame3D#getScreenWidth/Hight()[/code]
> I thought it would look nicer if you adjust the size based on the screen size.

すいません、大きくて ^^;; プレゼン用に大きいままにしてました。

[code]Frame3D#getScreenWidth/Hight()[/code] は Lg3dHelp など
で使われていますね。GigAGig では使っているのですが...

すこしだけいいわけ。

今はテクスチャを扱うのにテクスチャ座標を使っておらず、すべて
現在のコンポーネントの大きさに一番近い 1024x1024 にイメージ
を拡大 (or 縮小) して扱っています。(サムネイルは 64x64)

本当ならば、mipmap を使ってコンポーネントの大きさに応じたテク
スチャを選ぶか、1 つのテクスチャイメージの中に複数の大きさの
画像を含めてコンポーネントの大きさに合わせて適当なものを選択
してテクスチャ座標で設定すればいいのでしょうが、まだやってま
せん。

それができたら、サイズ可変にしたいと思っています。

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

fumi
Offline
Joined: 2004-05-04
Points: 0

こんにちは。
九州工業大学の前田です。

遅くなりましたが、CosmoSchedulerDをLG3D0.62用に移植しました。
イベント周りがすっきりして読みやすくなりましたね。
Action, c3dAnimation, FloatSmootherなどの移植にてこずりました。

移植してみて気づいた点を3つ挙げます。
Component3D#addListener(SourceClass, LgEventListener)
について、このメソッドはstaticな方がいいのでしょうか?
GenericEventAdapterを使おうとすると、多くの場合上記のaddListnerを利用
することになると思います。
なんとなく違和感があったので…。

もう一つ、
Box box = new Box(0.03f, 0.03f, 0.03f, new SimpleAppearance(1.0f,
1.0f, 1.0f, 0.5f));
Component3D comp = new Component3D();
comp.addChild(box);
comp.setTransparency(1.0f);
Frame3D frame3d = new Frame3D();
frame3d.addChild(comp);
frame3d.changeEnabled(true);
frame3d.changeVisible(true);
と書いた場合、Boxが見えなく(透明度100%)なるのかなぁと思ったんですが、
SimpleAppearanceで設定した値(0.5f)しか反映されていないようです。
おそらく書き方がいけないのでしょうが、今のところ原因が掴めていません。
どなたか御存知でしたら教えてください。

最後に、Thumbnailがドラッグやマウスホイールイベントを取るのは仕様でしょ
うか?
また、イベントを取らないようにすることはできますか?

質問だらけになってしまいましたが、自分でも原因が掴めましたら報告しようと思いま
す。

それでは、失礼します。

Yuichi SAKURABA

こんにちは、前田さん。さくらばです。

On Sun, 27 Mar 2005 01:30:03 EST
interest_ja@javadesktop.org wrote:
> Component3D#addListener(SourceClass, LgEventListener)
> について、このメソッドはstaticな方がいいのでしょうか?
> GenericEventAdapterを使おうとすると、多くの場合上記のaddListnerを利用
> することになると思います。
> なんとなく違和感があったので…。

Component3D に addListener はできましたけど、中身は以前の
イベントモデルとかわっていないと思います。
ようするに、Component3D がリスナを保持するのではなく、
AppConnectorPrivate が保持しています。とすると Component3D
は addListener に関しては状態を持たないわけです。

だから、static でもかまわないということになっているのだと思
います。

でも、確かに違和感がありますね。

core のソースで調べてみると static な Component3D.addListener
を呼び出しているのは Cursol など特定の Component3D オブジェ
クトに縛られていないもののようです。

> Box box = new Box(0.03f, 0.03f, 0.03f, new SimpleAppearance(1.0f,
> 1.0f, 1.0f, 0.5f));
> Component3D comp = new Component3D();
> comp.addChild(box);
> comp.setTransparency(1.0f);
> Frame3D frame3d = new Frame3D();
> frame3d.addChild(comp);
> frame3d.changeEnabled(true);
> frame3d.changeVisible(true);
> と書いた場合、Boxが見えなく(透明度100%)なるのかなぁと思ったんですが、
> SimpleAppearanceで設定した値(0.5f)しか反映されていないようです。
> おそらく書き方がいけないのでしょうが、今のところ原因が掴めていません。
> どなたか御存知でしたら教えてください。

普通にやったら、ちゃんと透明になりましたけど。
メールの最後にソースを添付しておきます。

> 最後に、Thumbnailがドラッグやマウスホイールイベントを取るのは仕様でしょ
> うか?
> また、イベントを取らないようにすることはできますか?

これは仕様だと思います。タスクバーでもアプリを選択したりでき
るようになっていますから。

removeListener をしようにも Listener が分からないので、どう
しようもないですね。どうすればいいのだろう??

import org.jdesktop.lg3d.utils.shape.*;
import org.jdesktop.lg3d.wg.*;

public class Test {
public Test() {
Frame3D frame = new Frame3D();

Box box = new Box(0.03f, 0.03f, 0.03f,
new SimpleAppearance(1.0f, 1.0f, 1.0f, 0.5f));
Component3D comp = new Component3D();
comp.addChild(box);
comp.setTransparency(0.5f);

frame.addChild(comp);
frame.changeEnabled(true);
frame.changeVisible(true);
}

public static void main(String[] args) {
new Test();
}
}

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yoshifumi Maeda

前田です。

> こんにちは、前田さん。さくらばです。
櫻庭さん、返答ありがとうございます。

> > Component3D#addListener(SourceClass, LgEventListener)
> > について、このメソッドはstaticな方がいいのでしょうか?
> > GenericEventAdapterを使おうとすると、多くの場合上記のaddListnerを利用
> > することになると思います。
> > なんとなく違和感があったので…。
> Component3D に addListener はできましたけど、中身は以前の
> イベントモデルとかわっていないと思います。
> ようするに、Component3D がリスナを保持するのではなく、
> AppConnectorPrivate が保持しています。とすると Component3D
> は addListener に関しては状態を持たないわけです。
>
> だから、static でもかまわないということになっているのだと思
> います。
確かにそうなっていますね。なるほど。
アプリケーション作るばかりで、ソースの読み方が足りませんね。
これを機にもうちょっと深く読んでみます。

> でも、確かに違和感がありますね。
Component3D.addListener(MyEvent,class, ...);
ではなく、
myComponent.addListener(MyEvent.class, ...);
みたいに書きたくなりますよね。

> > SimpleAppearanceで設定した値(0.5f)しか反映されていないようです。
> > おそらく書き方がいけないのでしょうが、今のところ原因が掴めていません。
> > どなたか御存知でしたら教えてください。
>
> 普通にやったら、ちゃんと透明になりましたけど。
> メールの最後にソースを添付しておきます。
> import org.jdesktop.lg3d.utils.shape.*;
> import org.jdesktop.lg3d.wg.*;
>
> public class Test {
> public Test() {
> Frame3D frame = new Frame3D();
>
> Box box = new Box(0.03f, 0.03f, 0.03f,
> new SimpleAppearance(1.0f, 1.0f, 1.0f, 0.5f));
> Component3D comp = new Component3D();
> comp.addChild(box);
> comp.setTransparency(0.5f);
>
> frame.addChild(comp);
> frame.changeEnabled(true);
> frame.changeVisible(true);
> }
>
> public static void main(String[] args) {
> new Test();
> }
> }
comp.setTransparency(0.5f);
という部分を
-> comp.setTransparency(1.0f);
に変えた場合に透明度100パーセントにならないんです。
その後色々試したのですが、うまくいってない状況です。
今現在は、都合により0.62が使える状況にないのですが、引続き調査してみま
す。

> > 最後に、Thumbnailがドラッグやマウスホイールイベントを取るのは仕様でしょ
> > うか?
> > また、イベントを取らないようにすることはできますか?
>
> これは仕様だと思います。タスクバーでもアプリを選択したりでき
> るようになっていますから。
>
> removeListener をしようにも Listener が分からないので、どう
> しようもないですね。どうすればいいのだろう??
実はCosmoSchedulerDのコントローラをThumbnailに持たせていました。
それでコントロールしようとマウスホイールを動かすと、
Thumbnailがスルスルと後ろに逃げて行く…^^;
# Thumbnailの拡大縮小機能のためです。
# Frame3Dの機能なんでしょうね。
Thumbnailにコントローラを持たせると3D空間を動き回るのにちょうど
よかったので…。
そんな理由でイベントを取らない方法を探していました。
一応コントローラを別に持たせるという解決策は取りました。

長文失礼します。

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yuichi SAKURABA

こんにちは、前田さん。さくらばです。

On Mon, 28 Mar 2005 19:31:23 +0900 (JST)
Yoshifumi Maeda wrote:
> comp.setTransparency(0.5f);
> という部分を
> -> comp.setTransparency(1.0f);
> に変えた場合に透明度100パーセントにならないんです。
> その後色々試したのですが、うまくいってない状況です。
> 今現在は、都合により0.62が使える状況にないのですが、引続き調査してみま
> す。

私のところではちゃんと透明 (本当に何も見えない状態) になるの
ですが、おかしいですね。

0.5 にすると、0.5 よりは透明度が高く(より薄く) 描画されています。

> 実はCosmoSchedulerDのコントローラをThumbnailに持たせていました。
> それでコントロールしようとマウスホイールを動かすと、
> Thumbnailがスルスルと後ろに逃げて行く…^^;
> # Thumbnailの拡大縮小機能のためです。
> # Frame3Dの機能なんでしょうね。
> Thumbnailにコントローラを持たせると3D空間を動き回るのにちょうど
> よかったので…。
> そんな理由でイベントを取らない方法を探していました。
> 一応コントローラを別に持たせるという解決策は取りました。

アプリのフォーカシングにサムネイルのドラッグは必要かなと思う
のですが、ホイールはなんか無駄のような気がしてきました。

というのも、今のインプリだとホイール回してもサムネイルがポコ
ポコはねるだけだからです。

これがバグなのか、仕様なのかいまいち分からない ^^;;

それにしてもサムネイルに関わらず、デフォルトのイベント処理を
切り離すことができるといいですね。

私も Zoetrope でホイールによる拡大縮小をさせたくなくて、ComponentMover
を書き直していたのですが、0.62 ではその手が使えなくなってし
まいました。なにかいい方法ないですかね。

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yoshifumi Maeda

前田です。

> こんにちは、前田さん。さくらばです。
早速の返信ありがとうございます。

> 私のところではちゃんと透明 (本当に何も見えない状態) になるの
> ですが、おかしいですね。
>
> 0.5 にすると、0.5 よりは透明度が高く(より薄く) 描画されています。
ちゃんと透明になるんですか…。うーん。
僕の環境がいけないのでしょうか…。
ちょっと話がそれるのですが、
setTranslationを行った後にsetAnimation()をすると、先に行ったはずの
setTranslationがキャンセルされました。
順番を逆にすると何も問題はないのですが…。
setScaleなどの「set」メソッドでも同様の結果です。

まぁ、まだ安定版ではないのでバグかどうかはよくわかりませんね。
# ↑実装を後回しにしているだけ、というのかな

> アプリのフォーカシングにサムネイルのドラッグは必要かなと思う
> のですが、ホイールはなんか無駄のような気がしてきました。
>
> というのも、今のインプリだとホイール回してもサムネイルがポコ
> ポコはねるだけだからです。
そうですねw
最初、はねるアニメーションが実装されたのかと勘違いしてしまいました。

> これがバグなのか、仕様なのかいまいち分からない ^^;;
>
> それにしてもサムネイルに関わらず、デフォルトのイベント処理を
> 切り離すことができるといいですね。
そう思います。
Frame3Dへのフォーカスによって透明度が変わる、というイベント処理を変え
たいと思いました。
0.62になってかなりソースがすっきりしたのですが、そこらへんの変更も自由
にできるようになると更に良くなりそうですね。

--------
九州工業大学大学院 情報工学研究科 小出研究室
前田 良史 (Yoshifumi Maeda)
E-mail: fumi@mickey.ai.kyutech.ac.jp

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yuichi SAKURABA

こんにちは、前田さん。さくらばです。

On Mon, 28 Mar 2005 21:07:07 +0900 (JST)
Yoshifumi Maeda wrote:
> > 私のところではちゃんと透明 (本当に何も見えない状態) になるの
> > ですが、おかしいですね。
> >
> > 0.5 にすると、0.5 よりは透明度が高く(より薄く) 描画されています。
> ちゃんと透明になるんですか…。うーん。
> 僕の環境がいけないのでしょうか…。

どうやら、Windows と Linux で挙動が違うようです。
Windows ではちゃんと透明になりますが、Linux ではダメです。
ということは、ちゃんとソースを見ているわけではないのですが、
Java3D のバグかもしれません。

これは本家の ML に投げたほうがいいかもしれません。

> ちょっと話がそれるのですが、
> setTranslationを行った後にsetAnimation()をすると、先に行ったはずの
> setTranslationがキャンセルされました。
> 順番を逆にすると何も問題はないのですが…。
> setScaleなどの「set」メソッドでも同様の結果です。

もしかしたら、これも Java3D のバグかもしれません。

> > それにしてもサムネイルに関わらず、デフォルトのイベント処理を
> > 切り離すことができるといいですね。
> そう思います。
> Frame3Dへのフォーカスによって透明度が変わる、というイベント処理を変え
> たいと思いました。
> 0.62になってかなりソースがすっきりしたのですが、そこらへんの変更も自由
> にできるようになると更に良くなりそうですね。

これも本家でリクエストしたほうがいいと思います。

# 英語が苦手な私がいっても全然説得力はないのですが ^^;;

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Hirano Kazunari

SAKURABA さん、

>これは本家の ML に投げたほうがいいかもしれません。
>
>
この「本家のML」というのは具体的にいうと、どのMLですか?
Cheers,
khirano

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yuichi SAKURABA

こんにちは、平野さん。さくらばです。

On Tue, 29 Mar 2005 09:32:21 +0900
Hirano Kazunari wrote:
> >これは本家の ML に投げたほうがいいかもしれません。
> >
> >
> この「本家のML」というのは具体的にいうと、どのMLですか?

すいません、言葉足らずで。interest@lg3d.dev.java.net の方です。

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Hirano Kazunari

SAKURABA さん、

> interest@lg3d.dev.java.net の方です。
了解。
:)

前田さん、

英語を用意したら、
interest@lg3d.dev.java.net
に投げていただけますか?
:)

その前に以下確認させてください。

Subjectは「透明度の問題」でいいでしょうか。
(透明度は、Java3D的英語でいうと、なんていうの?)

1. Java3D のバグかもしれない点
a. Windows と Linux で挙動が違う。Windows ではちゃんと透明になるが、
Linux ではダメ。
b. setTranslationを行った後にsetAnimation()をすると、先に行ったはずの
setTranslationがキャンセルされる。順番を逆にすると何も問題はない。
setScaleなどの「set」メソッドでも同様の結果。

2. リクエスト
サムネイルに関わらず、デフォルトのイベント処理を切り離すことができるとい
い。Frame3Dへのフォーカスによって透明度が変わる、というイベント処理を変
えたい。

以上、間違いありませんか?
khirano

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yoshifumi Maeda

櫻庭さん、平野さん

こんにちは。前田です。

了解しました。
不具合とリクエストを本家の方に投げてみることにします。
英語でメールを書いたことないので、いい経験になりますね。
がんばります。

平野さん、
まとめて頂いた内容で問題ありません。
ありがとうございます。

今出張中ですので、対応が遅れる可能性があります。
どうぞよろしくお願いします。

> SAKURABA さん、
>
> > interest@lg3d.dev.java.net の方です。
> 了解。
> :)
>
> 前田さん、
>
> 英語を用意したら、
> interest@lg3d.dev.java.net
> に投げていただけますか?
> :)
>
> その前に以下確認させてください。
>
> Subjectは「透明度の問題」でいいでしょうか。
> (透明度は、Java3D的英語でいうと、なんていうの?)
>
> 1. Java3D のバグかもしれない点
> a. Windows と Linux で挙動が違う。Windows ではちゃんと透明になるが、
> Linux ではダメ。
> b. setTranslationを行った後にsetAnimation()をすると、先に行ったはずの
> setTranslationがキャンセルされる。順番を逆にすると何も問題はない。
> setScaleなどの「set」メソッドでも同様の結果。
>
> 2. リクエスト
> サムネイルに関わらず、デフォルトのイベント処理を切り離すことができるとい
> い。Frame3Dへのフォーカスによって透明度が変わる、というイベント処理を変
> えたい。
>
> 以上、間違いありませんか?
> khirano
>

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Hirano Kazunari

前田さん、

> 了解しました。
> 不具合とリクエストを本家の方に投げてみることにします。
> 英語でメールを書いたことないので、いい経験になりますね。
> がんばります。

すでにご案内かと思いますが、風間さんから次のコメントをいただいています。
----------------------------
Java3Dより,グラフィックスドライバのバグの可能性が高いかも.どのカード
に,どのバージョンのドライバを使っているかという情報も必要でしょう.
----------------------------
カードおよびドライバ情報も追加されると良いかと思います。

> 今出張中ですので、対応が遅れる可能性があります。
> どうぞよろしくお願いします。

前田さん、ご自分で英語メール書けそうですね。
がんばってください。
:)
khirano

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yuichi SAKURABA

こんにちは、さくらばです。

On Wed, 23 Mar 2005 09:52:32 +0900
Yuichi SAKURABA wrote:
> ■ コンポーネントのサイズが Size から SizeHint へ
>
> 0.61
> comp.getWidth();
> comp.getHeight();
> comp.getDepth();
>
> 0.62
> Vector3f v = new Vector3f();
> v = comp.getSizeHint(v);
> v.x // width
> v.y // height
> v.h // depth
>
> サイズを設定するときは
> Component3D#setSizeHint(Vector3f)

イベントは addListener を使うなど、AWT/Swing スタイルのプロ
グラミングに近づいていますよね。

とすると、ここも SizeHint よりは PreferredSize の方がいいので
はないでしょうか。

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

hideya
Offline
Joined: 2003-07-22
Points: 0

Sakuraba-san,

> イベントは addListener を使うなど、AWT/Swing スタイルのプロ
> グラミングに近づいていますよね。

Yep. Actually, it used to be close to the AWT/Swing style. I had to move away from it for some long reason... (as you might have read it in the English forum)

> とすると、ここも SizeHint よりは PreferredSize の方がいいので
> はないでしょうか。

Thanks for the nice comment (and posting it to the English forum too). It is recorded. Let's see what the other community members think...

hideya

hideya
Offline
Joined: 2003-07-22
Points: 0

Endo-san, Sakuraba-san,

Thank you again for porting your apps to the 0.62 API and giving me your feedback (even at the English forum).

I have one suggestion to your apps. It looks like your apps have a fixed size, which can be too large based on user's environment. You can get the screen size (the LG3D window size in the dev mode) by using [code]Frame3D#getScreenWidth/Hight()[/code]
I thought it would look nicer if you adjust the size based on the screen size.

hideya

yasuyuki@javaopen.org

えんどうです。

> [code]Frame3D#getScreenWidth/Hight()[/code]

どうもありがとうございます。

これを使うように変更して dev-0-6-2 ブランチにコミットしました。

--
ENDO Yasuyuki
http://www.javaopen.org/~yasuyuki/
http://www.javaopen.org/jfriends/

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

Yuichi SAKURABA

こんにちは、さくらばです。

On Sat, 19 Mar 2005 01:56:14 EST
interest_ja@javadesktop.org wrote:
> ようやっと,0.62ブランチができました:

自分のメモ用に 0.62 へのポーティングガイドを作りました。

--------------------------------------------------------------
■ フレームの初期化の変更

0.61
frame.setCapabilities();
frame.setActive(true);
frame.setVisible(true);
0.62
frame.changeEnabled(true);
frame.changeVisible(true);

終了時は
frame.changeEnabled(flase);

■ コンポーネントのサイズが Size から SizeHint へ

0.61
comp.getWidth();
comp.getHeight();
comp.getDepth();

0.62
Vector3f v = new Vector3f();
v = comp.getSizeHint(v);
v.x // width
v.y // height
v.h // depth

サイズを設定するときは
Component3D#setSizeHint(Vector3f)

■ フレームの移動/ゆれ、フォーカス時のハイライト/サイズ変更
Frame3D がデフォルトの機能として持つ -> ComponentMover などが不要に

0.61
new ComponentMover(frame);
new MouseEnteredEventAdapter(frame,
new ActionBoolean() {
public void performAction(LgEventSource source,
boolean flag) {
frame.requestHighlight(flag);
}
});

frame.setRotationAxis(0.0f, 1.0f, 0.0f);
new MouseDraggedEventAdapter(frame,
new Float2Splitter(
new FloatDiffer(
new FloatScaler(500f, (float)Math.toRadians(30),
new ResilientRotateAction(frame, 1500))),
null));

new MouseClickedEventAdapter(frame,
new GenericEventPostAction(Frame3DToFrontEvent.class, frame));

0.62
不要

■ イベントには addListener を使用する
今までより格段に分かりやすくなる

0.61
new MouseClickedEventAdapter(component,
new ActionNoArg() {
public void performAction(LgEventSource source) {
frame.changeActive(false);
}
});

0.62
component.addListener(
new MouseClickedEventAdapter(
new ActionNoArg() {
public void performAction(LgEventSource source) {
frame.changeEnabled(false);
}
}));

0.61
new MouseEnteredEventAdapter(component,
new ScaleAction(component, 1.2f, 100));

0.62
component.addListener(
new MouseEnteredEventAdapter(
new ScaleActionBoolean(component, 1.2f, 100)));

■ MouseWheelEventAdapter のコンストラクタの引数が変更
ActionFloat3 から ActionInt へ

0.61
new MouseWheelEventAdapter(
component,
new ActionFloat3() {
public void performAction(LgEventSource source, float x, float y, float z) {
// ホイールの回転数は z に入る
...
}
});

0.62
component.addListener(
new MouseWheelEventAdapter(
new ActionInt() {
public void performAction(LgEventSource source, int value) {
...
}
}));

â–  ScaleAction -> ScaleActionBoolean/ScaleActionFloat
â–  RotateAction -> RotateActionBoolean/RotateActionFloat
今までいっしょだったものを、別々のクラスに変更

0.61
new MouseEnteredEventAdapter(component,
new ScaleAction(component, 1.2f, 100));

0.62
component.addListener(
new MouseEnteredEventAdapter(
new ScaleActionBoolean(component, 1.2f, 100)));

■ 描画後にシーングラフにコンポーネントを追加する時
Component3D#setCapabilities() が不要に

0.61
comp.setCapabilities();
container.addChild(comp);

0.62
cintainer.addChild(comp);

■ ScaleChanger/RotationChanger/ColorAlphaChanger/TranslationChanger の機能が Component3D に含まれる

0.61
ScaleChanger changer = new ScaleChanger(comp, new NaturalFloatSmoother(1L));
changer.changeTo(1.0f);

0.62
comp.changeScale(1.0f);

参考
Component3D#setXXXX はアニメーションなしで、すぐに変更が反映される
Component3D#changeXXXX はアニメーションありで、変更は duration による

■ NaturalMotionComponent3D クラスは Component3D#setAnimation で代用

0.61
public class XXXComponent extends NaturalMotionComponent3D {
...
}

0.62
component.setAnimation(new NaturalMotionAnimation(500));

■ サムネイル
デフォルトで GlassyPanel のサムネイルが表示される
自分でサムネイルを作成する場合は Thumbnail クラスを派生させる

0.61
public class MyThumbnail extends Component3D {
...
}

frame.setThumbnail(new MyThumbnail());

0.62
public class MyThumbnail extends Thumbnail {
...
}

frame.setThumbnail(new MyThumbnail());

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

hideya
Offline
Joined: 2003-07-22
Points: 0

Hi さくらば-san,

> 自分のメモ用に 0.62 へのポーティングガイドを作りました。

Looks great! Thanks for sharing the info.
Here are a few comments from me...

When writing down code, you may want to surround it with [code ] and [/code ] (without putting a space between "code" and "]". I couldn't find how to escape it properly...) In that way, you can preserve indentations, make the font mono-space, highlight keywords, etc., like:
[code]
component.addListener(
new MouseEnteredEventAdapter(
new ScaleActionBoolean(component, 1.2f, 100)));
[/code]
> 0.62
> Vector3f v = new Vector3f();
> v = comp.getSizeHint(v);
> v.x // width
> v.y // height
> v.h // depth

Very minor, but the last line should be "v.z;"?

> ■ ScaleChanger/RotationChanger/ColorAlphaChanger/TranslationChanger の機能が Component3D に含まれる

This is a good one, which I haven't covered in the Porting to 0.62 Wiki.

> 0.61
> ScaleChanger changer = new ScaleChanger(comp, new NaturalFloatSmoother(1L));
> changer.changeTo(1.0f);
>
> 0.62
>>> comp.setAnimation(new NaturalMotionAnimation(500));
> comp.changeScale(1.0f);

Most of the case, you would need to set animation (NaturalMotionAnimation). Otherwise the 'comp' object performs the default animation, which is no animation.

Would you want to add the info to the Porting to 0.62 Wiki page? I think you can just create a new section like "Detailed Comparison between 0.61 and 0.62" before the "Trouble Shooting and Q&A" section, and put everything as they are. Some of them overwrap with the trouble shooting section, but it is totally fine. What do you think?

hideya

Yuichi SAKURABA

こんにちは、さくらばです。

On Tue, 22 Mar 2005 21:17:33 EST
interest_ja@javadesktop.org wrote:
> When writing down code, you may want to surround it with [code ] and [/code ] (without putting a space between "code" and "]". I couldn't find how to escape it properly...) In that way, you can preserve indentations, make the font mono-space, highlight keywords, etc., like:
> [code]
> component.addListener(
> new MouseEnteredEventAdapter(
> new ScaleActionBoolean(component, 1.2f, 100)));
> [/code]

[code] などの使い方を書いたページってあるのでしょうか?
Help には [b] と [i] しか書いてないのです。

> > 0.62
> > Vector3f v = new Vector3f();
> > v = comp.getSizeHint(v);
> > v.x // width
> > v.y // height
> > v.h // depth
>
> Very minor, but the last line should be "v.z;"?

こんなところに間違いが ^^;; もちろん、v.z です。

> Would you want to add the info to the Porting to 0.62 Wiki page?
> I think you can just create a new section like "Detailed Comparison
> between 0.61 and 0.62" before the "Trouble Shooting and Q&A" section,
> and put everything as they are. Some of them overwrap with the
> trouble shooting section, but it is totally fine. What do you think?

とりあえず、英訳して lg3d-interest@javadesktop.org に投げる
ので、wiki に反映させるかどうかはそこで議論したいのですが。

私がいきなり wiki を更新して、裏で日本人だけで決めたとかんぐ
られたりするのもいやなので。

ただ、すぐに英訳ができるかどうかは ??????? ^^;;

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

hideya
Offline
Joined: 2003-07-22
Points: 0

[code]> >
> > component.addListener(
> > new MouseEnteredEventAdapter(
> > new ScaleActionBoolean(component, 1.2f, 100)));
> >
> >[/code]
> などの使い方を書いたページってあるのでしょうか?

I couldn't find any. One of the community member figured it out. He says he saw it in the posting test area and asked the guy who did it...
I searched web for some info, but I couldn't find a good one...

> Help には と しか書いてないのです。

Looks like you've hit some escape sequence. The font became bold from the middle of the above line. I wonder what you typed... ;-)

> とりあえず、英訳して lg3d-interest@javadesktop.org に投げる
> ので、wiki に反映させるかどうかはそこで議論したいのですが。
>
> 私がいきなり wiki を更新して、裏で日本人だけで決めたとかんぐ
> られたりするのもいやなので。

OK, sounds good!

> ただ、すぐに英訳ができるかどうかは ??????? ^^;;

I already saw your post! ;-)

Thank you!
hideya

えんどう

 えんどうです。

>ようやっと,0.62ブランチができました:
>
>http://www.javadesktop.org/forums/thread.jspa?threadID=9637&tstart=0
>(注:incubatorはコンパイルできません.Xインテグレーションにはまだ不具合があります)
>
>「0.61から0.62へのポーティング」のWikiもはじめました:
>
>http://wiki.java.net/bin/view/Javadesktop/PortingTo062
>(注:これからポイントされている0.62のJavadocはほんの少し古いです.dev-0-6-2ブランチをもってきて,ant javadocしてrelease/lg3d/docs/javadoc/api/を見てください).
>
>そこでお願いがあります.もしお手元に開発中の0.61のコードがありましたら,0.62へのポートをしてみてください(既に0.61でかなり書いてしまっている方(特に櫻庭さん),API変わってしまって申し訳ないです).そして,新しいAPIのご意見をいただければうれしいです.特に,使い方がTrickyでBugの温床になると思われる箇所,API間の一貫性の欠如,クラス/メソッド名のスペルミスなど,お気づきの点をお教えいただけないでしょうか(フォーラムでポストしてください.英語フォーラムならなお可).

ls3d を移植してみました。

http://www.javaopen.org/~yasuyuki/diary/?20050321#200503211

addListner が使えるのがシンプルで分かりやすいです。

0.61ではZ軸方向のズーム効果で少しトリッキーなことをやっていたのですが、
0.62では top.changeTranslation(newLoc, ZOOM_DURATION);
で簡単に移動できるのが良いと思います。

--
ENDO Yasuyuki
http://www.javaopen.org/~yasuyuki/
http://www.javaopen.org/jfriends/

---------------------------------------------------------------------
To unsubscribe, e-mail: interest_ja-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest_ja-help@lg3d.dev.java.net

hideya
Offline
Joined: 2003-07-22
Points: 0

> ls3d を移植してみました。

Thanks for porting and putting it back to the dev-0-6-2 branch, Endo-san!

> addListner が使えるのがシンプルで分かりやすいです。
>
> 0.61ではZ軸方向のズーム効果で少しトリッキーなことをやっていたのですが、
> 0.62では top.changeTranslation(newLoc, ZOOM_DURATION);
> で簡単に移動できるのが良いと思います。

I'm glad to see these comments from you! Please don't hesitate to let us know if you find anything doesn't look good ;-)

Thanks,
hideya

dai
Offline
Joined: 2004-11-03
Points: 0

こんにちは、おだはらです。

> そこでお願いがあります.もしお手元に開発中の0.61のコードがありましたら,0.62へのポートをしてみてくだ
> さい(既に0.61でかなり書いてしまっている方(特に櫻庭さん),API変わってしまって申し訳ないです).そし
> て,新しいAPIのご意見をいただければうれしいです.特に,使い方がTrickyでBugの温床になると思われる
> 箇所,API間の一貫性の欠如,クラス/メソッド名のスペルミスなど,お気づきの点をお教えいただけないでしょうか
> (フォーラムでポストしてください.英語フォーラムならなお可).
>
> 一週間以内くらいであればご意見を反映できる可能性があります.ドキュメントも不完全で申し訳ないのですが,フィー
> ドバックをいただければ幸いです.どうぞよろしくお願いいたします.

移植作業ですね。了解しました。(コンパイルまでなら・・・向こうに戻るの 3/23 :( :( )

でもできるかぎり協力いたします。

I'll tell ya.

hideya
Offline
Joined: 2003-07-22
Points: 0

おだはらさん,

> 移植作業ですね。

そうです,移植です.なぁんで「ポート」なんて書いちゃったんだろ.
最近,英語に加え,日本語も不自由です.マジで,コーディングしすぎると,私,喋れなくなります.みなさんそんなことって無いです? これって私の頭ん中どっかおかしいのでしょうか?

> 了解しました。

どうもありがとうぅぅぅ!

> (コンパイルまでなら・・・向こうに戻るの 3/23 )

一応,今月末までIncubatorの移植の期間にはとってあるのですが,さすがにAPIの変更は期間後半にはできないな,と.それでも,もし問題を発見したら言ってください.程度によっては移植期間を延ばしてでも修正します.よろしくお願いしますっ!

ひでや