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