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 소스를 보면 장면 활성화 후 발생하는 인터랙터가 생성될 때 조명 관리자가 장면에 추가됩니다.게다가 제가 가장 먼저 시도한 것은 음악을 듣는 것이었습니다. 'scene:light_manager' 라이트 매니저가 작동하지 않습니다. Property 직접적으로 변하지 않는 특성.즉, 속성에서 참조하는 객체 자체를 수신하면 생성 시 알림이 트리거됩니다.즉, 다음을 수행합니다.

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