ConicCamera

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Cámara con proyección en perspectiva (cónica).

public sealed class ConicCamera : Camera

Hereda de Camera.

Al asignar una ConicCamera a la propiedad Camera de la clase DigiNG, la ventana de dibujo usa FieldOfView como ángulo de visión vertical, Near y Far como distancias de los planos de recorte, y la proporción de la ventana de dibujo como relación entre ancho y alto.

La ConicCamera que devuelve DigiNG.Camera tiene FieldOfView a 0, porque la lectura no copia el campo de visión de la ventana de dibujo. Antes de volver a asignar esa cámara, asigna FieldOfView; si no, la ventana de dibujo recibe un campo de visión de 0 grados.

Constructores

Constructor Descripción
ConicCamera() Crea una cámara con Name vacío y el resto de propiedades a 0.

Propiedades

Propiedad Descripción
double FieldOfView Ángulo de visión vertical, en grados sexagesimales.
string Name Nombre de la cámara. Heredada de Camera.
Point3D Position Posición de la cámara. 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 Distancia del plano de recorte cercano. Heredada de Camera.
double Far Distancia del plano de recorte lejano. Heredada de Camera.

Los métodos WorldToViewport, ViewportToWorld y ToString se heredan de Camera.

Ejemplo

Esta orden gira 10 grados sobre el eje Z la cámara de la ventana de dibujo activa y le asigna un campo de visión de 45 grados, si la cámara es cónica:

using Digi21.DigiNG.Cameras;
using Digi21.DigiNG.Plugin.Command;

namespace Ejemplos;

[Command(Name = "GIRA_CAMARA_CONICA")]
public class GiraCamaraConica : Command
{
    public GiraCamaraConica()
    {
        Initialize += (sender, e) =>
        {
            // DigiNG.Camera devuelve una copia: los cambios se aplican al asignarla otra vez.
            if (Digi21.DigiNG.DigiNG.Camera is ConicCamera cámara)
            {
                cámara.Yaw += 10;
                cámara.FieldOfView = 45;
                Digi21.DigiNG.DigiNG.Camera = cámara;
                Digi21.DigiNG.DigiNG.RenderScene();
            }

            Dispose();
        };
    }
}