2013-07-23 4 views
1

현재 ILPlotCube 객체를 사용하여 사용자 데이터에서 생성 된 표면을 표시하고 컨텍스트 메뉴를 만들고 옵션을 추가하여 색상 표, 조명 등의 일부 플롯 설정을 변경했습니다 내가 겪고있는 문제는 변경이 이루어지면 음모 그래픽이 자동으로 업데이트된다는 것입니다. 추가 된 조명을 업데이트하거나 colourmap을 변경하는 유일한 방법은 줄거리 개체에서 많은 마우스 이벤트 중 하나를 호출하는 것입니다. 나는 ILPlotCube, ILSurface 및 ILScene 클래스를 검색했으며이를 수행하는 것으로 보이는 기능을 찾을 수 없습니다. 원래 ILPlotCube 클래스의 Reset() 메소드는 필요한 것은 수행하지만 실제로는 그렇지 않다고 생각했습니다. 그래픽 및 잠재적 솔루션의 업데이트에 대해 더 많은 정보가 있습니까?ILNumerics 표면 그래픽 업데이트

+0

오, 난 비주얼 스튜디오에서 WPF 프로젝트에서 ILNumerics 3.2.0 및 C#을 사용하고 2012 – Ash

+0

수 몇 가지 코드를 게시 하시겠습니까? –

+0

http://pastebin.com/nYqUv66C http://pastebin.com/9U5Pb033 여기 @HaymoKutschbach는 특정 설정을 변경 한 후 플롯을 업데이트하는 두 가지 방법입니다. 두 메서드는 Mouse 이벤트 핸들러에서 호출되며 두 커서 모두 플롯 위로 커서를 이동하고 회전하고 확대/축소 할 때 변경된 내용 만 업데이트합니다. – Ash

답변

1

ILNumerics의 노드에 대한 마우스 이벤트는 ILMouseEventArgs의 인수를 제공합니다. 이 유형은 Refresh 속성을 제공합니다. 마우스 이벤트 핸들러에서이 값을 true로 설정하십시오.

void iILNode_MouseClick(object sender, ILMouseEventArgs e) { 
    if (e.DirectionUp) { 
     //modify scene here 
     // .. 
     // trigger redraw of the scene 
     e.Refresh = true; 
    } 
} 

마우스 이벤트 처리에 대한 문서 : 그것은 모든 이벤트가 처리 된 후 다시 그리기 트리거 http://ilnumerics.net/mouse-events.html

+0

감사하지만이 방법은 이벤트가 설정된 방식으로는 효과가 없습니다 쪽으로; 초기 ILMouseEvent는 컨텍스트 메뉴를 가져오고 컨텍스트 메뉴 항목의 선택은 시스템 마우스 이벤트를 호출합니다. 그러나이 문제는 단순히 ILPanel 호스트에서 Refresh()를 호출하여 해결되었습니다. – Ash