MText

Multi-line text drawing primitive.

Public Fields

LastUsedFont
static
System.String
LastUsedHeight
static
System.Double
P2
Point3F
This point is not currently used. The intention is to use it to define
alignment options that evenly spread the text between two points, or perhaps as an alernative to the Rotate option.

Properties

Bold

System.Boolean
Bold Font Style.

CADFile
readonly

CADFile
The name of the layer that contains this primitive.

CanConvertToPolylines
readonly

System.Boolean
 

CharSpace

System.Double
This option scales the width used for each character. The default is 1. A setting of 2
would double the space used for each character (but not the character itself).

Font

System.String
This is the font name to use for the text.

Height

System.Double
This is the text height in drawing units. I have had some issues with this and at the moment,
I have used height as relative to the height of a font capital (ascent??).
I'm not convinced this is correct yet, but it is on the list of things to 'look at'.

ID

System.Int32
This is a unique ID used to select objects within scripts.

Italic

System.Boolean
Italic Font Style.

Layer
readonly

Layer
The name of the layer that contains this primitive.

LineSpace

System.Double
This scales the distance between each text line. The default is 1.

Location

System.String
This is a text representation of P1, used in serialisation.

Location2

System.String
This is a text representation of P2, used in serialisation.

P1

Point3F
This is the first and at the moment, only alignment point.
The TextAlignmentH and TextAlignmentV options are all relative to this point.

Parent

System.Object
This primitive's parent object. This may be a GOBLayer.

PrimitiveType
readonly

System.String
 

Regular

System.Boolean
Regular font style.

Strikeout

System.Boolean
StrikeOut Font Style. Not currently supported.

Style

System.String
Used in serialisation.

Tag

System.String
 

Text

System.String
The text to display.

TextAlignment

System.String
Used in serialisation.

TextAlignmentH

CamBam.CAD.TextAlignmentH
Horizontal text alignment Left (0), Center (1) or Right (2), relative to P1.

TextAlignmentV

CamBam.CAD.TextAlignmentV
Verticle text alignment Top (0), Center (1) or Bottom (2), relative to P1.

Transform

CamBam.Geom.Matrix4x4F
 

Underline

System.Boolean
Underline Font Style. Not currently supported.

Methods

ApplyTransformation
Boolean ApplyTransformation (Matrix4x4F xm)
Multiply the points in the object by a transformation matrix.
Clone
Entity Clone ()
CloneFrom
Void CloneFrom (Entity src)
ConvertToPolylines
Polyline[] ConvertToPolylines (Boolean apply_transformations)
GetExtents
Void GetExtents (PointF& min, PointF& max)
Find the extrema points of this primitive.
Parameters:
min: A point that will receive the minimum coordinates.
max: A point that will receive the maximum coordinates.
GetExtrema
Void GetExtrema (Point3F& min, Point3F& max)
Find the extrema points of this primitive.
Parameters:
min: A point that will receive the minimum coordinates.
max: A point that will receive the maximum coordinates.
GetScreenExtents
Void GetScreenExtents (PointF& min, PointF& max, Matrix4x4F xm)
Paint
Void Paint (Display3D d3d)
PointIntersect
Boolean PointIntersect (Point2F p, Matrix4x4F xm, Double tolerance)
Returns true if a point will intersect part of the primitive. Used for mouse hit testing.
Parameters:
p: The test point.
xm: Transformation matrix.
tolerance: How close the point must be to be considered a hit.
Returns:
ToPolylineArray
Polyline[] ToPolylineArray ()
Converts the text to an array of Polylines.
At the moment, curves are converted to a series of straight line segments.
Parameters:
CurveSteps: Used to render curves to straight line segments.
Returns: An array of Polylines
ToRegions
Region[] ToRegions ()
Update
Void Update ()
Instructs the primitive to refresh any internal data if the the object has changed.