Gets the vector object under the specified 2D point.
#include "ltwrappr.h"
virtual L_INT LVectorBase::HitTest(pPoint, pLVectorObject)
Pointer to a POINT structure that contains the point to test.
Pointer to a VECTOROBJECT structure to be updated with the object present at the specified location.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
This function will get the first object under the specified physical point.
Camera, view port, rotation, translation and scaling are all considered when determining whether or not an object is under the specified point.
This example will delete the object under a given 2D point.
L_INT LVectorBase__HitTestExample(HWND hWnd, LVectorBase *pVector, LPPOINT pPoint)
{
UNREFERENCED_PARAMETER(hWnd);
L_INT nRet;
LVectorBase Vector;
LVectorObject VectorObject;
VECTORHITTEST HitTest;
L_TCHAR szMsg[200];
//Get current Hit Test settings
nRet = Vector.GetHitTest(&HitTest);
if(nRet != SUCCESS)
return nRet;
wsprintf(szMsg, TEXT("Old Hit Test Settings\nDistance[%d]\ndwFlags[%d]"), HitTest.nDistance, HitTest.dwFlags);
MessageBox(NULL, szMsg, TEXT(""), MB_OK);
HitTest.nDistance = 8;
nRet = Vector.SetHitTest(&HitTest);
if(nRet != SUCCESS)
return nRet;
wsprintf(szMsg, TEXT("New Hit Test Settings\nDistance[%d]\ndwFlags[%d]"), HitTest.nDistance, HitTest.dwFlags);
MessageBox(NULL, szMsg, TEXT(""), MB_OK);
// Get object under that point
nRet = pVector->HitTest(pPoint, &VectorObject);
if(nRet != SUCCESS)
return nRet;
//Is there an object under that point? If yes, delete it
if (nRet == SUCCESS)
{
MessageBox(NULL, TEXT("Deleting Object..."), TEXT(""), MB_OK);
nRet = VectorObject.DeleteObject();
if(nRet != SUCCESS)
return nRet;
}
else
return nRet;
//LVectorObject destructor called when VectorObject goes out of scope...
return SUCCESS;
}