XDL Manual

XDL PlanetView È°¿ë ¼¼¹ø°

(piXoneer XDL Tutorial)

 

 

 

 

 

 

Pixoneer.NXDL.NSCENEÀÇ ´Ù¾çÇÑ scene °´Ã¼¸¦ »ý¼º/ÆíÁý µîÀ» ¾Ë¾Æº¸°í, NXPlanetLayerSceneEditor¿Í NXPlanetLayerSceneDisplay ·¹À̾ ÀÌ¿ëÇÏ¿©

Planet 2D/3D ȯ°æ¿¡¼­ scene °´Ã¼¸¦ ´Ù·ç´Â ¹æ¹ýÀ» ±¸ÇöÇØ º¸µµ·Ï ÇÕ´Ï´Ù

 

2017. 01.

¼öÁ¤ 2019. 02.

 

 

¸ñÂ÷

XDL PlanetView È°¿ë ¼¼¹ø°... 1

1    »ç¿ëÇϱâ... 3

1.1    XDL ¿£Áø... 3

2    NXPlanetView¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¸¸µé±â... 3

2.1    ±âº» ÇÁ·Î±×·¥ ÀÛ¼º... 3

2.2    ÇÁ·Î±×·¥ µðÀÚÀÎ... 5

2.3    ±â´É ¹× À̺¥Æ® Ãß°¡... 8

 

 

 

 

1     »ç¿ëÇϱâ

 

1.1    XDL ¿£Áø

¼³Ä¡ ÇÁ·Î±×·¥À¸·Î ¹èÆ÷µÇ´Â XDL ¿£ÁøÀº Visual Studio 2010 x86 Release ¹öÀüÀ¸·Î, Visual Studio 2010 ÀÌ»óÀÇ ¹öÀü¿¡¼­ »ç¿ë °¡´ÉÇÏ´Ù.

¾Æ·¡ÀÇ ¼³¸íÀº Visual Studio 2010ÀÇ Debug¸¦ ±âÁØÀ¸·Î ÇÏ°Ú´Ù.

2     NXPlanetView¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¸¸µé±â

l  º» ¿¹Á¦ ÇÁ·Î±×·¥Àº Pixoneer.NXDL.NSCENEÀÇ Scene °´Ã¼ »ý¼º ¹× ÆíÁý µîÀ» ¾Ë¾Æº¸°í PlanetView¿¡¼­ÀÇ scene °´Ã¼¸¦ ´Ù·ç´Â NXPlanetLayerSceneDisplay¿Í NXPlanetLayerSceneEditor¸¦ »ìÆ캸µµ·Ï ÇÑ´Ù. PlanetView2D¿¡ NXPlanetLayerSceneEditor¸¦ Ãß°¡ÇÏ°í, PlanetView3D¿¡ NXPlanetLayerSceneDisplay¸¦ Ãß°¡ÇÑ µÚ, PlanetView2D¿¡¼­ Scene °´Ã¼¸¦ Ãß°¡ÇÏ°í ÆíÁýÇÑ µÚ ÆÄÀÏ·Î ÀúÀåÇÏ°í, À̸¦ PlanetView3D¿¡ ·ÎµùÇÏ¿© µµ½ÃÇÏ´Â ±â´ÉÀ» ±¸ÇöÇϵµ·Ï ÇÑ´Ù.

l  NXPlanetLayerSceneEditor´Â PlanetViewÀÇ 2D ¸ðµå¿¡¼­¸¸ »ç¿ë °¡´ÉÇÏ´Ù.

2.1    ±âº» ÇÁ·Î±×·¥ ÀÛ¼º

2.1.1     Visual Studio 2010À» ÀÌ¿ëÇÏ¿© ¿¹Á¦ ¡°XDL_PlanetView2¡±ÀÇ ¡°±âº» ÇÁ·Î±×·¥ ÀÛ¼º¡± ¹æ¹ýÀ» Âü°í·Î ±âº» ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ´Ù.

