OrthographicCamera
Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG
Cámara con proyección ortográfica: la vista no tiene perspectiva y la escala no depende de la distancia a la cámara.
public sealed class OrthographicCamera : Camera
Hereda de Camera.
Al asignar una OrthographicCamera a la propiedad Camera de la clase DigiNG, la ventana de dibujo centra la vista en Position y usa solo tres diferencias:
| Diferencia | Uso |
|---|---|
Right - Left |
Ancho de la vista, en unidades del archivo de dibujo. |
Top - Bottom |
Alto de la vista, en unidades del archivo de dibujo. |
Far - Near |
Profundidad de la vista. |
La ventana de dibujo amplía el ancho o el alto para conservar la proporción de la ventana. La profundidad de la proyección es el doble del mayor de los tres valores, por lo que Near y Far no recortan entidades que estén dentro del ancho y el alto de la vista.
La OrthographicCamera que devuelve DigiNG.Camera tiene Left, Right, Top, Bottom, Near y Far relativos a Position: Left = -ancho / 2, Right = ancho / 2, y lo mismo con el alto y la profundidad. Los constructores que reciben una ventana asignan en cambio las coordenadas absolutas de la ventana; como la ventana de dibujo solo usa las diferencias, las dos formas producen la misma vista.
Constructores
| Constructor | Descripción |
|---|---|
| OrthographicCamera() | Crea una cámara con Name vacío y el resto de propiedades a 0. |
| OrthographicCamera(string name) | Crea una cámara con el nombre indicado y el resto de propiedades a 0. |
| OrthographicCamera(IWindow3D window) | Crea una cámara que abarca la ventana indicada, sin giros. |
| OrthographicCamera(string name, IWindow3D window) | Igual que el anterior, con nombre. |
| OrthographicCamera(IWindow3D window, float yaw, float pitch, float roll) | Crea una cámara que abarca la ventana indicada, con los giros indicados. |
| OrthographicCamera(string name, IWindow3D window, float yaw, float pitch, float roll) | Igual que el anterior, con nombre. |
Propiedades
| Propiedad | Descripción |
|---|---|
| double Left | Límite izquierdo de la vista. |
| double Right | Límite derecho de la vista. |
| double Top | Límite superior de la vista. |
| double Bottom | Límite inferior de la vista. |
| string Name | Nombre de la cámara. Heredada de Camera. |
| Point3D Position | Centro de la vista. Heredada de Camera. |
| float Pitch | Giro sobre el eje X, en grados sexagesimales. Heredada de Camera. |
| float Yaw | Giro sobre el eje Z, en grados sexagesimales. Heredada de Camera. |
| float Roll | Giro sobre el eje Y, en grados sexagesimales. Heredada de Camera. |
| double Near | Límite cercano de la profundidad. Heredada de Camera. |
| double Far | Límite lejano de la profundidad. Heredada de Camera. |
Los métodos WorldToViewport, ViewportToWorld y ToString se heredan de Camera.
Ejemplo
Esta orden muestra el archivo de dibujo completo en vista cenital:
using Digi21.DigiNG.Cameras;
using Digi21.DigiNG.Plugin.Command;
namespace Ejemplos;
[Command(Name = "VISTA_CENITAL_ARCHIVO")]
public class VistaCenitalArchivo : Command
{
public VistaCenitalArchivo()
{
Initialize += (sender, e) =>
{
var archivo = Digi21.DigiNG.DigiNG.DrawingFile;
// Un archivo sin entidades no tiene coordenadas mínimas y máximas.
if (archivo.Valid)
{
// Con los tres ángulos a 0, la cámara mira hacia -Z con el norte arriba.
Digi21.DigiNG.DigiNG.Camera = new OrthographicCamera("Archivo completo", archivo);
Digi21.DigiNG.DigiNG.RenderScene();
}
Dispose();
};
}
}