MlabSceneModel의 light_manager가 설정되지 않는 이유는 무엇입니까?
문제
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
제휴하지 않습니다 StackOverflow