ÇÁ·ÎÁ§Æ® À̸§Àº ¡°XDL_PlanetView3¡±·Î ÇÑ´Ù.

 

2.1.2     Pixoneer.NXDL.NCC¿Í Pixoneer.NXDL.NCENEÀ» ÀÌ¿ëÇϱâ À§Çؼ­ ¡°NXDLcc.dll¡±, ¡°NXDLscene.dll¡±À» ÇÁ·ÎÁ§Æ®ÀÇ ÂüÁ¶·Î Ãß°¡ÇÑ´Ù.

 

 

2.1.3     Scene °´Ã¼ Ãß°¡/ÆíÁý µî scene °´Ã¼¸¦ ´Ù·ç±â À§Çؼ­ ½ÇÇàÆú´õ¿¡ CC Driver¸¦ º¹»çÇÑ´Ù.

º» ¿¹Á¦ ÇÁ·Î±×·¥Àº XScene °´Ã¼ÀÇ ÁÂÇ¥°è Á¤º¸°¡ ÀÖ´Â XSpatialReference¸¦ ÀÌ¿ëÇϱ⠶§¹®¿¡ À̸¦ À§ÇØ CCDrivers Æú´õ¸¦ ½ÇÇàÆú´õ¿¡ º¹»çÇØ ÁÖ¾î¾ß ÇÑ´Ù.

XDL ¶óÀ̺귯¸®°¡ ¼³Ä¡µÈ °æ·Î(c:\Pixoneer\XDL1.2\bin)·Î À̵¿ÇÏ¿© ¡°CCDrivers¡± Æú´õ¸¦ º¹»çÇÏ¿© º» ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ ½ÇÇà Æú´õ(.\XDL_PlanetView3\bin\Debug\)¿¡ º¹»çÇÏ¿© ³Ö´Â´Ù.

 

 

 

2.2    ÇÁ·Î±×·¥ µðÀÚÀÎ

 

 

¹øÈ£

Name

Control type

¨ç

toolStrip1

ToolStrip

¨è

splitContainter1

SplitContainer

¨é

nxPlanetView2D

NXPlanetView

¨ê

nxPlanetView3D

NXPlanetView

2.2.1     [µµ±¸ »óÀÚ]ÀÇ ¡°ToolStrip¡±¸¦ ¼±ÅÃÇÏ°í Form1¿¡ ²ø¾î´Ù°¡ ³õ´Â´Ù.

 

 

Form1¿¡ toolStrip1ÀÌ Ãß°¡µÈ´Ù. toolStrip1ÀÇ  ¹öÆ°À» Ŭ¸¯ÇÏ¿© ToolStripButtonÀ» Ãß°¡ÇÏ¸ç ¾ÆÀÌÄÜÀÌ Ãß°¡µÈ´Ù.

 

Ãß°¡µÈ ToolStripButtonÀ» ¼±ÅÃÇÑ ÈÄ [¼Ó¼º] â¿¡ DisplayType¸¦ ¡°Text¡±·Î ¼±ÅÃÇÏ°í, Name, Text¸¦ ¼öÁ¤ÇÑ´Ù.

 

 

 

º» ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ ToolStrip ±¸¼ºÀº ¾Æ·¡¿Í °°´Ù.

 

Name

Text

±â´É ¼³¸í

pointToolStripButton

Point

Á¡ °´Ã¼ Ãß°¡

polylineToolStripButton

Polyline

Æú¸®¶óÀÎ °´Ã¼ Ãß°¡

polygonToolStripButton

Polygon

Æú¸®°ï °´Ã¼ Ãß°¡

circleToolStripButton

Circle

¿ø °´Ã¼ Ãß°¡

symbolToolStripButton

Symbol

½Éº¼ °´Ã¼ Ãß°¡

saveToFileToolStripButton

Save to File

Ãß°¡µÈ °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀå

loadFileToolStripButton

Load into 3D View

ÆÄÀÏÀ» ÀÐ¾î °´Ã¼¸¦ Planet 3D ºä¿¡ µµ½Ã

 

