주메뉴 바로가기 본문 바로가기 하단 바로가기

고객지원

기술문의

맵의 Overview에서의 Interactor....

  • 박기형
  • 2003.06.25
  • 조회수 1,806
Ilog로 맵을 구현중에 있습니다.
맵에서 Overview를 생성하면...
Overview에서 Interactor의 위치를 바꾸거나 크기를 조정하면..
Main 화면에 반영되고 하는데...

위의 내용은 아무런 문제가 없었습니다.
그런데 제가 추가하고자 하는 기능이...
다른 화면에서 어떤 특정한 메쏘드를 콜하였을때..
Interactor를 특정위치에 특정 크기로 위치 시키는 기능입니다.

public class OverView extends IlvManagerView {
IlvManagerMagViewInteractor interactor;
public OverView(IlvManagerView target, boolean resize) {
super(target.getManager(), null);
setDefaultGhostColor(Color.blue);
setDefaultXORColor(Color.white);
setBackground(Color.white);
setAutoFitToContents(true);
setVisible(getManager().getLayersCount(), false);
interactor = new IlvManagerMagViewInteractor(target, true);
interactor.setResizingAllowed(resize);
interactor.setDrawingStyle(IlvManagerMagViewInteractor.Wire);

//**
이곳!
**//

pushInteractor(interactor);
}
}

"이곳!"에다가...
1.
IlvRect p0 = new IlvRect(100,100,100,100);
interactor.setRectangle(p0,false);
2.
if(resize) {
target.translate(100,100,false);
}

위의 두가지를 해봤는데...
1.의경우는 아무런 변화가 없고, 2.의 경우는 interactor를 옮기는게 아니라
메인 맵의 좌표축을 옮겨 버리더군요.. 변화는 물론 생겼구요.

2.의 경우는 직전 위치에서 상대적으로 옮겨지는거라 일정한 규칙을 가지고
interactor의 위치를 정하기엔 무리가 있는듯 해서...

1.의경우를 어떻게든 효과가 나오게 만들어야 될거 같은데....
혹시 다른 메쏘드가 있거나... 제가 뭘 잘못하고 있는지
답변부탁드립니다.

댓글 2

  • LechuckRoh2003-06-26
    전화로 답변을 해드렸지만 혹시 다른분들을 위해서 답변을 하자면

    아래글에 써놓은대로 IlvManagerView에서는 IlvTransformer 클래스가
    화면의 확대배율,좌표축 이동을 담당하게 됩니다.

    IlvTransformer 클래스의 API 레퍼런스를 보면 3*3 행렬식이 보이는데
    여기의 x0, y0가 좌표축의 이동을 담당하는 파라미터입니다.

    이값을 변경해서 IlvTransformer를 만든다음 IlvManager.setTransformer()를
    이용해서 설정하면 됩니다..
    아이콘삭제
  • LechuckRoh2003-06-26
    전화로 답변을 해드렸지만 혹시 다른분들을 위해서 답변을 하자면

    아래글에 써놓은대로 IlvManagerView에서는 IlvTransformer 클래스가
    화면의 확대배율,좌표축 이동을 담당하게 됩니다.

    IlvTransformer 클래스의 API 레퍼런스를 보면 3*3 행렬식이 보이는데
    여기의 x0, y0가 좌표축의 이동을 담당하는 파라미터입니다.

    이값을 변경해서 IlvTransformer를 만든다음 IlvManager.setTransformer()를
    이용해서 설정하면 됩니다..
    아이콘삭제

댓글 입력