Draw XXL documentation


Draw Shapes.Plane(...);

Draws a plane.

Green parameters are required. Yellow parameters are optional, but have to be supplied in order.


static void DrawShapes.Plane(...);

Code snippet names: drawPlane_tr and drawPlane_tr_func.

Parameters:
Type Parameter Name Description
Transform planeTransform A transform that defines the plane orientation and size.
PlaneNormalFromTransform normal Each side of the transform can be chosen as plane normal.
Vector3 planeAreaExtentionPosition The drawn plane area can be extended so it contains an other point who is independent from the transform. This "planeAreaExtentionPosition" doesn't have to lie inside the plane itself. If it does not lie inside the plane then the plane is extended so it incorporates the perpendicular plumb of "planeAreaExtentionPosition". This plane enlargement functionality is disabled if you leave the value "planeAreaExtentionPosition" at "default" (= 0,0,0 default vector). As a sideffect this means that you cannot choose a "planeAreaExtentionPosition" at the origin position (0,0,0) (since this is the default of Vector3). If you still want "planeAreaExtentionPosition" to be the 0-origin, you may define a position that is slightly shifted from the 0-origin, like "new Vector3(0, 0, 0.0001f)".
Color color
float widthFactor The size of the plane is defined by the scale of the planeTransform, multiplied by "widthFactor" respectively "lengthFactor", unless not enlarged by using "planeAreaExtentionPosition".
float lengthFactor The size of the plane is defined by the scale of the planeTransform, multiplied by "widthFactor" respectively "lengthFactor", unless not enlarged by using "planeAreaExtentionPosition".
float linesWidth
string text
float subSegments_signFlipsInterpretation This defines the number of resepctively the size of the drawn sub segmentation struts inside the plane. It behaves different depending on whether it is supplied as positive or as negative value, which is indicated by the name suffix "_signFlipsInterpretation". If the value is positive then it defines the absolute number of sub segments, so it is rounded to a full integer. If the overall plane grows in size then also the sub segments grow in size. If "subSegments_signFlipsInterpretation" is negative then it defines the fixed size of each segment in world space. So when the visualized plane area grows the segment size stays the same but instead the number of segments rises. This second option may better communicate a sense of the size of the plane if the plane size is variable, e.g. due to a changing "planeAreaExtentionPosition". Also such a fixed segment size has the advantage, that the planes sub struts always start at the "planeTransform", also when the size of the plane changes, which can also help for a better orientation. Moreover the sub squares will always stay square and will not warp if the plane width and length are different.
bool pointer_as_textAttachStyle This has only effect if "text" is used. The text can either be written inside the plane area, or offsetted via a pointer. If a pointer is used then the display orientation of the text follows DrawText.automaticTextOrientation. See also DrawShapes.forcedConstantScreenspaceTextSize_relToScreenHeight_forTextAtShapes or DrawShapes.forcedConstantWorldspaceTextSize_forTextAtShapes.
float anchorVisualizationSize The plane anchor is defined by the "planeTransform" parameter and can be highlighted by a circle and the plane normal. It can help the orientation for cases where the drawn plane area changes (e.g. due to a changing "planeAreaExtentionPosition"
bool drawPlumbLine_fromExtentionPosition If "planeAreaExtentionPosition" is used, then this draws a perpendicular line from the plane to this "planeAreaExtentionPosition". Otherwise it doesn't have effect.
LineStyle lineStyle
float stylePatternScaleFactor
bool textBlockAboveLine Has only effect if "text" is used and "pointer_as_textAttachStyle" is activated.
float durationInSec The duration in seconds how long the drawn thing stays visible. The default value of 0 means that it stays only during the current Update frame. Instead of using this parameter you can also overwrite him with a global setting so you don't always have to supply all other preceding function parameters till you reach this late parameter.
bool hiddenByNearerObjects This specifies if the drawn thing will get hidden if other geometry is in front of it or if it shines through. It is the same as the depthTest parameter of Unitys Debug.DrawLine(). Not all drawing methods support toggling this in the same way. For some methods the lines are fully hidden, for others the hidden lines shimmer through. Instead of using this parameter you can also overwrite him with a global setting so you don't always have to supply all other preceding function parameters till you reach this late parameter.


static void DrawShapes.Plane(...);

Code snippet names: drawPlane_pl and drawPlane_pl_func.

Parameters:
Type Parameter Name Description
Plane plane A Unity plane to visualize.
Vector3 drawPositionApproximately The plane is a mathematical object that stretches across the whole Scene till infinity, so it is too big to draw. "drawPositionApproximately" defines the region of the plane that is drawn. The "*Approximately" in the name means that this position doesn't have to lie on the plane itself. The plane will be drawn in the plane area that is closest to this "drawPositionApproximately", that means a perpendicular plumb from "drawPositionApproximately" onto the plane defines the area of the plane that is drawn.
Color color
float width Measured perpendicular to "forward_insidePlane".
float length Measured along "forward_insidePlane".
Vector3 forward_insidePlane
float linesWidth
string text
float subSegments_signFlipsInterpretation This defines the number of resepctively the size of the drawn sub segmentation struts inside the plane. It behaves different depending on whether it is supplied as positive or as negative value, which is indicated by the name suffix "_signFlipsInterpretation". If the value is positive then it defines the absolute number of sub segments, so it is rounded to a full integer. If the overall plane grows in size then also the sub segments grow in size. If "subSegments_signFlipsInterpretation" is negative then it defines the fixed size of each segment in world space. So when the visualized plane area grows the segment size stays the same but instead the number of segments rises. This second option may better communicate a sense of the size of the plane if the plane size is variable, e.g. due to a changing "planeAreaExtentionPosition". Also such a fixed segment size has the advantage, that the planes sub struts always start at the "planeTransform", also when the size of the plane changes, which can also help for a better orientation. Moreover the sub squares will always stay square and will not warp if the plane width and length are different.
bool pointer_as_textAttachStyle This has only effect if "text" is used. The text can either be written inside the plane area, or offsetted via a pointer. If a pointer is used then the display orientation of the text follows DrawText.automaticTextOrientation. See also DrawShapes.forcedConstantScreenspaceTextSize_relToScreenHeight_forTextAtShapes or DrawShapes.forcedConstantWorldspaceTextSize_forTextAtShapes.
bool drawPlumbLine_fromApproximateDrawPosition
LineStyle lineStyle
float stylePatternScaleFactor
bool textBlockAboveLine Has only effect if "text" is used and "pointer_as_textAttachStyle" is activated.
float durationInSec The duration in seconds how long the drawn thing stays visible. The default value of 0 means that it stays only during the current Update frame. Instead of using this parameter you can also overwrite him with a global setting so you don't always have to supply all other preceding function parameters till you reach this late parameter.
bool hiddenByNearerObjects This specifies if the drawn thing will get hidden if other geometry is in front of it or if it shines through. It is the same as the depthTest parameter of Unitys Debug.DrawLine(). Not all drawing methods support toggling this in the same way. For some methods the lines are fully hidden, for others the hidden lines shimmer through. Instead of using this parameter you can also overwrite him with a global setting so you don't always have to supply all other preceding function parameters till you reach this late parameter.


static void DrawShapes.Plane(...);

Code snippet names: drawPlane_vec and drawPlane_vec_func.

Parameters:
Type Parameter Name Description
Vector3 planeMountingPoint
Vector3 normal
Vector3 planeAreaExtentionPosition The drawn plane area (defined by "width" and "length")can be extended so it contains an other point who is independent from the planeMountingPoint. This "planeAreaExtentionPosition" doesn't have to lie inside the plane itself. If it does not lie inside the plane then the plane is extended so it incorporates the perpendicular plumb of "planeAreaExtentionPosition". This plane enlargement functionality is disabled if you leave the value "planeAreaExtentionPosition" at "default" (= 0,0,0 default vector). As a sideffect this means that you cannot choose a "planeAreaExtentionPosition" at the origin position (0,0,0) (since this is the default of Vector3). If you still want "planeAreaExtentionPosition" to be the 0-origin, you may define a position that is slightly shifted from the 0-origin, like "new Vector3(0, 0, 0.0001f)".
Color color
float width Measured perpendicular to "forward_insidePlane", unless not enlarged by using "planeAreaExtentionPosition".
float length Measured along "forward_insidePlane", unless not enlarged by using "planeAreaExtentionPosition".
Vector3 forward_insidePlane
float linesWidth
string text
float subSegments_signFlipsInterpretation This defines the number of resepctively the size of the drawn sub segmentation struts inside the plane. It behaves different depending on whether it is supplied as positive or as negative value, which is indicated by the name suffix "_signFlipsInterpretation". If the value is positive then it defines the absolute number of sub segments, so it is rounded to a full integer. If the overall plane grows in size then also the sub segments grow in size. If "subSegments_signFlipsInterpretation" is negative then it defines the fixed size of each segment in world space. So when the visualized plane area grows the segment size stays the same but instead the number of segments rises. This second option may better communicate a sense of the size of the plane if the plane size is variable, e.g. due to a changing "planeAreaExtentionPosition". Also such a fixed segment size has the advantage, that the planes sub struts always start at the "planeTransform", also when the size of the plane changes, which can also help for a better orientation. Moreover the sub squares will always stay square and will not warp if the plane width and length are different.
bool pointer_as_textAttachStyle This has only effect if "text" is used. The text can either be written inside the plane area, or offsetted via a pointer. If a pointer is used then the display orientation of the text follows DrawText.automaticTextOrientation. See also DrawShapes.forcedConstantScreenspaceTextSize_relToScreenHeight_forTextAtShapes or DrawShapes.forcedConstantWorldspaceTextSize_forTextAtShapes.
float anchorVisualizationSize The plane anchor is defined by the "planeMountingPoint" parameter and can be highlighted by a circle and the plane normal. It can help the orientation for cases where the drawn plane area changes (e.g. due to a changing "planeAreaExtentionPosition"
bool drawPlumbLine_fromExtentionPosition
LineStyle lineStyle
float stylePatternScaleFactor
bool textBlockAboveLine Has only effect if "text" is used and "pointer_as_textAttachStyle" is activated.
float durationInSec The duration in seconds how long the drawn thing stays visible. The default value of 0 means that it stays only during the current Update frame. Instead of using this parameter you can also overwrite him with a global setting so you don't always have to supply all other preceding function parameters till you reach this late parameter.
bool hiddenByNearerObjects This specifies if the drawn thing will get hidden if other geometry is in front of it or if it shines through. It is the same as the depthTest parameter of Unitys Debug.DrawLine(). Not all drawing methods support toggling this in the same way. For some methods the lines are fully hidden, for others the hidden lines shimmer through. Instead of using this parameter you can also overwrite him with a global setting so you don't always have to supply all other preceding function parameters till you reach this late parameter.