2.3    ±â´É ¹× À̺¥Æ® Ãß°¡

2.3.1     Form1ÀÇ »ý¼ºÀÚ¿¡ NXPlanetSceneDisplay nxSceneLayerDisplay, NXPlanetSceneEditor nxSceneLayerEditor¸¦ »ý¼ºÇÑ´Ù.

µÎ ¸â¹öº¯¼ö´Â Form1.Designer.cs¿¡ Ãß°¡Çϵµ·Ï ÇÏ°Ú´Ù. ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

 

// Form1.Designer.cs
¡¦
private System.Windows.Forms.SplitContainer splitContainer1;
private Pixoneer.NXDL.NXPlanet.NXPlanetView nxPlanetView2D;
private Pixoneer.NXDL.NXPlanet.NXPlanetView nxPlanetView3D;
private Pixoneer.NXDL.NSCENE.NXPlanetLayerSceneEditor  nxSceneLayerEditor;
private Pixoneer.NXDL.NSCENE.NXPlanetLayerSceneDisplay nxSceneLayerDisplay;

 

// Form1.cs

using Pixoneer.NXDL;
using Pixoneer.NXDL.NSCENE;

namespace XDL_PlanetView3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            nxSceneLayerDisplay = new NXPlanetLayerSceneDisplay();
            nxSceneLayerEditor = new NXPlanetLayerSceneEditor();

¡¦

2.3.2     Form1ÀÇ Load À̺¥Æ® ÇÔ¼ö¿¡¼­ nxSceneLayerDisplay¿Í nxSceneLayerEditor¸¦ nxPlanetView2D¿Í nxPlanetView3D¿¡ °¢°¢ Ãß°¡ÇÏ°í Ä«¸Þ¶ó¸¦ ¼³Á¤ÇÑ´Ù. º» ¿¹Á¦¿¡¼­´Â nxPlanetView2DÀÇ RotatableÀº false·Î, ShowGridµµ false·Î ¼³Á¤ÇÑ´Ù.

 

private void Form1_Load(object sender, EventArgs e)
{
    nxSceneLayerEditor.AttachTo(nxPlanetView2D);
    nxSceneLayerDisplay.AttachTo(nxPlanetView3D);

    XGeoPoint gpEye = XGeoPoint.FromDegree(127.4, 38.0, 1500000);
    // Planet2D ¸ðµåÀÇ camera À§Ä¡ ¼³Á¤
    nxPlanetView2D.SetCameraPosition(gpEye, XAngle.FromDegree(0.0));
    // Planet3D ¸ðµåÀÇ camera À§Ä¡ ¼³Á¤
    nxPlanetView3D.SetCameraPosition(gpEye, XAngle.FromDegree(0.0),
 XAngle.FromDegree(-90.0), XAngle.FromDegree(0.0));

    nxPlanetView2D.Rotatable = false;
    nxPlanetView2D.ShowGrid = false;

    nxPlanetView2D.RefreshScreen();
    nxPlanetView3D.RefreshScreen();
}

2.3.3     Form1ÀÇ Closed À̺¥Æ®(FormClosed) ÇÔ¼ö¸¦ »ý¼ºÇÏ¿© scene °´Ã¼ ¸Þ¸ð¸® ÇØÁö¸¦ À§ÇØ Äڵ带 Ãß°¡ÇÑ´Ù.

 

 

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
    Xfn.Close();
}

 

2.3.4     Scene °´Ã¼¸¦ Ãß°¡Çϱâ À§ÇÑ ToolStripButtonÀÎ pointToolStripButton, polylineToolStripButton, polygonToolStripButton, circleToolStripButton, symbolToolStripButtonÀ» ¼±ÅÃÇÑ µÚ °¢°¢ ´õºí Ŭ¸¯ÇÏ¿© Click À̺¥Æ® ÇÔ¼ö¸¦ Ãß°¡ÇÑ´Ù.

