|
|
Nan
|
public class NanMagnifier : NanObj
The NanMagnifier type exposes the following members.
| Name | Description | |
|---|---|---|
| NanMagnifier | NanMagnifier 클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다. |
| Name | Description | |
|---|---|---|
| CalcRange | 객체의 최소, 최대 범위를 계산한다. (Overrides NanObjCalcRange) | |
| Clone | 객체를 복사한다. (Overrides NanObjClone) | |
| GetGuideLineType | 연결선 옵션을 가져온다. | |
| Set | 확대영역 이미지의 영역을 설정한다. | |
| SetBackColor |
Background 색을 설정한다.
(Overrides NanObjSetBackColor(Color)) | |
| SetForeColor |
Foreground 색을 설정한다.
(Overrides NanObjSetForeColor(Color)) | |
| SetGuideLineType | 연결선 옵션을 설정한다. | |
| SetLineColor |
선 색을 설정한다.
(Overrides NanObjSetLineColor(Color)) | |
| SetLineStyle |
선 스타일을 설정한다.
(Overrides NanObjSetLineStyle(eLineStyle, DoubleCollection)) | |
| SetLineThick |
선 두께를 설정한다.
(Overrides NanObjSetLineThick(Double)) | |
| SetMagnifiedImage | 정의된 delegate 함수에서 BitmapImage를 가져와서 확대주기의 이미지로 셋팅한다. | |
| SetMagnifiedImageDelegate | 확대영역을 가져오기 위한 delegate 함수를 설정한다. | |
| SetThickUnit |
도형의 선 굵기 단위(world 좌표 단위)를 설정한다.
(Overrides NanObjSetThickUnit(Boolean, Double, Double)) | |
| ToObjectString | 객체 class 이름을 가져온다. |
| Name | Description | |
|---|---|---|
| BitmapName | 확대주기의 이미지 객체 이름을 정의 | |
| HitFlagBitmapInsideIndex | 이미지 객체 내부 hitting시 설정하기 위한 hit flag index | |
| HitFlagOffset |
hitting 된 이미지 객체와 사각 영역 객체를 구분하기 위한 XHitFlag.Index Offset XHitFlag.Index가 0~9이면 이미지 객체, 10~19이면 사각 영역 객체가 hitting 되었음을 의미 | |
| HitFlagRectangleInsideIndex | 사각 영역 내부 hitting시 설정하기 위한 hit flag index | |
| Line1Name | 확대주기의 첫번째 가이드 라인 객체 이름을 정의 | |
| Line2Name | 확대주기의 두번째 가이드 라인 객체 이름을 정의 | |
| RectangleName | 확대주기의 사각 영역 객체 이름을 정의 |
OpenFileDialog openfileDlg = new OpenFileDialog(); openfileDlg.Filter = "NVMZ|*.nvmz|벡터파일 포맷|*.nvmz"; openfileDlg.RestoreDirectory = true; if (openfileDlg.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; string strError = string.Empty; string strFileName = openfileDlg.FileName; NanBase tempBase = NCanvasFileIO.LoadCanvasVector(strFileName, ref strError); NanLayer layer = tempBase[0]; tempBase.RemoveLayer(0); layer.CalcRange(); NEditor curCanvas = GetCurrentCanvasView(); double minx = 0; double maxx = 0; double miny = 0; double maxy = 0; if (curCanvas.Composite != null) { curCanvas.Composite.GetBoundRect(ref minx, ref maxx, ref miny, ref maxy); } else { minx = 0; maxx = curCanvas.CanvasWidth; miny = 0; maxy = curCanvas.CanvasHeight; } double sfx0, sfx1, sfy0, sfy1; sfx0 = sfx1 = sfy0 = sfy1 = 0; Xfn.GetScaleFactor(layer.Minx, layer.Maxx, minx, maxx, ref sfx0, ref sfx1); Xfn.GetScaleFactor(layer.Miny, layer.Maxy, miny, maxy, ref sfy0, ref sfy1); layer.Normalize(sfx0, sfx1, sfy0, sfy1); curCanvas.EditLayer.RemoveObjAll(); for (int i = layer.Count - 1; i >= 0; i--) { NanObj obj = layer[i]; layer.RemoveObj(i); curCanvas.EditLayer.AddHead(obj); if (obj.Type == eAnnType.Magnifier) { ((NanMagnifier) obj).SetMagnifiedImageDelegate(curCanvas.GetMagnifiedImage); ((NanMagnifier) obj).SetMagnifiedImage(); // delegate 함수를 이용해서 확대영역 이미지를 설정한다. } } curCanvas.EditLayer.CalcRange(); curCanvas.UpdateVector(); curCanvas.ZoomFit();