Jump to content

GrePolyFillet: Difference between revisions

From EDM2
Created page with "GrePolyFillet draws a fillet on a series of connected lines with the first line starting at the current (X,Y) position. Upon completion, the current (X,Y) position is set to t..."
 
Ak120 (talk | contribs)
mNo edit summary
 
Line 1: Line 1:
GrePolyFillet draws a fillet on a series of connected lines with the first line starting at the current (X,Y) position. Upon completion, the current (X,Y) position is set to the last point in the series.  
GrePolyFillet draws a fillet on a series of connected lines with the first line starting at the current (X,Y) position. Upon completion, the current (X,Y) position is set to the last point in the series.


This function can be hooked by the presentation driver.
This function can be hooked by the presentation driver.


; Simulation support: This function is simulated by a handling routine in the graphics engine.  
;Simulation support: This function is simulated by a handling routine in the graphics engine.


== Syntax ==  
== Syntax ==  
  GrePolyFillet(hdc, paptlPoint, cPoints, pInstance, lFunction);
  GrePolyFillet(hdc, paptlPoint, cPoints, pInstance, lFunction)


== Parameters ==
== Parameters ==
; hdc (HDC) - input :Device context handle.  
;hdc (HDC) - input :Device context handle.
 
;paptlPoint (PPOINTL) - input : Pointer to coordinates array.
; paptlPoint (PPOINTL) - input : Pointer to coordinates array.  
:An array of cPoints (X,Y) pairs, which contain the (X,Y) coordinates of the end points for the lines. If COM_TRANSFORM is not set, the function expects the points to be in screen coordinates.
 
;cPoints (LONG) - input : Number of coordinate pairs.
:An array of cPoints (X,Y) pairs, which contain the (X,Y) coordinates of the end points for the lines. If COM_TRANSFORM is not set, the function expects the points to be in screen coordinates.  
:If this value is passed as 0, the handling routine does nothing and returns Successful.
 
;pInstance (PVOID) - input : Pointer to instance data.
; cPoints (LONG) - input : Number of coordinate pairs.  
;lFunction (ULONG) - input : High-order WORD=flags; low-order WORD=NGrePolyFillet.
:If this value is passed as 0, the handling routine does nothing and returns Successful.  
 
; pInstance (PVOID) - input : Pointer to instance data.  
 
; lFunction (ULONG) - input : High-order WORD=flags; low-order WORD=NGrePolyFillet.  


== Returns ==
== Returns ==
; rc (LONG) - returns : Return codes.  
;rc (LONG) - returns: Return codes.
 
:This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:
This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:  
::GPI_OK: Successful
 
::GPI_HITS: Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)
;GPI_OK: Successful  
::GPI_ERROR: Error
;GPI_HITS: Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)  
;GPI_ERROR: Error.
 
Possible Errors Detected:   When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:  
* PMERR_BASE_ERROR
* PMERR_BITMAP_NOT_SELECTED
* PMERR_COORDINATE_OVERFLOW
* PMERR_DEV_FUNC_NOT_INSTALLED
* PMERR_HDC_BUSY
* PMERR_INV_COLOR_DATA
* PMERR_INV_COLOR_INDEX
* PMERR_INV_COORD_SPACE
* PMERR_INV_HDC
* PMERR_INV_IN_AREA
* PMERR_INV_IN_PATH
* PMERR_INV_LENGTH_OR_COUNT
* PMERR_INV_PICK_APERTURE_POSN
* PMERR_INV_RECT
* PMERR_PATH_LIMIT_EXCEEDED
* PMERR_PATH_UNKNOWN
 
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.
 
== Sample ==
<pre>
 
#define INCL_GRE_ARCS
#include <os2.h>


HDC        hdc;        /*  Device context handle. */
Possible Errors Detected:
PPOINTL    paptlPoint;  /*  Pointer to coordinates array. */
LONG      cPoints;    /*  Number of coordinate pairs. */
PVOID      pInstance;  /*  Pointer to instance data. */
ULONG      lFunction;  /*  High-order WORD=flags; low-order WORD=NGrePolyFillet. */
LONG      rc;          /*  Return codes. */