pointToolStripButtonÀÇ °æ¿ì ¾Æ·¡ ±×¸²°ú °°ÀÌ pointToolStripButton_Click ÇÔ¼ö°¡ Ãß°¡µÈ´Ù.

 

 

2.3.5     Scene °´Ã¼ Ãß°¡ À̺¥Æ® ÇÔ¼ö¿¡ nxSceneLayerEditor¿¡ »õ·Î¿î scene °´Ã¼¸¦ »ý¼ºÇϵµ·Ï ¿äûÇÏ´Â Äڵ带 ±¸ÇöÇÑ´Ù.

NXPlanetLayerSceneEditorÀÇ CreateNewOBJ¸¦ ÅëÇØ ¸Å°³º¯¼ö¿¡ µû¸¥ scene °´Ã¼¸¦ »ý¼ºÇÏ¿© Ãß°¡ ¹× ÆíÁý °úÁ¤À» ÁøÇàÇÑ´Ù. CreatNewOBJ¿¡ ÀԷ°ªÀº scene °´Ã¼ÀÇ Å¬·¡½º À̸§ÀÌ´Ù. Point, polyline, polygon, circle, symbolÀÇ °´Ã¼ Ãß°¡ ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

 

private void pointToolStripButton_Click(object sender, EventArgs e)
{
    nxSceneLayerEditor.CreateNewOBJ("XscPoint");
}

private void polylineToolStripButton_Click(object sender, EventArgs e)
{
    nxSceneLayerEditor.CreateNewOBJ("XscPolyLine");
}

private void polygonToolStripButton_Click(object sender, EventArgs e)
{
    nxSceneLayerEditor.CreateNewOBJ("XscPolygon");
}

private void circleToolStripButton_Click(object sender, EventArgs e)
{
    nxSceneLayerEditor.CreateNewOBJ("XscCircle");
}

private void symbolToolStripButton_Click(object sender, EventArgs e)
{
    nxSceneLayerEditor.CreateNewOBJ("XscSymbol");
}

 

2.3.6     ¼Ö·ç¼ÇÀ» ºôµåÇÏ°í ½ÇÇàÇÑ´Ù.

ToolStrip Áß ¡°Polyline¡±À» ¼±ÅÃÇÑ ÈÄ ÇÁ·Î±×·¥ÀÇ 2D PlanetView¿¡¼­ ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» Ŭ¸¯ÇÏ°í ¸¶¿ì½º¸¦ ¿òÁ÷ÀÌ¸é »ý¼ºµÈ PolylineÀ» È®ÀÎÇÒ ¼ö ÀÖÀ¸¸ç 2Á¡ ÀÌ»óÀÌ µÇ¸é ¡°No named XscPolyLine¡± À̶ó´Â À̸§°ú ÇÔ²² µµ½ÃµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.

 

 

Á¤Á¡À» Ãß°¡ÇÏ´Â °ÍÀº ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» Ŭ¸¯ÇÏ¸é µÇ°í, »ý¼º ÀÛ¾÷À» Á¾·áÇÏ·Á¸é ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´õºí Ŭ¸¯ÇÏ¸é µÈ´Ù. »ý¼ºÀÛ¾÷À» Á¾·áÇÏ¸é ¾Æ·¡¿Í °°ÀÌ °´Ã¼ÀÇ Á¤Á¡ À§Ä¡ Á¶Á¤, Å©±â Á¶Á¤À» ÇÒ ¼ö ÀÖ´Â ÄÁÆ®·ÑµéÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

 

 

°¢ °´Ã¼´Â ±âº» µµ½Ã ¼Ó¼ºÁ¤º¸¸¦ ÀÌ¿ëÇÏ¿© »ý¼ºµÈ´Ù. SymbolÀÇ °æ¿ì, À» ±âº»°ªÀ¸·Î ÇÏ¿© »ý¼ºµÈ´Ù.

