Ventana Fotogramétrica
Resúmen de la operativa de la ventana fotogramétrica
La ventana fotogramétrica básicamente realiza estas tareas:
- Modifica la coordenada terreno.
- Muestra imágenes en una determinada posición.
- Notifica a la ventana de dibujo que el usuario ha realizado alguna acción, como por ejemplo: el usuario se ha movido, el usuario ha pulsado el pedal data, el usuario ha liberado el pedal tentativo,...
- Vuelve a esperar a que el usuario realice alguna acción y así hasta el infinito.
Paso 1: Modificación de la coordenada terreno
La ventana fotogramétrica tiene una coordenada (que vamos a denominar coordenada terreno). Esta coordenada varía cuando el usuario desplaza el dispositivo de entrada, y es la coordenada que se va a utilizar con posterioridad para calcular donde mostrár las imágenes en la ventana fotogramétrica.
La ventana fotogramétrica sigue los siguientes pasos para transformar la coordenada terreno.
- Espera a que el usuario interaccione con el dispositivo de entrada (topomouse, manivelas,...).
- Modifica las coordenadas de la ventana fotogramétrica en función de lo que ha hecho el usuario (si el usuario ha desplazado el topomouse 1 el equivalente a un metro en X, se modifican las coordenadas terreno de la ventana fotogramétrica 1 metro en X).
Paso 2: Mostrar las imágenes en una determinada posición
La ventana fotogramétrica no entiende de sensores, no sabe las operaciones matemáticas necesarias para saber qué píxel de cada una de las imágenes tiene que mostrar al usuario en el centro de la pantalla para una determinada coordenada terreno.
Tan solo sabe mostrar imágenes pero no sabe calcular dónde las debe dibujarlas. Delega esa operación al sensor cargado. Básicamente le pregunta al sensor ¿en qué coordenadas píxel debo centrar las imágenes en la ventana fotogramétrica para esta determinada coordenada terreno? para mostrar con posterioridad las imágenes en la ubicación que le ha indicado el sensor.
De esta manera si hemos cargado un sensor de cámara cónica, será función del sensor saber las operaciones necesarias para transformar esa coordenada terreno en las coordenadas píxel para la imagen izquierda y derecha, y si el sensor es satelital, pues será su función saber las operaciones (que son completamente distintas que las del sensor de cámara cónica) para transformar dichas coordenadas a píxel. Al estar diseñado de esta manera, no es necesario modificar la aplicación principal si en un futuro se añade un nuevo sensor.
Una vez explicado esto, podemos profundizar un poco más en cómo se realiza este paso:
- Si el modelo fotogramétrico tiene asignado una orientación (absoluta, afín, ...) transforma la coordenada terreno mediante dicha orientación (absoluta o afín) obteniendo lo que vamos a denominar coordenada a enviar al sensor. Si el modelo fotogramétrico no tiene asignada una orientación, se modifica la coordenada a enviar al sensor para que coincida con la coordenada terreno.
- La ventana fotogramétrica utiliza la coordenada a enviar al sensor para preguntarle al sensor cargado (sensor ortofoto, cámara cónica estereoscópica, satelital, ADS,...) por la posición donde debe mostrar las imágenes en la ventana fotogramétrica.
- El sensor responde con las coordenadas pixel a mostrar.
- La ventana fotogramétrica muestra las imágenes en pantalla asegurándose de que las coordenadas pixel devueltas por el sensor estén en el centro de la ventana.
Paso 3: Notificar a la ventana de dibujo que el usuario ha realizado alguna acción:
Si hay una ventana de dibujo abierta:
- Comunicar a la ventana de dibujo que el usuario ha realizado alguna acción.
Componentes que tienen sistemas de referencia de coordenadas
En el esquema explicado anteriormente hay tres componentes que tienen su propio sistema de referencia de coordenadas:
- La coordenada terreno. A su sistema de referencia de coordenadas lo denominaremos Sistema de coordenadas de la Orientación.
- El sensor. A su sistema de referencia de coordenadas lo denominaremos Sistema de referencia de coordenadas Sensor.
- La ventana de dibujo. A su sistema de referencia de coordenadas lo denominaremos Sistema de referencia de coordenadas Ventana de dibujo.
Como estos sistemas de referencia de coordenadas no tienen por qué ser idénticos, Digi3D.NET realiza transformaciones de sistemas de referencia de coordenadas entre ellos, de modo que los pasos anteriores en realidad son así:
Mostrar imágenes en una posición:
- Si el modelo fotogramétrico tiene asignado una orientación (absoluta, afín, ...) transforma la coordenada terreno mediante dicha orientación (absoluta o afín) obteniendo lo que vamos a denominar coordenada a enviar al sensor. Si el modelo fotogramétrico no tiene asignada una orientación, se modifica la coordenada a enviar al sensor para que coincida con la coordenada terreno.
- Se transforma la coordenada obtenida en el punto anterior del sistema de referencia de coordenadas de la orientación al sistema de referencia de coordenadas del sensor.
- La ventana fotogramétrica utiliza la coordenada a enviar al sensor para preguntarle al sensor cargado (sensor ortofoto, cámara cónica estereoscópica, satelital, ADS,...) por la posición donde debe mostrar las imágenes en la ventana fotogramétrica.
- El sensor responde con las coordenadas pixel a mostrar.
- La ventana fotogramétrica muestra las imágenes en pantalla asegurándose de que las coordenadas pixel devueltas por el sensor estén en el centro de la ventana.
Notificar a la ventana de dibujo que el usuario ha realizado alguna acción:
Si hay una ventana de dibujo abierta:
- Transformar la coordenada terreno del sistema de referencia de coordenadas de la orientación al sistema de referencia de coordenadas de la ventana de dibujo.
- Comunicar a la ventana de dibujo que el usuario ha realizado alguna acción enviándole a la ventana de dibujo las coordenadas obtenidas en el punto anterior.