async private void Render()
{
while (!renderStop)
{
YamangDll.PreRendering();
int curWidth = Convert.ToInt32(GetNumber(MapHeightVal));
int curHeight = Convert.ToInt32(GetNumber(MapWidthVal));
int curMapSpace = Convert.ToInt32(GetNumber(MapVertexSpacingVal));
if ((preWidth != curWidth) || (preHeight != curHeight) || (preMapSpace != curMapSpace))
{
meshSizeChanged = true;
}
if (meshSizeChanged)
{
meshSizeChanged = false;
YamangDll.InitGroundMesh(curWidth, curHeight);
YamangDll.CreateRawGround(curWidth, curHeight, curMapSpace);
}
YamangDll.ToolViewSetting(RenderTarget.Size.Width, RenderTarget.Size.Height);
if (mouseEventFlag)
{
SetAction();
YamangDll.CalcPickingRay(mouseXPosition, mouseYPosition);
//YamangDll.TransPickedTriangle(ref returnedXPos, ref returnedZPos);
YamangDll.TransPickedTriangle(ref returnedXPos, ref returnedZPos, ref PickedTriPointA, ref PickedTriPointB, ref PickedTriPointC);
//이거 활용해서 해당 위치에 나무 같은거 뿌리면 될 듯
Console.WriteLine("A: " + PickedTriPointA + "\nB: " + PickedTriPointB + "\nC: " + PickedTriPointC);
Console.WriteLine("Xpos: " + returnedXPos + ", ZPos: " + returnedZPos);
YamangDll.MapToolPickingEvent(actionFlag, PickedTriPointA, PickedTriPointB, PickedTriPointC);
mouseEventFlag = false;
}
YamangDll.RenderHeightMap();
YamangDll.PostRendering();
preWidth = curWidth;
preHeight = curHeight;
preMapSpace = curMapSpace;
await Task.Delay(10);
}
}