2.3.7     nxSceneLayerEditor¿¡ OnObjectCreated À̺¥Æ®¸¦ Ãß°¡ÇÏ¿© XDL ¿£Áø ³»ºÎ¿¡¼­ °´Ã¼ »ý¼º ¿Ï·á ½ÃÁ¡¿¡ °¢ °´Ã¼¿¡ ´ëÇÑ µµ½Ã ¼Ó¼ºÀ» º¯°æÇØ º»´Ù.

nxSceneLayerEditor »ý¼ºÀÚ ´ÙÀ½¿¡ ¾Æ·¡¿Í °°ÀÌ OnObjectCreated À̺¥Æ®¸¦ Ãß°¡ÇÑ´Ù.

namespace XDL_PlanetView3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            nxSceneLayerDisplay = new NXPlanetLayerSceneDisplay();
            nxSceneLayerEditor = new NXPlanetLayerSceneEditor();
            nxSceneLayerEditor.OnObjectCreated += 
new NXSCEditEvent(nxSceneLayerEditor_OnObjectCreated);
        }
¡¦

 

nxSceneLayerEditor_OnObjectCreated ÇÔ¼ö¿¡ ¾Æ·¡¿Í °°ÀÌ µµ½Ã ¼Ó¼º Äڵ带 Ãß°¡ÇÑ´Ù.

bool nxSceneLayerEditor_OnObjectCreated(XscObj pObj)
{
    if (pObj == null) return false;

    // Scene °´Ã¼ÀÇ Å¬·¡½º À̸§ °¡Á®¿À±â
    string typeName = pObj.GetTypeName();
    if (typeName == "XscPoint")
    {
        XscPoint objPoint = (XscPoint)pObj;
        objPoint.LineColor = Color.Yellow;
        // PointÀÇ Å©±â
        objPoint.LineWidth = 10;
        // PointTypeÀ¸·Î´Â Cross, Dot, Triangle, Rect, X°¡ ÀÖ´Ù.
        objPoint.PointType = XscPoint.ePointType.Rect;
        objPoint.Name = "Point #" + objPoint.ObjID.ToString();
    }
    else if (typeName == "XscPolyLine")
    {
        XscPolyLine objPolyLine = (XscPolyLine)pObj;
        objPolyLine.LineColor = Color.LightGreen;
        objPolyLine.LinePattern = XscLinePattern.eLinePatternType.DashDot;
        objPolyLine.LineWidth = 3;
        objPolyLine.Name = "Polyline #" + objPolyLine.ObjID.ToString();
    }
    else if (typeName == "XscPolygon")
    {
        XscPolygon objPolygon = (XscPolygon)pObj;
        objPolygon.BorderColor = Color.Blue;
        objPolygon.BorderSize = 3;
        objPolygon.LinePattern = XscLinePattern.eLinePatternType.DashDotDot;
        objPolygon.FillColor = Color.Cyan;
        // FillPatternÀÌ Solid°¡ ¾Æ´Ñ °æ¿ì¿¡´Â ¹è°æ»öÀÌ Åõ¸íÇÏ°Ô Ã³¸®µÈ´Ù.
        objPolygon.FillPattern = XscFillPattern.eFillPatternType.Cross;
        objPolygon.Name = "Polygon #" + objPolygon.ObjID.ToString();
    }
    else if (typeName == "XscCircle")
    {
        XscCircle objCircle = (XscCircle)pObj;
        objCircle.LineColor = Color.Coral;
        objCircle.LineWidth = 2;
        objCircle.FillColor = Color.GreenYellow;
        objCircle.FillPattern = XscFillPattern.eFillPatternType.Vertical;
        objCircle.Name = "Circle #" + objCircle.ObjID.ToString();
    }
    else if (typeName == "XscSymbol")
    {
        XscSymbol objSymbol = (XscSymbol)pObj;
        // DefaultSymbolNameÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº 
// Apartment, Image, Model, Public, Stadium, TextChart°¡ ÀÖ´Ù.
        // ÀÌ´Â XDL ¿£Áø ¼³Ä¡ Æú´õ Áß Resource\Scenes\Icons¿¡ ÀúÀåµÇ¾î ÀÖ´Ù.
        // »ç¿ëÀÚ Á¤ÀÇÀÇ ½Éº¼À» ·ÎµùÇÏ°íÀÚ ÇÑ´Ù¸é, 
// DefaultSymbolName ´ë½Å UserSymbolPath ¼Ó¼ºÀ¸·Î °æ·Î¸¦ ¼³Á¤ÇÑ´Ù.
        objSymbol.DefaultSymbolName = "Apartment";
        objSymbol.UpdateSymbol();
        objSymbol.Name = "Symbol #" + objSymbol.ObjID.ToString();
    }

    nxPlanetView2D.RefreshScreen();
    return default(bool);
}

 

 

