mlabscenemodelのlight_managerが設定されていないのはなぜですか?

StackOverflow https://stackoverflow.com//questions/20034515

  •  21-12-2019
  •  | 
  •  

質問

Traitsuiで3D視覚化のためにMayaviを使用しています。sceneはMlabSceneModel型の形質です。照明を変更し、scene.light_managerイベントで呼び出された関数でactivatedにアクセスしようとします。ただし、scene.light_managerは常にNoneです。

mlab.figure()を使用してライトマネージャを持つシーンを作成しますが、シーンをUIに統合したいと思うように、これは私にとってオプションはありません。

役に立ちましたか?

解決

最初のループを投げた良い質問。

TVTKソースを見ると、インタラクタが生成されたときにライトマネージャがシーンに追加されます。これはシーンの起動後に発生します。さらに、Light Managerが直接変更されない'scene:light_manager'の特徴であるため、最初に試したことはうまくいきませんでした。そうは、プロパティによって参照されるオブジェクト自体をリッスンすると、作成時の通知がトリガーされます。言い換えれば、これを行う:

class Application(HasTraits):
  scene=Instance(MlabSceneModel,())

  ...

  @on_trait_change('scene:scene_editor:light_manager')
  def muck_with_the_lights(self):
    print self.scene.light_manager
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top