|
Available in LEADTOOLS Vector Imaging toolkits. |
LVectorBase::PhysicalToLogical
#include "ltwrappr.h"
virtual L_INT LVectorBase::PhysicalToLogical(pDst, pSrc)
|
pVECTORPOINT pDst; |
/* pointer to a VECTORPOINT structure */ |
|
const POINT * pSrc; |
/* pointer to a POINT structure */ |
Converts a Windows 2D POINT into a 3D VECTORPOINT.
|
Parameter |
Description |
|
pDst |
Pointer to a VECTORPOINT structure to be updated with the logical 3 dimensional point converted from the 2 dimensional point in pSrc. |
|
pSrc |
Pointer to a POINT structure that contains a 2 dimensional point to be converted into a 3 dimensional point. |
Returns
|
SUCCESS |
The function was successful. |
|
< 1 |
An error occurred. Refer to Return Codes. |
Comments
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.
Required DLLs and Libraries
|
LVKRN For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
See Also
|
Functions: |
LVectorBase::LogicalToPhysical, LVectorBase::GetObjectParallelogram, LVectorBase::GetObjectRect |
|
Topics: |
|
|
|
Example
This example will obtains drawing logical extents.
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName
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;
}