2.3.8      nxPlanetView2D¿¡ »ý¼ºÇÑ scene °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀåÇϱâ À§ÇØ ToolStripÀÇ saveToFileToolStripButtonÀ» ´õºí Ŭ¸¯ÇÏ¿© À̺¥Æ®ÇÔ¼ö¸¦ Ãß°¡ÇÏ°í Äڵ带 ±¸ÇöÇÑ´Ù.

¸¶¿ì½º·Î ´õºí Ŭ¸¯ÇÏ¸é ¡°Click¡±¿¡ ´ëÇÑ À̺¥Æ® ÇÔ¼ö°¡ ÀÚµ¿ Ãß°¡µÈ´Ù.

 

 

nxSceneEditorÀÇ XScene °´Ã¼¸¦ ¾ò¾î ÆÄÀÏ·Î ÀúÀåÇÑ´Ù. XDL ¿£ÁøÀÇ Scene ÆÄÀÏÀº SMLÀ» È®ÀåÀÚ·Î ÇÏ´Â XML ÆÄÀÏÀÌ´Ù. ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

 

private void saveToFileToolStripButton_Click(object sender, EventArgs e)
{
    // »ý¼ºÇÑ scene °´Ã¼¸¦ °¡Áö°í ÀÖ´Â ÃÖ»óÀ§ XScene °´Ã¼¸¦ ¾ò¾î¿Â´Ù.
    XScene sceneRoot = nxSceneLayerEditor.GetScene();
    if (sceneRoot == null) return;

    // ÀúÀåÀ» À§ÇÑ FileDialog »ý¼º
    SaveFileDialog saveDlg = new SaveFileDialog();
    saveDlg.Filter = "XDL Scene file(*.sml)|*.sml;||";
    if (saveDlg.ShowDialog() != DialogResult.OK) return;

    // ÆÄÀÏ°æ·Î¿¡ XScene °´Ã¼ÀÇ µ¥ÀÌÅ͸¦ XML ÇüÅ·ΠÀúÀåÇÑ´Ù.
    // ¼¼ ¹ø° ¸Å°³º¯¼öÀÎ XSpatialReference´Â Ãâ·Â ÁÂÇ¥°è Á¤º¸¸¦ ¼³Á¤ÇÏ´Â °ÍÀ¸·Î¼­,
    // ¿©±â¿¡¼­´Â XScene °´Ã¼ÀÇ ÁÂÇ¥°è Á¤º¸·Î ÇÏ°Ú´Ù.
    if (XScene.SaveScene(sceneRoot, saveDlg.FileName, sceneRoot.SR))
    {
        MessageBox.Show("PlanetView 2DÀÇ scene °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀåÇÏ¿´½À´Ï´Ù.");
    }
    else
    {
        MessageBox.Show("PlanetView 2DÀÇ scene °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀåÇÏÁö ¸øÇß½À´Ï´Ù.");
    }
}

