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; }