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();
        };
    }
}