2.3.9     Scene ÆÄÀÏÀÎ SML ÆÄÀÏÀ» ¼±ÅÃÇÏ¿© Planet 3D ȯ°æ¿¡ µµ½ÃÇϵµ·Ï ÇÑ´Ù. À̸¦ À§ÇÑ loadFileToolStripButtonÀ» ´õºí Ŭ¸¯ÇÏ¿© Click À̺¥Æ®ÇÔ¼ö¸¦ Ãß°¡ÇÏ°í ÆÄÀÏÀ» ·ÎµùÇÏ´Â Äڵ带 Ãß°¡ÇÑ´Ù.

¸¶¿ì½º·Î ´õºí Ŭ¸¯ÇÏ¸é ¡°Click¡±¿¡ ´ëÇÑ À̺¥Æ® ÇÔ¼ö°¡ ÀÚµ¿ Ãß°¡µÈ´Ù.

 

 

SML ÆÄÀÏÀ» NXPlayetLayerSceneDispalyÀÇ Open ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ·ÎµùÇϸé NXPlanetLayerSceneDisplayÀÇ scene µ¥ÀÌÅÍ°¡ ÆÄÀÏÀÇ ³»¿ëÀ¸·Î °»½ÅµÈ´Ù. º» ¿¹Á¦¿¡¼­´Â NXPlanetLayerSceneDisplay º¯¼öÀÎ nxSceneLayerDisplayÀÇ Open ÇÔ¼ö¸¦ ÅëÇØ SML ÆÄÀÏÀ» ·ÎµùÇÑ ÈÄ XScene °´Ã¼¸¦ ¾ò¾î¼­ µµ½Ã ¼ø¼­¸¦ ¼³Á¤ÇÑ´Ù.

XScene¿¡ Ãß°¡µÈ scene °´Ã¼¸¦ Ãß°¡µÈ ¼ø¼­´ë·Î µµ½ÃÇÏ°íÀÚ Çϸé, XScene °´Ã¼¸¦ ¾ò¾î DisplayOrder¸¦ OrderByAddSequence·Î ¼öÁ¤ÇÑ´Ù. XSceneÀÇ DisplayOrder ±âº»°ªÀº OrderNoneÀ¸·Î, OrderNone, OrderByAddSequence, OrderByUserSequence°¡ ÀÖ´Ù.

ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

private void loadFileToolStripButton_Click(object sender, EventArgs e)
{
    // ÆÄÀÏÀ» ¼±ÅÃÇϱâ À§Çؼ­ FileDialog »ý¼º
    OpenFileDialog openDlg = new OpenFileDialog();
    openDlg.Filter = "XDL Scene file(*.sml)|*.sml;||";
    if (openDlg.ShowDialog() != DialogResult.OK) return;

    // NXPlanetLayerSceneDisplayÀÇ Open ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© scene °´Ã¼ ·Îµù
    if (nxSceneLayerDisplay.Open(openDlg.FileName))
    {
        XScene scene = nxSceneLayerDisplay.GetScene();
        // Scene °´Ã¼ µµ½Ã ¹æ¹ýÀ» Ãß°¡µÇ´Â ¼ø¼­´ë·Î µµ½ÃÇϵµ·Ï ¼³Á¤ÇÑ´Ù.
        // ±âº»°ªÀº XScene.eDisplayOrder.OrderNoneÀÌ´Ù.
        scene.DisplayOrder = XScene.eDisplayOrder.OrderByAddSequence;

        MessageBox.Show("PlanetView 3DÀÇ scene °´Ã¼¸¦ °»½ÅÇÏ°Ú½À´Ï´Ù");
        nxPlanetView3D.RefreshScreen();
    }
    else
    {
        MessageBox.Show("scene ÆÄÀÏÀ» ·ÎµùÇÒ ¼ö ¾ø½À´Ï´Ù.");
    }
}

 

2.3.10   ¼Ö·ç¼ÇÀ» ºôµåÇÏ°í ½ÇÇàÇÑ´Ù.

»ùÇà ÇÁ·ÎÁ§Æ®¿Í ÇÔ²² ¹èÆ÷µÈ ÆÄÀÏÀÎ test.sml ÆÄÀÏÀ» ·ÎµùÇØ º»´Ù.