Fills the specified array of ANNPOINT structures with the vertices of the annotation object.
#include "ltwrappr.h"
virtual L_INT LAnnCurveClosed::GetPoints(pPoints)
Pointer to the array that this function will fill with the vertices of the object.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
You can use the LAnnCurveClosed::GetPointCount function to determine the required size of the array before calling this function.
The ANNPOINT structure is like a Windows POINT structure, except that it uses double-precision floating point values.
Coordinates of an object's points are relative to its container object. The coordinates are interpreted using the container's scaling factors and offsets, which are described in Low-Level Coordinate System for Annotations.
Win32, x64.
This example gets the points for an object, shrinks the object by 1/2
and then puts the points back to the object.
L_INT LAnnCurveClosed_GetPointsExample(HWND hwnd, LAnnContainer& LeadContainer,L_BOOL fDoubleClick, L_INT x, L_INT y, L_UINT keyFlags){UNREFERENCED_PARAMETER(keyFlags);UNREFERENCED_PARAMETER(fDoubleClick);UNREFERENCED_PARAMETER(hwnd);L_INT nRet;HANNOBJECT hObject; // Local variable for the annotation objectPOINT PointToTest; // The point in the window's client area to testL_UINT TestResult; // Result of the testpANNPOINT pPoints; // Pointer to the points in the objectL_UINT uCount; // Number of points in the objectL_INT i;ANNRECT rcDefine;// Defining rectangle for the objectL_DOUBLE cx; // Center x pointL_DOUBLE cy; // Center y pointLBuffer LeadBuffer ;ANNHITTESTINFO HitTestInfo;memset(&HitTestInfo, 0, sizeof(ANNHITTESTINFO));HitTestInfo.uStructSize = sizeof(ANNHITTESTINFO);// Did we hit an object?// Use incoming coordinates to specify the point to testPointToTest.x = x;PointToTest.y = y;// Get the object at the specified pointnRet = LeadContainer.HitTest( &PointToTest, &TestResult, &hObject, &HitTestInfo, sizeof(ANNHITTESTINFO));if(nRet != SUCCESS)return nRet;if ( TestResult == ANNHIT_BODY ){LAnnCurveClosed LeadCurveClosed(hObject) ;// first, get the # of points in the objectuCount = LeadCurveClosed.GetPointCount();LeadBuffer.Reallocate(sizeof(ANNPOINT) * uCount);pPoints = (pANNPOINT)LeadBuffer.Lock() ;// Now, get the pointsnRet = LeadCurveClosed.GetPoints(pPoints);if(nRet != SUCCESS)return nRet;// Get the defining rect, and find the center pointnRet = LeadCurveClosed.GetRect ( &rcDefine );if(nRet != SUCCESS)return nRet;cx = (rcDefine.right + rcDefine.left) / 2;cy = (rcDefine.bottom + rcDefine.top) / 2;for (i=0; i<(L_INT)uCount; i++){pPoints[i].x += (cx - pPoints[i].x) / 2;pPoints[i].y += (cy - pPoints[i].y) / 2;}// Put the new points back into the objectnRet = LeadCurveClosed.SetPoints ( pPoints, uCount);if(nRet != SUCCESS)return nRet;LeadBuffer.Unlock() ;}elsereturn FAILURE;return SUCCESS;}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
