
- Tengo una base de datos, una especie de agenda en donde cada persona almacena a sus conocidos en 4 categorias: FAMILIA, AMIGOS, TRABAJO Y OTROS. Asi que Juan puede tener en su agenda a su esposa a sus amigos y conocidos del trabajo, tambien a algunos vecinos. Con esos datos yo debo generar una representacion partiendo del SUJETO PRINCIPAL a sus conocidos.
Busque algun componente de graficos de este tipo y resulta que solo los hay para HTML5 y otras yerbas.... pero para Delphi no existen de ese tipo, asi que decidi probar GLScene, y construyendo de forma manual pude ver que eso es posible, incluso puedo identificar cada elemento por su nombre.
El detalle surge cuando lo hago de forma manual es decir, cuando inserto un cubo y otros 4 a su alrededor para poder ubicar sus coordenadas, para ello tengo 4 Listview (FAMILIA, AMIGOS, TRABAJO Y OTROS) para que fuera mas facil de entender mi idea utilizo a los personajes de los SIMPSON que pues la mayoria aunque sea poco pero los conocemos. Estos Listview representan la base de datos MySQL (no lo puse con conexion para que sea mas facil compartir mi idea y codigo).
En mi ejemplo (Que adjunto) como pude, logro cargar el cubo del personaje principal, y los cuatro de referencia, hice un pequeño procedimiento para cada categoria, que toma las corrdenadas de su cubo categoria y modifica su ubicacion de forma descendente es decir le resto Y cantidad a la cordenada del original y recolecto los datos del listview como es el nombre, asi en la carpeta IMAGENES esta una imagen con el nombre del personaje para cargarlos en las caras del cubo.
Hasta aqui todo ya lo implemente... pero el problema es que necesito poder crear los objetos de una manera mas adecuada o poder darle un nombre a cada cubo que me permita identificarlo, es decir cuando le de doble click a cualquier cubo pueda saber cual es su identificador, ese dato me ayudaria a saber sus cordenadas de posicion XYZ y podria abrir una pantalla llamando a la base filtrando por su ID y ver su informacion.
Encontre un ejemplo en las demos de GLScene donde cargan un par de objetos pero lo hacen de forma manual con el administrador de elemntos de GLScene y al tocarlo te dice su nombre, pero si lo cargo de forma manual ese codigo solo me muestra el nombre en blanco, por lo que asumo que no estoy asignando un nombre real a cada objeto solo le digo al programa que me lo muestre y nada mas.
Mi idea es que si logro agregar los cubos con un nombre o ID que yo le asigne y pueda acceder con ello a su informacion como su posicion, podria avanzar mas y poder cargar de cada uno de los PERSONAJES, su lista de conocidos, inventar algo sencillo como recorrer la tabla y ver si hay alguna coincidencia con algun IDentificador ya creado (cubo del personaje) si existe solo crear una linea de su posicion a la del cubo encontrado y si no existe que cree el cubo y le envie la linea.
Como es en 3D pues lo importante es que los cubos no esten pegados si no que se alejen o acerquen lo suficiente para no estar amontonados o no tanto por eso lo hice en vertical hacia abajo pero me gustaria colocarlos de manera aleatoria como si fueran satelites alrededor del personaje central y lanzar las lineas entre si.
Ojala me puedan orientar, adjunto mi codigo para que lo puedan ver en "vivo" y se puedan dar una idea de mas o menos como lo estoy haciendo y si puedo hacer lo que les comente, saludos