Orientation
Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG
Devuelve o asigna la orientación en el espacio del Text.
public new Quaternion Orientation { get; set; }
Valor de la propiedad
Un Quaternion que se aplica al texto antes de Rotation, en el sistema local del texto. En un Text nuevo vale Quaternion.Identity, (1, 0, 0, 0), y el texto está en el plano XY. La lectura devuelve el mismo valor que ReadOnlyText.Orientation. La página de ReadOnlyText.Orientation explica el sistema local del texto, la composición con Rotation y las orientaciones más habituales.
Al asignar la propiedad:
- El texto almacena el cuaternión normalizado: las cuatro componentes divididas por la norma √(W² + X² + Y² + Z²). Por eso (1, 1, 0, 0) equivale a (cos 45°, sin 45°, 0, 0), la rotación de 90° alrededor del eje X. Si la norma difiere de 1 en 10⁻¹² o menos, el texto almacena el cuaternión sin modificarlo.
- Si la norma es 0, infinita o
NaN, el texto almacenaQuaternion.Identity. Es el caso del valor por defecto de la estructura,default(Quaternion), que tiene las cuatro componentes a 0, y de un cuaternión con alguna componente infinita oNaN. - El valor de
Rotationno cambia. AsignarRotationtampoco cambia el valor deOrientation.
Quaternion es un tipo de valor y la propiedad devuelve una copia. texto.Orientation.X = 1.0 no compila (error CS1612): para cambiar una componente, asigna a la propiedad el cuaternión completo.
La dirección en planta va en Rotation
Asigna a Rotation la dirección de la línea base en planta y usa Orientation solo para inclinar el texto fuera del plano XY, sin giro alrededor del eje Z. Para un texto en una fachada con la línea base a 30° en planta, asigna Rotation = 30.0 y Orientation = new Quaternion(1.0, 1.0, 0.0, 0.0), no Rotation = 0.0 con un cuaternión que incluya los 30°. Las órdenes de Digi3D.AI y los importadores de DWG/DXF, DGN y Geomedia guardan los textos siempre de esta forma.
Las dos formas dibujan el texto igual, pero el texto conserva el cuaternión asignado y no traslada a Rotation su giro alrededor del eje Z. Con un cuaternión que gira alrededor del eje Z:
Rotationno es la dirección del texto en planta. AsignarRotation = adeja la línea base aagrados más el ángulo en planta que el cuaternión da por sí solo a la línea base.- Los formatos que solo guardan el giro (BIN, VEC, GeoJSON y PDF) escriben el texto con la dirección de
Rotation. Consulta Orientación de los textos en los archivos de dibujo. - Un texto del plano XY con un cuaternión que solo gira alrededor del eje Z cuenta como orientado. El formato BIND lo guarda en un registro
Digi21.DigiNG.Text2, y las versiones de Digi3D anteriores a ese registro no cargan el texto.
Excepciones
| Excepción | Cuándo |
|---|---|
InvalidOperationException |
Se asigna el valor y el texto es de solo lectura (ReadOnly es true). |
Ejemplo
Este fragmento crea un texto en un plano vertical, con la línea base a 30° del eje X en planta:
using Digi21.DigiNG.Entities;
using Digi21.Math;
var fachada = new Text(new Code("080101"))
{
Txt = "Fachada",
Coordinate = new Point3D(450000.0, 4480000.0, 12.0),
TextHeight = 2.5,
Rotation = 30.0,
// (1, 1, 0, 0) normalizado es (cos 45°, sin 45°, 0, 0): la rotación de 90° alrededor del eje X.
Orientation = new Quaternion(1.0, 1.0, 0.0, 0.0),
};
Console.WriteLine(fachada.Orientation); // (0.7071067811865475, 0.7071067811865475, 0, 0)