rc = GrePolyFillet(hdc, paptlPoint, cPoints, pInstance, lFunction);
When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:
</pre>
* PMERR_BASE_ERROR
* PMERR_BITMAP_NOT_SELECTED
* PMERR_COORDINATE_OVERFLOW
* PMERR_DEV_FUNC_NOT_INSTALLED
* PMERR_HDC_BUSY
* PMERR_INV_COLOR_DATA
* PMERR_INV_COLOR_INDEX
* PMERR_INV_COORD_SPACE
* PMERR_INV_HDC
* PMERR_INV_IN_AREA
* PMERR_INV_IN_PATH
* PMERR_INV_LENGTH_OR_COUNT
* PMERR_INV_PICK_APERTURE_POSN
* PMERR_INV_RECT
* PMERR_PATH_LIMIT_EXCEEDED
* PMERR_PATH_UNKNOWN
Refer to the "Error Explanations" section in the ''Presentation Manager Programming Reference'' for further explanation.


== Remarks ==
== Remarks ==
The shape of the fillet is controlled by a set of coordinates for a series of two or more connected lines. The fillet is tangential to the start point of the first line and to the end point of the last line. When more than two sets of coordinates are supplied, the fillet passes through the mid-points of the intermediate lines. An individual fillet always lies within the area bounded by the start, end, and control points.  
The shape of the fillet is controlled by a set of coordinates for a series of two or more connected lines. The fillet is tangential to the start point of the first line and to the end point of the last line. When more than two sets of coordinates are supplied, the fillet passes through the mid-points of the intermediate lines. An individual fillet always lies within the area bounded by the start, end, and control points.


Refer to function "[[GpiPolyFillet]]" in the Presentation Manager Programming Reference for more information.  
Refer to function "GpiPolyFillet" in the Presentation Manager Programming Reference for more information.


[[Category:Gre]]
[[Category:Gre]]

Latest revision as of 18:21, 2 December 2019

GrePolyFillet draws a fillet on a series of connected lines with the first line starting at the current (X,Y) position. Upon completion, the current (X,Y) position is set to the last point in the series.

This function can be hooked by the presentation driver.

Simulation support
This function is simulated by a handling routine in the graphics engine.

Syntax

GrePolyFillet(hdc, paptlPoint, cPoints, pInstance, lFunction)

Parameters

hdc (HDC) - input
Device context handle.
paptlPoint (PPOINTL) - input
Pointer to coordinates array.
An array of cPoints (X,Y) pairs, which contain the (X,Y) coordinates of the end points for the lines. If COM_TRANSFORM is not set, the function expects the points to be in screen coordinates.
cPoints (LONG) - input
Number of coordinate pairs.
If this value is passed as 0, the handling routine does nothing and returns Successful.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGrePolyFillet.

Returns

rc (LONG) - returns
Return codes.
This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:
GPI_OK: Successful
GPI_HITS: Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)
GPI_ERROR: Error

Possible Errors Detected:

When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:

  • PMERR_BASE_ERROR
  • PMERR_BITMAP_NOT_SELECTED
  • PMERR_COORDINATE_OVERFLOW
  • PMERR_DEV_FUNC_NOT_INSTALLED
  • PMERR_HDC_BUSY
  • PMERR_INV_COLOR_DATA
  • PMERR_INV_COLOR_INDEX
  • PMERR_INV_COORD_SPACE
  • PMERR_INV_HDC
  • PMERR_INV_IN_AREA
  • PMERR_INV_IN_PATH
  • PMERR_INV_LENGTH_OR_COUNT
  • PMERR_INV_PICK_APERTURE_POSN
  • PMERR_INV_RECT
  • PMERR_PATH_LIMIT_EXCEEDED
  • PMERR_PATH_UNKNOWN

Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Remarks

The shape of the fillet is controlled by a set of coordinates for a series of two or more connected lines. The fillet is tangential to the start point of the first line and to the end point of the last line. When more than two sets of coordinates are supplied, the fillet passes through the mid-points of the intermediate lines. An individual fillet always lies within the area bounded by the start, end, and control points.

Refer to function "GpiPolyFillet" in the Presentation Manager Programming Reference for more information.