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:

Vector Images: Vector Units

 

Vector Images: Viewing a Vector Image

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