Converts a Windows 2D POINT into a 3D VECTORPOINT.
#include "ltwrappr.h"
virtual L_INT LVectorBase::PhysicalToLogical(pDst, pSrc)
Pointer to a VECTORPOINT structure to be updated with the logical 3 dimensional point converted from the 2 dimensional point in pSrc.
Pointer to a POINT structure that contains a 2 dimensional point to be converted into a 3 dimensional point.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
Converts a given 2D physical point into a logical (with X, Y, Z coordinates), 3D point.
The Z value of the destination 3D point will not be changed.
Conversion will be based on the current view port and camera values set in the VECTORHANDLE.
This example will obtains drawing logical extents.
L_INT LVectorBase__PhysicalToLogicalExample(HWND hWnd)
{
RECT rect;
L_INT nRet;
VECTORPOINT LeftTop, RightBottom;
POINT LeftTop2D, RightBottom2D;
LVectorBase Vector;
nRet = Vector.Load(MAKE_IMAGE_PATH(TEXT("random.dxf")));
if(nRet != SUCCESS)
return nRet;
// Get physical extent of the all objects inside drawing
nRet = Vector.AttachToWindow(hWnd);
if(nRet != SUCCESS)
return nRet;
GetClientRect(hWnd, &rect);
nRet = Vector.SetViewport(&rect);
if(nRet != SUCCESS)
return nRet;
// Get the rectangle of entire object
nRet = Vector.GetObjectRect(&rect);
if(nRet != SUCCESS)
return nRet;
LeftTop2D.x = rect.left;
LeftTop2D.y = rect.top;
RightBottom2D.x = rect.right;
RightBottom2D.y = rect.bottom;
nRet = Vector.PhysicalToLogical( &LeftTop, &LeftTop2D );
if(nRet != SUCCESS)
return nRet;
nRet = Vector.PhysicalToLogical( &RightBottom, &RightBottom2D );
if(nRet != SUCCESS)
return nRet;
return SUCCESS;
}