07. Additional status codes

Status codes allow you to customize the appearance of polygon element parts: edges, fills, holes.
Using additional status codes, you can choose the most convenient option to define a polygon based on the geometric information you already have.

Additional status codes should be added to normal status codes.
They can be used in any command (2D and 3D alike) with polygon definition as input.

All currently available options are listed in the GDL Reference Guide.
Depending on the geometry you want to display and the available parameters, there probably is a variation of additional status codes you can use to achieve the desired output symbol.

Note, that sometimes you need more than one point to define a piece of arc in your polygon/polyline. Always check the number of used points, and update the “n” parameter in the used command accordingly.

Most commonly used additional codes
Let’s say we want to create this symbol (rectangle base with a semi-circle on the right side):
GDL_Basics_AddStatusCodes_Example
Way #1
tangential arc to endpoint (1000):

poly2_b 5, 1+2+4, fillPenFg, fillPenBg,
		0, 0, 1,
		A, 0, 1,
		A, B, 1000+1,
		0, B, 1,
		0, 0, -1

Way #2
arc by radius and angle (2000):

poly2_B 5, 1+2+4, fillPenFg, fillPenBg,
		0, 0, 1,
		A, 0, 1,
		B/2, 180, 2000+1, 	! set radius and angle
		0, B, 1,
		0, 0, -1

Way #3
using centerpoint and endpoint of the final radius (900, 3000):

poly2_B 6, 1+2+4, fillPenFg, fillPenBg,
		0, 0, 1,
		A, 0, 1,
		A, B/2, 900, 	 	! set centerpoint
		A, B, 3000+1,	 	! set endpoint to arc
		0, B, 1,
		0, 0, -1

Way #4
using centerpoint and angle for arc (900, 4000):

poly2_B 6, 1+2+4, fillPenFg, fillPenBg,
		0, 0, 1,
		A, 0, 1,
		A, B/2, 900,	 	! set centerpoint for arc
		0, 180, 4000+1,		! set angle for arc
		0, B, 1,
		0, 0, -1

As the above shows, there is usually more than one option to fill up the command with node data. Of course, this is a simple example for a simple geometry, so real use cases may be different.

+ 1 tip
In case you want to “mirror” the side-arc, define a “negative direction” tangent vector first (800), then use tangential arc to endpoint (1000):

poly2_B 6, 1+2+4, fillPenFg, fillPenBg,
		0, 0, 1,
		A, 0, 1,
		-1, 0, 800, 	 	! set tangent
		A, B, 1000+1,	 	! tangential arc
		0, B, 1,
		0, 0, -1

Result:
GDL_Basics_AddStatusCodes_Example2