#include "malloc.h"
#include "2Dlib.h"
#include "saphira.h"
#include "process.h"
#include "pt_poly.h"
#include "mil.h"
#include "conio.h"
Ir al código fuente de este archivo.
Clases | |
struct | nodo |
Estructura de datos que contiene la información de uno de los puntos del contorno de un objeto de mundo. Más... | |
struct | poligono |
Estructura de datos que contiene la información de un objeto de mundo. Más... | |
struct | posicion |
Estructura de datos que contiene la información del contorno del robot virtual. Más... | |
struct | vision |
Estructura de datos que contiene la información para representar el cono de visión de las cámaras. Más... | |
struct | zona |
Estructura de datos que define la ventana de resolución. Más... | |
Definiciones | |
#define | DLL_EXPORT extern "C" __declspec(dllexport) |
#define | DLL_IMPORT extern "C" __declspec(dllimport) |
#define | STD __stdcall |
#define | PI 3.141592 |
#define | LISTA_MAX 100 |
#define | CHILDBUFFER_WIDTH 210 |
#define | CHILDBUFFER_HEIGHT 210 |
#define | MOVIMIENTO 0 |
#define | ESTACIONARIO 1 |
Tipos definidos | |
typedef double** | matriz |
typedef struct nodo | nodo |
Estructura de datos que contiene la información de uno de los puntos del contorno de un objeto de mundo. Más... | |
typedef nodo* | nodo_ptr |
typedef poligono* | lista |
Funciones | |
DLL_EXPORT void STD | AbrirMapaMIL (HWND WindowHandle, char *FICHERO, char *DIRECTORIO_OBJETOS, long *alto, long *ancho, double escala, double *PosX, double *PosY, double *Heading, MIL_ID sys, MIL_ID *disp, MIL_ID *mapa) |
Abre un mapa predefinido por el usuario. Más... | |
DLL_EXPORT void STD | NuevoMapaMIL (HWND WindowHandle, long alto, long ancho, double escala, MIL_ID sys, MIL_ID *disp, MIL_ID *mapa) |
Abre un mapa en blanco. Más... | |
DLL_EXPORT void STD | SalvarMapaMIL (char *Filename) |
Esta función salva en disco una imagen del buffer de refresco en formato BMP. Más... | |
DLL_EXPORT void STD | RecalcularMapaMIL (double escala, double DesplazamientoH, double DesplazamientoV, double AnguloGiro, long EjeGiroX, long EjeGiroY, int modo) |
Recalcula el mapa. Más... | |
DLL_EXPORT void STD | CerrarMapaMIL (MIL_ID disp) |
Desalocata los buffers utilizados para representar un mapa, asi como la estructura de datos del mundo. Más... | |
DLL_EXPORT void STD | UsarZonaAltaResolucion (void) |
Habilita el uso de la ventana de Resolución y Repinta el mundo junto con la ventana. Más... | |
DLL_EXPORT void STD | AjustarZonaAltaResolucion (long XSupIzq, long YSupIzq, long XInfDrch, long YInfDrch) |
Ajusta el tamaño de la ventana de resolución. Más... | |
DLL_EXPORT void STD | NoUsarZonaAltaResolucion (void) |
Deshabilita el uso de la ventana de resolución y repinta el mundo pero sin la ventana. Más... | |
DLL_EXPORT void STD | PosicionarRobotVirtual (double x, double y, double Angulo, double AnguloCamaras, long modo) |
Define la forma del robot virtual y lo posiciona por primera en el mapa. Más... | |
DLL_EXPORT void STD | ActualizarVista (double x, double y, double Angulo,double AnguloCamaras, long modo) |
Actualiza la vista del mundo. Más... | |
DLL_EXPORT void STD | ObtenerLecturaSonares (void) |
Actualiza la lista de las lecturas de los sonares y los pinta. Más... | |
DLL_EXPORT void STD | VaciarBufferLecturasSonares (void) |
Vacia la listas de lecturas tanto las internas de Saphira,como las de la propia aplicación. Más... | |
DLL_EXPORT void STD | TransfMundoDispositivo (double PosXMundo, double PosYMundo, double *PosXDisp, double *PosYDisp) |
Transforma un punto de coordenadas de Mundo a coordenadas de dispositivo teniendo en cuenta la matriz de cambio de base que ya hay calculada. Más... | |
DLL_EXPORT void STD | TransfDispositivoMundo (double PosXDisp, double PosYDisp, double *PosXMundo, double *PosYMundo) |
Transforma un punto de coordenadas de Mundo a coordenadas de dispositivo teniendo en cuenta la matriz de cambio de base que ya hay calculada. Más... | |
DLL_EXPORT void STD | SplineTracer (double x1, double y1, double x2, double y2) |
Traza una recta entre dos puntos dados en coordenadas de mundo. Más... | |
DLL_EXPORT void STD | PintarPuntoTrayectoria (double x1, double y1) |
Pinta un punto rojo en un punto dado en coordenadas de mundo. Más... | |
matriz | IniciarMatrizCambioBase (matriz *giro, matriz *trasl, matriz *simetria_x,double AlturaImagen, double DesplazamientoH, double DesplazamientoV, double AnguloGiro, long EjeGiroX, long EjeGiroY) |
Reserva espacio en memoria para todas las matrices necesarias en el calculo de transformaciones 2D del programa.Tambien calcula la matriz de cambio de base necesaria para transformar un punto de mundo en un punto de dispositivo. Más... | |
void | IniciarMatrices (matriz *giro, matriz *trasl, matriz *MatrizRobot, matriz *matrizcamaras, Pt2D *PosicionActual, double AnguloActual, double AnguloCamaras) |
Reserva espacio en memoria para las matrices que almacenan las trasformaciones 2D necesarias para representar el robot y la información de las camaras por primera vez. Más... | |
void | IniMatrizCamaras (matriz PosCamaras, matriz giro, matriz traslacion, double angulo) |
Calcula el valor de la matriz necesaria para pasar los puntos de coordenadas de las cámaras a coordenadas de mundo. Más... | |
void | PintaRobot (matriz MatrizRobot) |
Pinta el robot en el mapa. Más... | |
void | PintaCamaras (matriz MatrizCamaras) |
Pinta las cámaras y su cono de visión en el mapa. Más... | |
void | PintaZona (zona ZonaAltaDensidad) |
Pinta la zona de alta resolución. Más... | |
posicion | CalculaPosRobot (posicion robot, matriz matrix) |
Transforma las coordenadas de los puntos que definen el robot virtual. Más... | |
vision | CalculaPosCamaras (vision camara, matriz matrix) |
Transforma las coordenadas de los puntos que definen las camaras. Más... | |
void | s_actualitzar (void) |
Actualiza la lista de lecturas de sonar a representar en el mapa. Más... | |
bool | BuscarLectura (Pt2D Valor) |
Comprueba si un punto concreto existe en la lista de lecturas de sonar. Más... | |
void | BorrarRobot (void) |
void | ComprobarPosChildBuffer (void) |
void | LeerMundo (lista *objetos, char *Mapa, char *DirectorioObjetos, Pt2D *lugar,double *Horientacion) |
Lee la información de un fichero de mundo. Más... | |
void | BorrarMundo (lista *objetos) |
Desalocata de memoria el mundo almacanado. Más... | |
lista | CrearLista () |
Reserva espacio de memoria para un objeto de mundo. Más... | |
void | BorrarLista (lista Lista_a_Borrar) |
Libera el espacio de memoria ocupado por un objeto de mundo concreto. Más... | |
lista | AnadirNodo (lista l, Pt2D valor) |
Añade un nodo al contorno que define un objeto de mundo. Más... | |
void | BorrarNodo (nodo_ptr Nodo_a_Borrar) |
Libera el espacio de memoria ocupado por un nodo concreto. Más... | |
nodo_ptr | CrearNodo () |
Reserva espacio de memoria para un nodo. Más... | |
void | PintarMundo (lista *objetos, int modo) |
Pinta el mapa del mundo. Más... | |
void | PintarObjeto (lista objeto, int modo) |
Pinta un objeto en el plano. Más... | |
void | RellenarObjeto (lista objeto, MIL_ID buffer, int color) |
Pinta el interior de un objeto de un color determinado. Más... | |
bool | Punto_en_Buffer (Pt2D Punto) |
Comprueba si un punto esta dentro de un buffer. Más... | |
DLL_EXPORT void STD | GrabarBuffer () |
Función para debugar. Más... | |
Variables | |
FILE* | in |
FILE * | map |
MIL_ID | BufferBackground |
MIL_ID | MilUnderlayBuffer |
MIL_ID | disp2 |
MIL_ID | temp |
MIL_ID | WorkingDisplay |
MIL_ID | WorkingBuffer |
MIL_ID | RefreshDisplay |
MIL_ID | RefreshBuffer |
MIL_ID | SonaresDisplay |
MIL_ID | SonaresBuffer |
matriz | Giro |
matriz | Traslacion |
matriz | Simetria_X |
matriz | Base |
matriz | InversaBase |
matriz | MatrizRobot |
matriz | MatrizCamaras |
matriz | MatrizObjetos |
Pt2D | PosicionActual |
posicion | Robot |
posicion | Coordenadas |
vision | camaras |
zona | ZonaAltaDensidad |
bool | PararSonares = false |
double | ESCALA_PixPorMM |
double | AlturaImagen |
long | TransparentColor |
long New_PosX, New_PosY;. | |
long | Buffer_Width |
long | Buffer_Height |
Pt2D | SonarBuffer [3 *CBUF_LEN] |
int | SonarBufferIndex |
Pt2D | ListaFIFO [LISTA_MAX] |
int | Indice1 = 0 |
int | Indice2 = 0 |
Pt2D | old_sonar_lectures [LISTA_MAX] |
int | IndiceBorrado1 = 0 |
int | IndiceBorrado2 = 0 |
bool | BorrarLecturasViejas = false |
lista | Mundo [30] |
|
Definición en la línea 15 del archivo VirtualRobot.h. |
|
Definición en la línea 14 del archivo VirtualRobot.h. |
|
Definición en la línea 9 del archivo VirtualRobot.h. |
|
Definición en la línea 10 del archivo VirtualRobot.h. |
|
Definición en la línea 17 del archivo VirtualRobot.h. |
|
Definición en la línea 13 del archivo VirtualRobot.h. |
|
Definición en la línea 16 del archivo VirtualRobot.h. |
|
Definición en la línea 12 del archivo VirtualRobot.h. |
|
Definición en la línea 11 del archivo VirtualRobot.h. |
|
Definición en la línea 123 del archivo VirtualRobot.h. |
|
Definición en la línea 19 del archivo VirtualRobot.h. |
|
Estructura de datos que contiene la información de uno de los puntos del contorno de un objeto de mundo. Esta estructura almacena uno de los puntos del contorno de un objeto de mundo, y un apuntador al siguiente nodo del contorno. Si es el último punto del contorno del objeto, el apuntador al siguiente nodo apunta a NULL |
|
Definición en la línea 103 del archivo VirtualRobot.h. |
|
Abre un mapa predefinido por el usuario. El realidad esta función abre un mapa en blanco, lee el fichero de mundo especificado, y luego pinta el mundo.
Definición en la línea 30 del archivo VirtualRobot.cpp. |
|
Actualiza la vista del mundo. Pinta el mapa, el robot, las camaras, la ventana de resolución y las lecturas de los sonares
Definición en la línea 323 del archivo VirtualRobot.cpp. Referenciado por PosicionarRobotVirtual(). |
|
Ajusta el tamaño de la ventana de resolución.
Definición en la línea 227 del archivo VirtualRobot.cpp. |
|
Añade un nodo al contorno que define un objeto de mundo. Esta función reserva espacio de memoria para un nodo, y lo añade al contorno de un objeto mundo concreto. Si el objeto de mundo no existe, se crea y se le asigna como primer punto del contorno, el nodo que se pretendía alocatar.
Definición en la línea 1082 del archivo VirtualRobot.cpp. Referenciado por LeerMundo(), and PintarObjeto(). |
|
Libera el espacio de memoria ocupado por un objeto de mundo concreto.
Definición en la línea 1055 del archivo VirtualRobot.cpp. Referenciado por BorrarMundo(), and PintarObjeto(). |
|
Desalocata de memoria el mundo almacanado.
Definición en la línea 1026 del archivo VirtualRobot.cpp. Referenciado por CerrarMapaMIL(). |
|
Libera el espacio de memoria ocupado por un nodo concreto.
Definición en la línea 1123 del archivo VirtualRobot.cpp. Referenciado por BorrarLista(). |
|
|
|
Comprueba si un punto concreto existe en la lista de lecturas de sonar.
Definición en la línea 923 del archivo VirtualRobot.cpp. Referenciado por s_actualitzar(). |
|
Transforma las coordenadas de los puntos que definen las camaras. Transforma las coordenadas de los puntos que definen la forma de las cámaras y su cono de visión, en función de una matriz de transformación "matrix"
Definición en la línea 831 del archivo VirtualRobot.cpp. Referenciado por PintaCamaras(). |
|
Transforma las coordenadas de los puntos que definen el robot virtual. Transforma las coordenadas de los puntos que definen el contorno del robot virtual, en función de una matriz de transformación "matrix"
Definición en la línea 800 del archivo VirtualRobot.cpp. Referenciado por PintaRobot(). |
|
Desalocata los buffers utilizados para representar un mapa, asi como la estructura de datos del mundo.
Definición en la línea 187 del archivo VirtualRobot.cpp. |
|
|
|
Reserva espacio de memoria para un objeto de mundo.
Definición en la línea 1043 del archivo VirtualRobot.cpp. |
|
Reserva espacio de memoria para un nodo.
Definición en la línea 1111 del archivo VirtualRobot.cpp. |
|
Función para debugar. Innecesaria para el funcionamiento del programa Definición en la línea 533 del archivo VirtualRobot.cpp. |
|
Calcula el valor de la matriz necesaria para pasar los puntos de coordenadas de las cámaras a coordenadas de mundo.
Definición en la línea 663 del archivo VirtualRobot.cpp. Referenciado por ActualizarVista(), and IniciarMatrices(). |
|
Reserva espacio en memoria para las matrices que almacenan las trasformaciones 2D necesarias para representar el robot y la información de las camaras por primera vez.
Definición en la línea 632 del archivo VirtualRobot.cpp. Referenciado por PosicionarRobotVirtual(). |
|
Reserva espacio en memoria para todas las matrices necesarias en el calculo de transformaciones 2D del programa.Tambien calcula la matriz de cambio de base necesaria para transformar un punto de mundo en un punto de dispositivo.
Definición en la línea 582 del archivo VirtualRobot.cpp. Referenciado por ActualizarVista(), NuevoMapaMIL(), and RecalcularMapaMIL(). |
|
Lee la información de un fichero de mundo. Lee la información contenida en un fichero de mundo y la almacena en memoria.
Definición en la línea 953 del archivo VirtualRobot.cpp. Referenciado por AbrirMapaMIL(). |
|
Deshabilita el uso de la ventana de resolución y repinta el mundo pero sin la ventana.
Definición en la línea 249 del archivo VirtualRobot.cpp. |
|
Abre un mapa en blanco. En esta función es donde se alocatan todos los buffers necesarios para el funcionamiento del programa.Tambien se calcula la matriz de cambio de base en función de los parámetros del mapa
Definición en la línea 69 del archivo VirtualRobot.cpp. Referenciado por AbrirMapaMIL(). |
|
Actualiza la lista de las lecturas de los sonares y los pinta.
Definición en la línea 380 del archivo VirtualRobot.cpp. |
|
Pinta las cámaras y su cono de visión en el mapa. Teniendo en cuenta la posición y orientación de las cámaras que define la matriz "MatrizCamaras" se pintan las cámaras y su cono de visión.
Definición en la línea 742 del archivo VirtualRobot.cpp. Referenciado por ActualizarVista(), AjustarZonaAltaResolucion(), NoUsarZonaAltaResolucion(), RecalcularMapaMIL(), and UsarZonaAltaResolucion(). |
|
Pinta el robot en el mapa. Teniendo en cuenta la posición y orientación del robot que define la matriz "MatrizRobot", se pinta el robot en el mapa
Definición en la línea 706 del archivo VirtualRobot.cpp. Referenciado por ActualizarVista(), AjustarZonaAltaResolucion(), NoUsarZonaAltaResolucion(), RecalcularMapaMIL(), and UsarZonaAltaResolucion(). |
|
Pinta la zona de alta resolución. Pinta la zona de alta resolución el mapa si asi lo determina la estructura "ZonaAltaDensidad"
Definición en la línea 768 del archivo VirtualRobot.cpp. Referenciado por ActualizarVista(), AjustarZonaAltaResolucion(), RecalcularMapaMIL(), and UsarZonaAltaResolucion(). |
|
Pinta el mapa del mundo.
Definición en la línea 1136 del archivo VirtualRobot.cpp. Referenciado por AbrirMapaMIL(), ActualizarVista(), and RecalcularMapaMIL(). |
|
Pinta un objeto en el plano.
Definición en la línea 1158 del archivo VirtualRobot.cpp. Referenciado por PintarMundo(). |
|
Pinta un punto rojo en un punto dado en coordenadas de mundo. Este punto se repesentará tanto en el buffer de visible como en el de refresco, de manera que hasta que no se recalcule el mapa aparecerá en la imagen.
Definición en la línea 516 del archivo VirtualRobot.cpp. |
|
Define la forma del robot virtual y lo posiciona por primera en el mapa.
Definición en la línea 269 del archivo VirtualRobot.cpp. |
|
Comprueba si un punto esta dentro de un buffer.
Definición en la línea 1327 del archivo VirtualRobot.cpp. Referenciado por RellenarObjeto(). |
|
Recalcula el mapa. Recalcula la representación del mapa en función de los parámetros de escala, desplazamiento, giro del mapa, etc...
Definición en la línea 148 del archivo VirtualRobot.cpp. |
|
Pinta el interior de un objeto de un color determinado. Esta función busca un punto interno a un objeto, y lo utiliza como punto semilla para rellenar el objeto de un color determinado.
Definición en la línea 1240 del archivo VirtualRobot.cpp. Referenciado por PintarObjeto(). |
|
Esta función salva en disco una imagen del buffer de refresco en formato BMP.
Definición en la línea 121 del archivo VirtualRobot.cpp. |
|
Traza una recta entre dos puntos dados en coordenadas de mundo. Esta recta se trazará tanto en el buffer de visible como en el de refresco, de manera que hasta que no se recalcule el mapa aparecerá en la imagen.
Definición en la línea 491 del archivo VirtualRobot.cpp. |
|
Transforma un punto de coordenadas de Mundo a coordenadas de dispositivo teniendo en cuenta la matriz de cambio de base que ya hay calculada.
Definición en la línea 467 del archivo VirtualRobot.cpp. |
|
Transforma un punto de coordenadas de Mundo a coordenadas de dispositivo teniendo en cuenta la matriz de cambio de base que ya hay calculada.
Definición en la línea 445 del archivo VirtualRobot.cpp. |
|
Habilita el uso de la ventana de Resolución y Repinta el mundo junto con la ventana.
Definición en la línea 203 del archivo VirtualRobot.cpp. |
|
Vacia la listas de lecturas tanto las internas de Saphira,como las de la propia aplicación.
Definición en la línea 402 del archivo VirtualRobot.cpp. |
|
Actualiza la lista de lecturas de sonar a representar en el mapa. Recopila la información de las lecturas de los sonares contenida en los 3 buffers de Saphira, cambia sus coordenadas para que esten en coordenadas de la base solidaria al robot, y las almacena en la lista de lecturas de sonar a representar en el mapa.
Definición en la línea 852 del archivo VirtualRobot.cpp. |
|
Definición en la línea 142 del archivo VirtualRobot.h. |
|
Definición en la línea 134 del archivo VirtualRobot.h. |
|
Definición en la línea 156 del archivo VirtualRobot.h. |
|
Definición en la línea 129 del archivo VirtualRobot.h. |
|
Definición en la línea 145 del archivo VirtualRobot.h. |
|
Definición en la línea 145 del archivo VirtualRobot.h. |
|
Definición en la línea 138 del archivo VirtualRobot.h. |
|
Definición en la línea 142 del archivo VirtualRobot.h. |
|
Definición en la línea 134 del archivo VirtualRobot.h. |
|
Definición en la línea 152 del archivo VirtualRobot.h. |
|
Definición en la línea 152 del archivo VirtualRobot.h. |
|
Definición en la línea 155 del archivo VirtualRobot.h. |
|
Definición en la línea 155 del archivo VirtualRobot.h. |
|
Definición en la línea 134 del archivo VirtualRobot.h. |
|
Definición en la línea 151 del archivo VirtualRobot.h. |
|
Definición en la línea 135 del archivo VirtualRobot.h. |
|
Definición en la línea 136 del archivo VirtualRobot.h. |
|
Definición en la línea 135 del archivo VirtualRobot.h. |
|
Definición en la línea 129 del archivo VirtualRobot.h. |
|
Definición en la línea 159 del archivo VirtualRobot.h. |
|
Definición en la línea 141 del archivo VirtualRobot.h. |
|
Definición en la línea 137 del archivo VirtualRobot.h. |
|
Definición en la línea 132 del archivo VirtualRobot.h. |
|
Definición en la línea 132 del archivo VirtualRobot.h. |
|
Definición en la línea 138 del archivo VirtualRobot.h. |
|
Definición en la línea 134 del archivo VirtualRobot.h. |
|
Definición en la línea 148 del archivo VirtualRobot.h. |
|
Definición en la línea 149 del archivo VirtualRobot.h. |
|
Definición en la línea 133 del archivo VirtualRobot.h. |
|
Definición en la línea 133 del archivo VirtualRobot.h. |
|
long New_PosX, New_PosY;.
Definición en la línea 144 del archivo VirtualRobot.h. |
|
Definición en la línea 134 del archivo VirtualRobot.h. |
|
Definición en la línea 131 del archivo VirtualRobot.h. |
|
Definición en la línea 131 del archivo VirtualRobot.h. |
|
Definición en la línea 140 del archivo VirtualRobot.h. |
|
Definición en la línea 139 del archivo VirtualRobot.h. |
|
Definición en la línea 130 del archivo VirtualRobot.h. |
|
Definición en la línea 21 del archivo VirtualRobot.h. |
|
Definición en la línea 21 del archivo VirtualRobot.h. |
|
Definición en la línea 154 del archivo VirtualRobot.h. |
|
Definición en la línea 130 del archivo VirtualRobot.h. |