animación 3d del raquis cervical. aplicación para la valoración de cervicalgia

Upload: pedro-ignacio-bene-torogonzalez

Post on 13-Jul-2015

536 views

Category:

Documents


2 download

TRANSCRIPT

PFC: Animacin 3D del Raquis Cervical.Aplicacin para la Valoracin de Cervicalgias

Febrero 2010

Pablo Silvestre Soler

Tutor en la empresa: Tutor en ETSINF:

Carlos Chirivella Moreno Javier Lluch Crespo

NDICEAgradecimientos...................................................................................... Resumen................................................................................................. 1.- Introduccin...................................................................................... 1.1.- Origen del trabajo..................................................................

5 6

88

1.2.- Antecedentes generales.......................................................... 9 1.2.1.- Informacin anatmica: Cervicalgias............................... 9 1.2.2.- Sistemas de valoracin funcional.................................... 11 1.3.- Antecedentes tcnicos............................................................ 15 1.3.1.- Modeladores grficos 3D............................................... 16 1.3.1.1.- Blender.......................................................... 16 1.3.1.2.- Maya............................................................. 17 1.3.1.3.- 3ds Max......................................................... 18 1.3.2.- Motores grficos 3D...................................................... 19 1.3.2.1.- Ogre.............................................................. 19 1.3.2.2.- 3D Game Studio.............................................. 22 1.3.2.3.- Crystal Space.................................................. 23 1.4.- Objetivos del trabajo............................................................... 1.5.- Plan de trabajo.......................................................................

25 26

2.- Material y mtodos...........................................................................

28

2.1.- Requerimientos....................................................................... 31 2.1.1.- Gestin de ficheros de prueba........................................ 32 2.1.1.1.- Abrir fichero de prueba..................................... 33 2.1.1.2.- Borrar fichero de prueba................................... 34 2.1.2.- Visualizacin de la animacin......................................... 35 2.1.2.1.- Cargar prueba................................................. 36 2.1.3.- Modificacin del momento de animacin.......................... 37 2.1.3.1.- Reproducir prueba........................................... 38 2.1.3.2.- Rebobinar prueba............................................ 39 2.1.3.3.- Pausar prueba................................................. 40 2.1.3.4.- Cambiar posicin de reproduccin de prueba........ 41 2.1.3.5.- Limitar rango de reproduccin........................... 42 2.1.4.- Modificacin de cmaras................................................ 43 2.1.4.1.- Cambiar cmara.............................................. 44 2.1.4.2.- Cambiar posicin............................................. 45 2.1.4.3.- Cambiar orientacin......................................... 46

2.2.- Diseo de la aplicacin............................................................. 47 2.2.1.- Arquitectura del proyecto.............................................. 47 2.2.1.1.- Animacin Ogre............................................... 48 2.2.1.2.- Interfaz.......................................................... 48 2.2.1.3.- Recursos externos........................................... 48 2.2.2.- Arquitectura de clases................................................... 49 2.2.2.1.- Clases Ogre.................................................... 49 2.2.2.2.- Clases Interfaz................................................ 51 2.2.2.3.- Clases externas............................................... 51 2.2.3.- Ficheros de prueba de pacientes..................................... 52 2.2.3.1.- Tipo y nomenclatura........................................ 52 2.2.3.2.- Estructura del contenido................................... 55 2.2.4.- Interfaz de usuario....................................................... 56 2.2.4.1.- Diseo y elementos.......................................... 57 2.3.- Desarrollo de la aplicacin......................................................... 60 2.3.1.- Blender....................................................................... 60 2.3.1.1.- Modelado de la malla........................................ 62 2.3.1.2.- Esqueleto....................................................... 64 2.3.1.3.- Mapeado de texturas........................................ 66 2.3.1.4.- Exportacin del modelo.................................... 67 2.3.2.- Ogre.......................................................................... 72 2.3.2.1.- Cargar el modelo............................................. 72 2.3.2.2.- Aadir materiales al modelo texturizado.............. 76 2.3.2.3.- Animacin del modelo....................................... 78 2.3.2.4.- Interaccin con el usuario................................. 81 2.3.3.- Visual Studio 2005: MFC............................................... 83 2.3.3.1.- Desarrollo bsico de la interfaz.......................... 83 2.3.3.2.- Gestin de ficheros de pacientes........................ 87 2.3.3.3.- Cargar animacin de Ogre................................. 88 2.3.3.4.- Capturar eventos de la interfaz.......................... 91 2.3.3.5.- Measurement Studio........................................ 94

3.- Resultados y discusin...................................................................

100101

3.1.- Anlisis de resultados obtenidos..............................................

4.- Conclusiones..................................................................................

109111

BIBLIOGRAFA.....................................................................................

Listado de ilustraciones..............................................................................114 ANEXO.................................................................................................. 116 a) Manual del instalador................................................................. 116 b) Manual de usuario..................................................................... 123

AGRADECIMIENTOSQuiero dar mi ms sincero agradecimiento al personal del Instituto de Biomecnica de Valencia (IBV), centro que me ha permitido desarrollar este proyecto final de carrera en sus instalaciones y me ha formado y guiado para llevarlo a cabo con xito. Tambin debo agradecer a mis tutores de proyecto, tanto de la Facultad de Informtica (ETSINF) de la Universidad Politcnica de Valencia como del IBV, sus consejos y directrices que han permitido trazar una lnea de proyecto marcada por la fluidez en la elaboracin de dicha tarea. Gracias a todos los que han hecho esto posible.

Animacin 3D del Raquis Cervical

5

RESUMENEl proyecto definido en la memoria se engloba dentro del mbito del diagnstico a travs de una valoracin funcional y, de forma ms concreta, en la valoracin de cervicalgias. Se trata de una herramienta de apoyo que otorga, a la persona encargada de realizar un diagnstico, de un punto de vista alejado de la rigidez de representacin de los datos, pero totalmente fiel a los mismos. Esto se basa en una gran premisa: una imagen vale ms que mil palabras. Extrapolar esta afirmacin al proyecto actual es inmediato: una animacin en tres dimensiones en muchas ocasiones es mucho ms til de cara al usuario de un programa que un gran compendio de datos numricos. La forma y velocidad en la que la informacin es recibida es totalmente distinta. Mientras que para sacar conclusiones de unos datos es preciso realizar un procesamiento y una interpretacin de los mismos, una animacin permite obtener una conclusin de forma prcticamente instantnea. Sin ser un experto cualificado en la materia a travs de una animacin se puede comprobar si el movimiento realizado por un paciente es relativamente normal o no, hecho que en algunas ocasiones no es posible al contemplar los datos en primera instancia. Para que la animacin tenga una fsica realista, se emplean ngulos calculados en funcin del tiempo, a travs de unos marcadores que se le colocan al paciente en puntos estratgicos y que permiten describir de forma matemtica los movimientos cervicales. Por tanto mediante la interpolacin de estos ngulos, se obtiene un movimiento fluido sobre un modelo en tres dimensiones, que dispone de la estructura necesaria para describir de forma precisa los movimientos del raquis cervical. Otro aspecto a tener en cuenta es la posibilidad de interaccin con la animacin. A diferencia de un vdeo en el que slo es posible cambiar el momento de reproduccin, la aplicacin aade una variable ms: la posibilidad de cambiar la orientacin y posicin espacial de la cmara que permite la visualizacin de la animacin. De esta forma es posible comprobar desde la mejor posicin posible un determinado gesto o movimiento realizado por el paciente sin necesidad de que repita la prueba o se coloque una cmara en la posicin de visualizacin deseada. En consecuencia y tras establecer las bases que describen el proyecto, los contenidos de la memoria estn estructurados siguiendo un orden cronolgico y causal argumentando los pasos para la realizacin del mismo. En primer lugar se describe el mbito en el que se encapsula el tema del proyecto elegido (cervicalgias y sistemas de valoracin funcional) y se analizan las herramientas que permiten desarrollar dicha actividad de la mejor forma posible. A continuacin, una vez elegidas las herramientas para realizar el proyecto (Ogre como motor grfico y Blender como modelador 3D), se plantea una serie requerimientos que se deben cumplir que conforman la funcionalidad bsica de que dispondr la aplicacin a crear. El siguiente paso es el anlisis y la justificacin de diseo, formato, nomenclatura y otros aspectos vinculados con el aspecto y la estructura de la aplicacin. En este punto se define la arquitectura general del proyecto y cmo se organiza la informacin, con el fin ltimo de mejorar la usabilidad y hacerla atractiva para el usuario.

Animacin 3D del Raquis Cervical

6

Tras establecer un diseo, se analiza detenidamente y de forma lineal todas las estrategias y pasos seguidos para llevar a cabo la aplicacin. Se parte de aspectos y opciones relativas al modelado grfico con Blender, la utilizacin del modelo en Ogre y, por ltimo, su vinculacin con una interfaz funcional. Los ltimos pasos de la memoria defienden, muestran y analizan los resultados que se pueden obtener con la utilizacin de esta aplicacin. Se muestra la validez de dicha aplicacin, basndose en ejemplos para detectar posibles anomalas en pacientes con algn tipo de afeccin cervical. Posteriormente tambin se incluyen posibles ampliaciones consideradas y conclusiones a las que se ha llegado tras la realizacin de la misma. Por ltimo se incluye el conjunto de documentos y enlaces que se han empleado para llevar a cabo el proyecto, as como un anexo con un manual de instalacin de la aplicacin y un manual de usuario explicando los aspectos bsicos para utilizar eficientemente la aplicacin.

Animacin 3D del Raquis Cervical

7

INTRODUCCIN

Origen del trabajo

1.- Introduccin1.1.- Origen del trabajoLas cervicalgias, dolor en la regin cervical, son una afeccin muy frecuente en la poblacin actual. Alrededor del 50% de la poblacin adulta sufre en algn momento de su vida una cervicalgia. Son descritas en los cdigos CIE-9 en el epgrafe 723 y segn el manual elaborado por la Seguridad Social en el ao 2008, sobre tiempos estndar de baja laboral, el tiempo medio que un trabajador permanece de baja en Espaa se sita en los 43 das, y en relacin a las cervicalgias se sita en torno a 20 das, lo que repercute sobre el coste econmico que deriva de dicha situacin tanto a nivel personal como empresarial. Las causas para su aparicin tienen diferentes orgenes, pero las ms frecuentes derivan de mantener una postura incorrecta forzada y mantenida durante mucho tiempo que provoca una alteracin funcional que se manifiesta mediante dolor. Sin embargo hay un gran problema para su diagnstico: no siempre existe una correlacin entre los sntomas clnicos y las manifestaciones radiolgicas. Esto implica que una persona con una estructura sea impecable puede presentar dolores y limitacin de movilidad cervical. El origen de este problema radica en deficiencias musculares (sobreesfuerzo, estrs, deficiente higiene postural). Del mismo modo se pueden encontrar alteraciones patolgicas en pacientes que no han manifestado sntomas de cervicalgia, generalmente detectadas al realizar pruebas radiolgicas a pacientes asintomticos. Por este motivo en muchas ocasiones hay grandes dificultades para determinar un diagnstico correcto y sobre todo en el mbito de la patologa laboral, a la hora de valorar una incapacidad laboral ya sea transitoria o permanente. Con este propsito principal se ha creado NedCervical/IBV. Se trata de una aplicacin que permite la valoracin funcional del raquis cervical basndose en el estudio de la cinemtica de los movimientos que realiza el sujeto durante unas pruebas. De esta forma el personal encargado de realizar la valoracin obtiene ms informacin sobre el estado del paciente pudiendo determinar de una forma ms eficiente el grado y la etiologa de la afeccin. Adems es posible determinar el grado de colaboracin del paciente durante el estudio, por lo que se dispone una herramienta muy til en la medicina del trabajo para apoyar la decisin de otorgar una incapacidad laboral. Las bajas laborales suponen una gran prdida econmica para las empresas espaolas. Se calcula que en Espaa se producen ms de tres mil bajas laborales diarias, lo que ha provocado que se endurezcan las penas contra las bajas debidas a presentar una sintomatologa simulada o fingida. Adems el trastorno musculoesqueltico sustituy hace unos aos al accidente clsico (cadas, cortes, etc.) como primera causa de baja laboral. Por ello es necesario determinar en la medida de lo posible la veracidad o no de estas dolencias. NedCervical/IBV es, por tanto, una herramienta muy til para los profesionales de la salud laboral y en especial para las mutuas aseguradoras, que ayuda a obtener un diagnstico real de pacientes con posibles cervicalgias.

Animacin 3D del Raquis Cervical

8

INTRODUCCIN

Antecedentes generales

1.2.- Antecedentes generalesUn anlisis del mercado referente a todo lo que conlleva el estudio de las cervicales basado en la cinemtica y la capacidad de movimiento de las mismas precisa definir dos aspectos fundamentales: su disposicin fsica, que condiciona los tipos de movimientos que se pueden realizar; y la objetivacin de dichos movimientos para obtener patrones que se toman de referencia para estudios biomecnicos. De este modo, estos son los dos puntos de partida: describir la anatoma sea de la regin cervical y definir los sistemas de valoracin funcional.

1.2.1.- Informacin anatmica: CervicalgiasLa columna vertebral est compuesta por 33 o 34 vrtebras dispuestas a lo largo del esqueleto axial. Se estructura en 5 segmentos: Cervical: 7 vrtebras Dorsal: 12 vrtebras Lumbar: 5 vrtebras Sacro: 5 vrtebras Coxgeo: 3 4 vrtebras

En conjunto se encarga de transmitir y amortiguar las cargas, permitir una relacin ptima de grado de movilidad y rigidez, y proteger las estructuras neuronales contenidas en el canal.

Figura 1: Columna vertebral

Un anlisis ms profundo de la morfologa de las siete vrtebras cervicales permite diferenciar entre las vrtebras C1, C2 y un grupo con caractersticas similares formado por las vrtebras de la C3 a la C7. La primera vrtebra cervical (C1) o atlas tiene forma de anillo y se articula en su parte superior con el hueso occipital. La segunda vrtebra cervical (C2) o axis presenta como caracterstica principal una prolongacin sea vertical que nace del cuerpo del axis y penetra dentro del atlas (apfisis odontoides). Esta particular estructura permite, de manera efectiva, la rotacin del crneo. El resto de vrtebras cervicales (C3-C7) poseen todas ellas de un foramen transverso del que carecen las vrtebras del segmento dorsal y lumbar.

Figura 2: Columna cervical y vrtebras C1 y C2

Animacin 3D del Raquis Cervical

9

INTRODUCCIN

Antecedentes generales

Tras estas bsicas nociones anatmicas, se puede definir el concepto de cervicalgia: afeccin del segmento cervical con sntomas dolorosos. El dolor cervical es una causa frecuente de consulta mdica tanto en atencin primaria como en asistencia especializada. Sin embargo, la multiplicidad etiolgica responsable de los cuadros dolorosos cervicales dificulta en gran medida obtener un diagnstico correcto de forma eficiente. Se puede clasificar su etiologa en dos ramas atendiendo al estudio del cuadro lgico: dolor mecnico y dolor inflamatorio. El dolor mecnico se caracteriza por empeorar con la movilizacin, reproducirse de forma intermitente y mejorar con el reposo funcional. Las causas que pueden condicionar su aparicin son diversas: colocarse en una mala postura de forma mantenida, dormir sin un apoyo adecuado de la cabeza, cargar peso con un solo brazo Todas estas causas generan, en la mayora de los casos, una contractura muscular que provoca un dolor cervical. Dentro de este mbito de la cervicalgia mecnica tambin se encuentran los traumatismos cervicales. Cabe distinguir entre dos tipos de traumatismos: traumatismos directos y traumatismos indirectos. Los traumatismos directos se producen debido a un golpe producido sobre la regin cervical; en cambio los traumatismos indirectos se deben a una sacudida no localizada en la regin cervical que genera un movimiento forzado de la misma. En consecuencia, las lesiones producidas tienen su origen en un movimiento forzado por encima del sector fisiolgico de movilidad. Este rango de movilidad est relacionado con la edad del sujeto y con el tipo de movimiento realizado.Edad Hasta 30 aos De 31 a 50 aos Ms de 50 aos Flexoextensin (flexin + extensin) 90 (20+70) 70 60 Rotacin (derecha + izquierda) 90 (45+45) 90 90 Lateralizacin (derecha + izquierda) 90 (45+45) 90 60

Figura 3: Grados de movilidad normal de la columna cervical

Por tanto, atendiendo al tipo de movimiento realizado se pueden producir lesiones por: - Extensin - Flexin - Compresin - Rotacin - Cizallamiento En contraposicin, la cervicalgia inflamatoria se presenta en muchas menos ocasiones y requiere un diagnstico ms amplio y complejo. El dolor es generalmente continuo y no cede con el reposo funcional. Las causas de este tipo de cervicalgia son por lo general ms graves ya que se deben a una sintomatologa inflamatoria originada por un proceso reumtico, tumoral o infeccioso. Sin embargo establecer un diagnstico de cervicalgia en una de estas dos ramas tiene una dificultad aadida: el dolor cervical puede tener su origen en otras zonas y, del mismo modo, una cervicalgia puede producir dolor en el brazo, regin escapular y regin pectoral.

Animacin 3D del Raquis Cervical

10

INTRODUCCIN 1.2.2.- Sistemas de valoracin funcional

Antecedentes generales

Los fundamentos conceptuales de la evaluacin funcional residen en los modelos de discapacidad propuestos por Nagi y Wood. El ms conocido es el de la OMS (1980) que distingue entre: - Deficiencia, toda prdida o anormalidad de una estructura o funcin psicolgica, fisiolgica o anatmica. (Nivel de rgano) - Discapacidad, toda restriccin o ausencia de capacidad para realizar una actividad en la forma o dentro del margen considerado normal para el ser humano. Representa, en definitiva, al conjunto de consecuencias motrices o psicolgicas de una persona afectadas por una deficiencia. (Nivel de mbito global de la persona) - Minusvala, la situacin desventajosa para un individuo determinado, consecuencia de una discapacidad, que limita o impide el desempeo de un rol que es normal en funcin de la edad, el sexo y los factores sociales y culturales. (Nivel social) La evaluacin funcional consiste en la medicin de las caractersticas dinmicas del individuo, incluyendo actividades, habilidades, actuaciones prcticas, condiciones ambientales y necesidades de dicho individuo. El estudio y la interpretacin de este conjunto de mediciones, recibe el nombre de valoracin funcional y se integra en el bloque de valoracin de discapacidades. Este compendio de sistemas y aplicaciones intentan objetivar la valoracin de un sujeto concreto realizando una serie de pruebas funcionales o movimientos establecidos. Por tanto su objetivo es servir de apoyo a un experto cualificado para tomar decisiones para establecer un diagnstico determinado. Su funcionamiento emplea como base mtodos estadsticos y conocimientos mdicos para realizar comparaciones entre patrones fisiolgicos catalogados como normales y los obtenidos en el sujeto de estudio. Esta comparacin genera una serie de resultados e informes cuyo destinatario final es el encargado de valorar el diagnstico del sujeto. Existen sistemas de valoracin funcional aplicados a bastantes tipos de dolencias motrices. Lumbalgias, movimientos articulares de hombro, rodilla y mueca son algunos entre muchos otros ejemplos para los que se puede encontrar aplicaciones que presentan informes obtenidos a partir de una valoracin funcional de los sujetos. A continuacin se realiza un anlisis de un sistema de valoracin funcional aplicado a la regin cervical.

NedCervical es un sistema diseado por el Instituto de Biomecnica de Valencia (IBV) que permite la valoracin del raquis cervical basado en la cinemtica de sus movimientos durante la realizacin de pruebas funcionales. Est avalado por el conocimiento de las necesidades de los especialistas clnicos de valoracin del dao corporal y tiene el fin principal de proporcionar una prueba complementaria, objetiva, fiable y de fcil interpretacin, que permita realizar una valoracin ms precisa y justa del dao de la columna cervical. Adems tambin permite observar la repercusin funcional en el paciente, as como realizar un seguimiento cercano de su evolucin. Integra la tecnologa biomecnica ms avanzada de anlisis de movimientos humanos para la valoracin funcional del raquis cervical y, de forma complementaria, utiliza una base de datos de normalidad a partir de la cual se

Animacin 3D del Raquis Cervical

11

INTRODUCCIN

Antecedentes generales

permite la comparacin de los registros de los pacientes medidos para caracterizar su patrn de movimiento. Para la obtencin de los datos referentes al movimiento de los pacientes se utiliza el sistema de vdeo digital Kinescan/IBV. Este sistema se basa en el registro de muestras de al menos dos cmaras de unos marcadores reflectantes. Aumentar el nmero de cmaras, mejora la precisin de la obtencin de coordenadas 3D y permite evitar carencias ante marcadores que en algn momento se encuentren ocultos a la visin de dichas cmaras. Los marcadores empleados son simples esferas de corcho cubiertas de un material reflectante. Al tratarse de superficies esfricas, hay que tener en cuenta los ngulos de reflexin de la luz: ante una nica luz focal, la zona del marcador que refleja depende de la posicin del mismo. Para evitar este problema, las cmaras incorporan en la parte superior luces infrarrojas orientadas con la misma distribucin de ejes de la cmara. As la reflexin siempre se sita en el centro del marcador desde el punto de vista de cada cmara. Para obtener resultados ptimos es conveniente controlar las condiciones de luz que afectarn a la sala.

Figura 4: Sistema general Kinescan/IBV

Otra caracterstica a tener en cuenta en el diseo de los marcadores es la posicin de los mismos en el paciente. Si se sitan ceidos a la cabeza, los movimientos mnimos realizados requieren de cmaras de alta sensibilidad para detectarlos. Sin embargo si se les aade un factor como la distancia, ante el mismo movimiento de la cabeza la posicin de los marcadores vara en mayor medida, siendo ms sencilla su deteccin.

Figura 5: Prueba real en el laboratorio y localizacin de los marcadores en el paciente

Animacin 3D del Raquis Cervical

12

INTRODUCCIN

Antecedentes generales

El sistema registra y analiza dos tipos de gestos: - Los lmites funcionales del movimiento en cada una de las direcciones del espacio (flexo-extensin, flexin lateral y rotacin). - Determinados gestos cuyo objetivo es simular movimientos de la vida diaria que comprometen a la columna cervical (en este caso, dichos gestos consisten en mirar hacia arriba hasta observar una figura sobre una lmpara que se ilumina para, posteriormente, cumplimentar un sencillo cuestionario). Finalmente incorpora un mtodo de clasificacin estadstico, basado en regresin logstica, que obtiene resultados mediante la comparacin de la cinemtica de movimientos del paciente con la base de normalidad. De esta forma, es capaz de diferenciar con alta sensibilidad y especificidad entre sujetos normales y patolgicos, y entre sujetos colaboradores en la valoracin y no colaboradores, con una elevada probabilidad de acierto. Todo el estudio realizado se recoge en un informe personalizado especficamente diseado.

Figura 6: Informe personalizado que emite la aplicacin NedCervical/IBV (parte 1)

Animacin 3D del Raquis Cervical

13

INTRODUCCIN

Antecedentes generales

Figura 7: Informe personalizado que emite la aplicacin NedCervical/IBV (parte 2)

La utilizacin del sistema de vdeo digital Kinescan/IBV como tecnologa base para el anlisis de movimientos de la columna cervical, proporciona gran versatilidad frente a cualquier tipo de estudios de anlisis de movimientos que puedan realizarse en un futuro inmediato. As por ejemplo, estudios de nuevos protocolos de valoracin de rodilla o de hombro, en los que el IBV trabaja actualmente, podrn ser llevados a cabo utilizando la misma instrumentacin base.

Animacin 3D del Raquis Cervical

14

INTRODUCCIN

Antecedentes tcnicos

1.3.- Antecedentes tcnicosLa aplicacin NedCervical, en la cual se apoya el proyecto desarrollado, est programada en C++ y se ha considerado como requisito de partida. C++ es un lenguaje de programacin diseado a mediados de los aos 1980 por Bjarne Stroustrup. Se cre como una extensin del lenguaje de programacin C con mecanismos para la manipulacin de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje hbrido. Una caracterstica particular de C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores) y la posibilidad de crear nuevos tipos que se comporten como tipos fundamentales. En cuanto a las herramientas de modelado y animacin 3D se han analizado las siguientes: Modeladores grficos 3D: crear y disear el modelo 3D. o Blender o Maya o 3ds Max Motores grficos 3D: animacin del modelo 3D ante unos datos de entrada. o Ogre o 3D GameStudio o Crystal Space

-

A continuacin se va a realizar un estudio de las caractersticas principales de cada una de las herramientas de modelado y motores grficos mencionados.

Animacin 3D del Raquis Cervical

15

INTRODUCCIN 1.3.1.- Modeladores grficos 3D1.3.1.1.- Blender

Antecedentes tcnicos

Blender es un programa informtico multiplataforma de software libre, dedicado especialmente al modelado, animacin y creacin de grficos tridimensionales. Las caractersticas principales de este programa son: Multiplataforma, libre, gratuito y con un tamao de origen realmente pequeo comparado con otros paquetes de 3D, dependiendo del sistema operativo en el que se ejecuta. Capacidad para una gran variedad de primitivas geomtricas, incluyendo curvas, mallas poligonales, vacos, NURBS y metaballs. Junto a las herramientas de animacin se incluyen cinemtica inversa, deformaciones por armadura o cuadrcula, vrtices de carga y partculas estticas y dinmicas. Edicin de audio y sincronizacin de video. Caractersticas interactivas para juegos como deteccin de colisiones, recreaciones dinmicas y lgica. Posibilidades de renderizado interno verstil e integracin externa con potentes trazadores de rayos o "raytracer" libres como kerkythea, YafRay o Yafrid. Lenguaje Python para automatizar o controlar varias tareas. Blender acepta formatos grficos como TGA, JPG, Iris, SGI o TIFF. Tambin puede leer ficheros Inventor. Motor de juegos 3D integrado, con un sistema de ladrillos lgicos. Para ms control se usa programacin en lenguaje Python. Simulaciones dinmicas para softbodies, partculas y fluidos. Modificadores apilables, para la aplicacin de transformacin no destructiva sobre mallas. Sistema de partculas estticas para simular cabellos y pelajes, al que se han agregado nuevas propiedades entre las opciones de shaders para lograr texturas realistas.

-

-

-

Dispone de una interfaz grfica poco intuitiva y no basada en el clsico sistema de ventanas, por lo que ha sido bastante criticada. Sin embargo permite la personalizacin absoluta facilitando el trabajo y la disposicin de los mens para el usuario. Blender posee una herramienta muy til para aumentar la personalizacin: incorpora un intrprete de Python totalmente funcional. Esto le permite a cualquier usuario aadir funcionalidades a Blender escribiendo un simple script de Python.

Figura 8: Interfaz al iniciar Blender

Animacin 3D del Raquis Cervical

16

INTRODUCCIN1.3.1.2.- Maya

Antecedentes tcnicos

Maya es un programa que proporciona potente solucin integrada para el modelado, la animacin, la creacin de efectos visuales y la renderizacin en 3D distribuido por la empresa Autodesk. Est basado en una arquitectura abierta que permite programar o generar archivos de comandos para todo su trabajo con una API (interfaz de programacin de aplicaciones) completa y bien documentada, mediante uno de los dos lenguajes de comandos incorporados: Maya Embedded Language (MEL) o Python. Este carcter abierto, combinado con un conjunto de herramientas 3, le ayuda a hacer realidad una visin creativa para cine, televisin, desarrollo de juegos y proyectos de diseo. Las caractersticas principales de la versin 2009 de Maya Autodesk son: - Programa multiplataforma implementado por Autodesk con una experiencia de 10 aos respecto de la salida al mercado de la primera versin. - Se caracteriza por su potencia y las posibilidades de expansin y personalizacin de su interfaz y herramientas. Est diseado para permitir incorporar software de terceros, el cual puede cambiar completamente la apariencia de Maya. - Se comercializa en dos variantes: "Maya Complete" (una versin bsica que incluye los mdulos de modelado, animacin, render, dinmicas/partculas) y "Maya Unlimited" (la versin ms avanzada, que dispone de los mdulos de la versin "Maya Complete", ms los de Fluids, Hair, Cloth, el nuevo NCloth etc.). - Maya trabaja con cualquier tipo de superficie NURBS, Polygons, Subdivision Surfaces e incluye la posibilidad de convertir entre todos los tipos de geometra. - Respecto a anteriores versiones, las novedades incorporadas por la versin estudiada son: o Un sistema de seleccin flexible y un resaltado de preseleccin que implica un uso ms eficiente y sencillo del mismo. o Mejor flujo de modelado: ofrece mejoras de modelado intuitivas y productivas, como un modelado simtrico con uniones flexibles, un modo de ajuste para realizar modificaciones rpidas y una nueva fusin de vrtices que permite combinar partes de una malla. o Maya Assets: es una herramienta que permite organizar, compartir, referenciar y presentar eficazmente los datos complejos. o Animacin por capas: un nuevo y potente paradigma de animacin por capas, basado en tecnologa de Autodesk MotionBuilder, aumenta la flexibilidad al crear y editar animaciones de una forma no destructiva. o Maya nParticles: basado en el marco de simulacin unificado Maya Nucleus, este conjunto de herramientas ofrece un flujo de trabajo intuitivo y eficiente para simular gran variedad de efectos complejos, incluidos lquidos, nubes, humo, aerosol y polvo. o Maya Muscle: permite crear movimientos realistas de msculos y piel. o Mejoras en la disposicin UV: nuevas opciones de despliegue y disposicin de UV y optimizacin de su funcionamiento. o Render Proxy: permite sustituir elementos de la escena por una simple malla de baja resolucin y cargar slo los datos reconvertidos cuando hacen falta para renderizar. o Mejoras en Render Pass: permite un control exacto de la salida de renderizacin.

Animacin 3D del Raquis Cervical

17

INTRODUCCIN1.3.1.3.- 3ds Max

Antecedentes tcnicos

3ds Max, anteriormente conocido como 3D Studio Max, es un programa de creacin de grficos y animacin 3D desarrollado por Autodesk. Aunque creado por la misma compaa que Maya, tienen orgenes distintos y se presuma que se iban a fusionar en un hbrido; sin embargo se ha mantenido como un producto independiente. Es uno de programas de animacin 3D ms utilizados. Aunque generalmente se encuentra vinculado a desarrolladores de videojuegos, se emplea tambin en el desarrollo de proyectos de animacin como pelculas o anuncios de televisin, efectos especiales y en arquitectura. Las caractersticas principales de la versin 2009 de este programa son: - Slida capacidad de edicin, una omnipresente arquitectura de plugins y una larga tradicin en plataformas Microsoft Windows. - La primera versin data de 1990, lo que contribuye a un grado de perfeccionamiento muy alto por la gran experiencia acumulada. - Adems de las caractersticas bsicas de cualquier herramienta de modelado, da soporte a sombreadores avanzados (como la oclusin del ambiente y la dispersin de superficies), simulacin dinmica, sistemas de partculas, creacin y renderizado de mapas - Dispone de una interfaz intuitiva y totalmente personalizable y un lenguaje de script propio. - Est abierto para incorporar plugins de renderizacin de terceros, tales como V-Ray, Brazil r / s, Maxwell Render y finalRender. - Las mejoras respecto a versin anteriores son: o Renderizacin con Reveal: este sistema proporciona el control exacto necesario para refinar rpidamente las renderizaciones. Permite renderizar una escena entera excepto un determinado objeto, renderizar un nico objeto o incluso una regin especfica del bfer de fotograma. o Mejoras de Biped: esta tcnica permite animar de forma ms sencilla personajes cuadrpedos. o Mejor compatibilidad con OBJ y FBX: la mayor fidelidad al convertir el formato OBJ, junto con ms opciones de exportacin, facilitan el intercambio de datos entre 3ds Max y Mudbox, adems de otras aplicaciones de esculpido digital. Tambin ofrece mejor gestin de memoria de FBX y nuevas opciones de importacin que garantizan la interoperabilidad entre 3ds Max y otros productos de Autodesk, como Maya y MotionBuilder. o Edicin rpida de texturas UV: incorpora avanzadas herramientas de mapeado fciles de usar. La nueva funcin de mapeado de spline permite mapear objetos tubulares y tipo spline, como una carretera sobre un terreno. o Compatibilidad con .NET en el SDK que permite utilizar las API de interfaz de usuario de alto nivel de Microsoft para ampliar el software. o ProMaterials: 3ds Max cuenta con una nueva biblioteca de materiales basados en la fsica y fciles de utilizar. o Mejoras de iluminacin fotomtrica.

Animacin 3D del Raquis Cervical

18

INTRODUCCIN 1.3.2.- Motores grficos 3D1.3.2.1.- Ogre

Antecedentes tcnicos

Ogre (Object-oriented Graphics Rendering Engine) es una librera grfica de cdigo abierto multiplataforma con un flexible motor grfico. Est diseada con el objetivo principal de permitir a los programadores producir aplicaciones utilizando grficos en 3D acelerados por hardware. Sin embargo, para aplicar otras caractersticas, como sonido, networking, AI, colisin, leyes fsicas se necesita vincular Ogre con otras libreras. Es, por tanto, un motor grfico base que provee un API muy amigable, apto para integraciones, permitiendo que el programador escoja otras libreras si as lo desea. Est construido de forma que no se compromete con una API en particular, puesto que el motor soporta tanto el uso de DX9 como de OpenGL. Teniendo en cuenta estos aspectos, no existen lmites intrnsecos del motor, pudiendo resultar algo confuso en un primer momento. El equipo programador base encargado del desarrollo de este motor es un grupo pequeo, compuesto por ingenieros de software experimentados. Adems la creciente comunidad de usuarios de Ogre, unida a la creacin de parches por parte de sta, permite crear una estructura fuerte entorno a este motor. Cada parche es sometido a una estricta prueba para confirmar su calidad y coherencia con el resto de los componentes del motor. Otro aspecto a comentar es que Ogre no asume qu tipo de programa (simulacin, juego, demo) se desea crear de antemano. Utiliza una flexible jerarqua de clases, la cual permite disear plugins para especializar la organizacin de escenas con el fin de crear cualquier tipo de programa que se desee. En definitiva, Ogre posee las siguientes caractersticas principales: - Diseo orientado a objetos. Interfaz simple y fcil de usar, diseada para que requiera poco esfuerzo el renderizado de escenas en tres dimensiones. - Arquitectura basada en plugins muy flexible que permite extender las funcionalidades del motor. - Sistema de Carga/Respaldo. Soporte de zip/pk3 para archivar. - Diseo limpio y bien documentado de las clases del motor. - Independiente de la API grfica, se puede utilizar OpenGL o DirectX. Adems tambin ofrece soporte en los siguientes elementos de un motor grfico: Renderizado o Material LOD. o Soporta la gama completa de operaciones de funcin fija como multitextura y multipass. o Blending y coordinacin de generacin de texturas. o Soporte para mltiples tcnicas de materiales. o Objetos transparentes gestionados automticamente. o Sistema de fuentes con fuentes TrueType y texturas pre creadas. o Sistema de GUI 2D con botones, listas, cajas de edicin, barras de desplazamiento, etc. (Usando CEGUI).

Animacin 3D del Raquis Cervical

19

INTRODUCCIN

Antecedentes tcnicos

-

Gestin de escena o Altamente personalizable. Flexible gestin de escena no vinculada a ningn tipo de escena. Se puede usar las clases predefinidas o crear subclases propias para obtener un control total sobre la organizacin de la escena. o Grafo de escena jerrquico. o BSP, Octrees, Occlusion Culling y LOD. Texturizado o Bsico, multi-texturizado, bumpmapping, mipmapping, texturas volumtricas y proyectadas. o Texturizado proyectivo automtico entre vnculos con texturas unitarias a instancias Frustum. o Puede registrar texturas de fuentes externas. o Soporta PNG, JPEG, TGA, BMP y DDS como archivos de imagen. Iluminacin o Por vrtice, por pixel y Lightmapping. o Puede tener un nmero ilimitado de luces en la escena. o Soporte a travs de programas de vrtices y de fragmentos. Sombras o Shadow mapping y shadow volume. o Tcnicas soportadas: modulative stencil, additive stencil y modulative projective. o Mltiples estncils para optimizaciones de sombras, incluyendo programas de vrtices de extrusin, luz y sombras inteligentes, integracin con la malla LOD, mtodos zpass y zfail, estncils de doble cara y saturacin de recorte de regin. o Textura sombras que se desvanecen a larga distancia. Shaders o Vertex y pixel shaders de alto nivel. o Soporta programas de vrtices y de fragmentos de bajo nivel escritos en ensamblador, y programas de alto nivel en Cg, HLSL, y GLSL. Animacin o Cinemtica inversa, animacin esqueltica y animacin de mezcla. o Animacin del esqueleto, incluyendo la mezcla de mltiples animaciones y de peso variable de skinning de huesos. Mallas o o o o

-

-

-

-

-

-

Cargado de malla, skinning y progresivo. Aceleracin de skinning por hardware. Flexibilidad en los formatos de malla de datos aceptados. Exportadores para muchas herramientas de modelado incluidas Milkshape3D, 3D Studio, Max, Maya, Blender y Wings3D.

-

Curvas y superficies o Splines. o Caminos Bezier bicuadrados para superficies curvas Efectos especiales o Cartografa de medio ambiente, billboarding, sistema de partculas, motion blur, cielo, agua y niebla.

-

Animacin 3D del Raquis Cervical

20

INTRODUCCINo

Antecedentes tcnicos

o -

Sistemas de partculas, incluyendo emisores fcilmente extensibles y affectors (personalizable mediante plugins). Los sistemas pueden ser definidos mediante scripts para un ajuste fcil. Soporte para skyboxes, skyplanes y skydomes.

Scripting o El lenguaje de script permite mantener los materiales fuera del cdigo mediante archivos .material. o Scripts de renderizado multipaso. Fsica o Fsica bsica, deteccin de colisiones y cuerpos rgidos. o Controladores que permiten organizar fcilmente los valores entre los objetos derivados. o Incluye bindings para mltiples sistemas de colisin/fsica de terceras partes, como ODE o Newton.

-

Animacin 3D del Raquis Cervical

21

INTRODUCCIN1.3.2.2.- 3D GameStudio

Antecedentes tcnicos

3D GameStudio es un kit de desarrollo para la realizacin de aplicaciones 2D y 3D. Est provisto de un motor 3D, un motor 2D, un editor de niveles y modelos, compilador de scripts y libreras de modelos, texturas, etc. El principal objetivo que esta aplicacin persigue es que el creador del juego no necesite ser un programador experimentado. Aboga por reducir al mximo el esfuerzo del creador a costa de perder flexibilidad en el diseo del juego. Ofrecen tres posibilidades para crear un juego: - Juegos diseados a base nicamente de ratn, para usuarios sin conocimientos de programacin. - Juegos o efectos diseados con algo de programacin utilizando C-scripts. - Juegos o efectos programados en C++ o Delphi, para programadores con experiencia. Las caractersticas de renderizado principales que implementa esta motor son: - Modelado o LOD geomtrico. o Modelado de terreno. - Visibilidad o rboles BSP, portales y PVS. - Iluminacin o Fuentes de luz estticas y dinmicas. o Sombras estticas y dinmicas. - Texturas o Texture Mapping y procedural para agua y lava. o Mip-mapping trilineal. - Efectos o Partculas, niebla coloreada y transparencia. o Transformacin y deformacin suave de mallas. - Otros o Efecto de movimiento lento/rpido. o Deteccin de colisiones. Otras caractersticas de este motor son: Importa multitud de formatos de ficheros grficos y de audio. Requiere DirectX8 o superior para hacer rendering por hardware. Requiere DirectX5 o superior para hacer rendering por software. No hay planeado soporte para OpenGL.

En cuanto a la posibilidad de incorporar archivos de algn modelador 3D, permite incorporar un plugin para crear modelos animados creados con 3ds Max.

Animacin 3D del Raquis Cervical

22

INTRODUCCIN1.3.2.3.- Crystal Space

Antecedentes tcnicos

Cristal Space es un kit de desarrollo de juegos 3D con licencia LGPL y portable escrito en C++. Se puede ejecutar en multitud de sistemas (GNU/ Linux, Windows, Windows NT, OS/2, BeOS, NextStep, OpenStep, MacOS/X Server, DOS, Macintosh) y da soporte a soporte para visualizacin a 8-bits, 16-bits y 32-bits, Direct3D, OpenGL, Glide, etc. Cristal Space, adems, soporta seis grados de libertad, luces de colores, mipmapping, portales, espejos, transparencias, superficies reflectivas, sprites 3D (basados en frames o animaciones de esqueleto), texturas procedurales, radiosidad, sistemas de partculas, halos, niebla volumtrica, lenguaje de script (Python y otros). Las caractersticas principales de renderizado que incorpora son: Modelado o Motor de terreno. o Motor de fsica. o Mallas 3D con animacin. Conversores desde los formatos Quake MDL and Quake II MD2 a Crystal Space. Importadores de objetos 3DS, MDL, MD2, OBJ, POV, y ASE. Las mallas son multirresolucin progressive meshes permitiendo LOD dinmicos. o Permite representar superficies curvas (nurbs, Bezier). o Modelado LOD general. Visibilidad o Sistema de visibilidad basado en la combinacin de portales, octrees, arboles BSP y c-buffer (coverage buffer). o Futuro trabajo en PVS. Iluminacin o Cielo iluminado dinmicamente, sol en movimiento. o Espejos. o Superficies brillantes y con reflejos con espejos y alpha mapping. o Luces estticas de colores con sombras reales (sombras precalculadas). o Luces dinmicas, de colores con sobras suaves. o Radiosidad precalculada sobre los ligthmaps. o Niebla volumtrica. o Luces con halo y lens-flares. Texturas o Texturas de cualquier dimensin y formatos GIF, TGA, PNG, BMP, JPG y otros. o Correccin perspectiva con interpolacin cada 16 pixels. o Texturas con canal alpha. o Mipmapping. o Soporte para texturas dinmicas. o Multitexuras con OpenGL.

-

-

-

Animacin 3D del Raquis Cervical

23

INTRODUCCIN-

Antecedentes tcnicos

Efectos o 2D sprites y sistemas de partculas utilizando esos sprites. Otros o Plugins para fuentes. o Sistema de deteccin de colisiones jerrquico. o Soporte para sonido 3D (DS3D, EAX, A3D) en varios formatos: WAV, MP3, Ogg/Vorbis, AU, AIFF, IFF y MOD. o Movimiento de objetos con un lenguaje de script. o Soporte de red simple para Windows, GNU/Linux y Unix (basado en sockets).

-

En cuanto a la posibilidad de importar modelos realizados con algn modelador 3D, Crystal Space incorpora un conversor de 3ds y permite aadir varios scripts importar mapas y modelos realizados en Blender.

Animacin 3D del Raquis Cervical

24

INTRODUCCIN

Objetivos del trabajo

1.4.- Objetivos del trabajoEl objetivo principal del proyecto actual es generar una aplicacin, preparada para ejecutarse en un entorno Windows, que otorgue al usuario responsable de detectar la afeccin de cervicalgia de una visin amigable de la prueba realizada, ms all de datos o grficas, mediante una animacin 3D. El hecho de disponer de un medio con el que mediante un breve vistazo permita recordar o visualizar los movimientos realizados en la prueba del paciente es de gran ayuda para obtener un diagnstico de una forma rpida y eficaz. Por ello las herramientas a utilizar deben permitir determinar opciones en cuanto a la visualizacin de la animacin. El usuario elige la posicin en que comienza la reproduccin de la animacin y debe poder situar el cursor en el momento que considere ms oportuno, al igual que cambiar la orientacin y posicin de la cmara que enfoca al modelo 3D para detectar un determinado movimiento de la forma ms precisa posible. La animacin 3D estar acompaada de una grfica que, adems de representar los ngulos en los tres ejes principales (x,y,z) en funcin del tiempo, permita establecer una referencia objetiva a la animacin presentada a travs de la representacin numrica de los resultados de las pruebas. Adems es interesante incluir elementos interactivos en la grfica que afecten al momento de la reproduccin de la animacin, tanto para facilitar la usabilidad de la aplicacin como para hacerla ms atractiva y dinmica.

Animacin 3D del Raquis Cervical

25

INTRODUCCIN

Plan de trabajo

1.5.- Plan de trabajoPara la realizacin de este proyecto se ha diseado un plan de trabajo estructurado respondiendo a las necesidades de estudio de las herramientas a utilizar, la implementacin de cdigo de mdulos independientes, la integracin de los nombrados mdulos, el anlisis de pruebas de test sobre la aplicacin y la elaboracin de la documentacin para registrar el proceso seguido. El proyecto se plantea entre los meses laborales de julio de 2009 y enero de 2010.

Plan de trabajo

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Julio

Septiembre

Octubre

Noviembre

Diciembre

Enero

Febrero

Animacin 3D del Raquis Cervical

26

INTRODUCCINLeyenda

Plan de trabajo

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Presentacin del proyecto a desarrollar y de las herramientas a emplear Establecimiento de los objetivos a alcanzar Estudio del motor grfico Ogre Estudio del funcionamiento de Blender Adaptacin del modelo proporcionado en Blender y exportacin del mismo Elaboracin de la animacin mediante una ventana de Ogre independiente Adicin de materiales bsicos al modelo 3D Validacin de la animacin por parte del IBV Estudio de las clases MFC sobre Visual Studio Implementacin de la base de la interfaz Integracin de la ventana de Ogre en la interfaz base Validacin de la interfaz base por parte del IBV Creacin de la grfica y elaboracin del aspecto final de la interfaz Validacin de la aplicacin por parte del IBV Elaboracin de la memoria Mejora del modelo de Blender empleado y aadido de texturas Maquetacin del proyecto para la entrega Validacin final por parte del IBV Entrega del proyecto

Animacin 3D del Raquis Cervical

27

MATERIAL Y MTODOS

2.- Material y mtodosLa aplicacin NedCervical/IBV en la que se basa el proyecto actual permite al especialista clnico, como prueba complementaria, consolidar su diagnstico. Para ello proporciona todo tipo de indicadores, parmetros y grficos relativos a la prueba. Una animacin 3D realista de las diferentes pruebas permitira al especialista observar desde cualquier punto de vista alteraciones en los movimientos realizados y contribuira a una mejora significativa del valor clnico de la prueba. De esta forma las herramientas que se han seleccionado en la aplicacin son: Blender, para la elaboracin fsica del modelo; Ogre, para obtener una animacin del mismo ante unos datos de entrada; y el entorno de desarrollo que proporciona Visual Studio 2005. Modelado grfico 3D: Por qu Blender? Entre los modeladores grficos estudiados, Blender ofrece una caracterstica muy valorada actualmente: se trata de software libre. Este dato no se refiere nicamente al precio de adquisicin del producto, gratuito por supuesto, sino tambin a la comunidad que lo envuelve. Un programa con cdigo abierto permite que cualquiera tenga la capacidad de aadirle scripts o elementos nuevos y ofrecerlos al resto de interesados con un beneficio comn: aumentar las capacidades y perfeccionar el programa para que est en constante evolucin ante nuevas tecnologas. Adems del hecho comentado de presentar una comunidad bastante numerosa, que tambin implica el disponer de un gran nmero de tutoriales explicativos, Blender en cuanto a posibilidades de diseo no tiene nada que menospreciar a los otros modeladores analizados. Otro motivo para su eleccin como modelador en el proyecto actual son las posibilidades de exportacin y personalizacin que incorpora. Mediante scripts realizados en Python es posible aumentar las funcionalidades que incorpora el programa bsico, generando un gran nmero de posibilidades de utilizacin alternativas. En el proyecto actual se ha aadido el script Ogre Meshes Exporter. La versin del programa elegida es la 2.49a, a la cual se ha incorporado la versin 2.6.2 de Python con el fin de aadir scripts a Blender. Al ejecutar Blender se puede comprobar la versin de Python instalada en la ventana de comandos adjunta.

Figura 9: Versin de Blender empleada y ventana de comandos al iniciar Blender

Animacin 3D del Raquis Cervical

28

MATERIAL Y MTODOSMotor grfico 3D: Por qu Ogre? Los motivos por los que se ha elegido este motor grfico y no otro de los analizados son similares a los de la eleccin de Blender: se trata de software libre con una comunidad numerosa y activa. Aunque el motor grfico Crystal Space tambin pertenece al mundo de software libre, la comunidad que lo representa es bastante ms reducida que la de Ogre, lo que implica que exista una menor cantidad de actualizaciones y posibles ampliaciones a incorporar al motor. Adems otra razn para su eleccin es el hecho de que el modelador elegido permita exportar archivos que puedan ser empleados por el motor grfico. Blender cumple con este perfil, justificando la eleccin de ambas herramientas. Otro aspecto a comentar que ha facilitado emplear Ogre en el proyecto actual es el soporte al lenguaje C++, requisito con el cual parte el proyecto descrito. Adems sin en un futuro se deseara ampliar las funcionalidades de la aplicacin, la estructura en la que se dispone Ogre permitira realizar este paso de una forma ms o menos gradual, debido en gran medida a su programacin abierta a integrar nuevas funcionalidades y libreras. La versin de Ogre elegida en el proyecto actual es la 1.6.3.

Entorno de desarrollo: Por qu Visual Studio 2005? Elegidos el modelador y motor grficos, puesto que la aplicacin va a utilizar el lenguaje C++ se ha escogido uno de los entornos de desarrollo ms utilizados del mercado ante tales requisitos: Visual Studio 2005. La versin empleada depende de la disposicin de programas que ofrece la empresa en la que se ha realizado el proyecto.

Microsoft Visual Studio 2005 es un entorno de desarrollo integrado para sistemas operativos Windows. Soporta varios lenguajes de programacin tales como C++, C#, J#, ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros. Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, as como servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la versin net 2002). As se pueden crear aplicaciones que se intercomuniquen entre estaciones de trabajo, pginas web y dispositivos mviles. Este entorno permite la creacin de proyectos separando cada uno de los recursos de que se dispone: archivos de encabezado (archivos .h), archivos de cdigo fuente (.cpp para el caso de lenguaje C++) y otros archivos de recursos. La versin elegida en este proyecto es Microsoft Visual Studio 2005 Professional Edition. El entorno de desarrollo elegido presenta multitud de herramientas que se le pueden incorporar para aumentar sus funcionalidades. La aplicacin a desarrollar requiere dotarla de una interfaz funcional y de la visualizacin de unos datos en grficas. Visual Studio ofrece soluciones para ambos aspectos: la utilizacin de clases MFC y el empleo del paquete de clases Measurement Studio.

Animacin 3D del Raquis Cervical

29

MATERIAL Y MTODOS MFC (Microsoft Foundation Classes) es un conjunto de clases que provee un acceso ms sencillo a las API de Windows. Fueron introducidas por Microsoft en 1992 y desde entonces fueron apareciendo nuevas versiones con las nuevas versiones del entorno de programacin Visual C++. La utilizacin de clases MFC permite la creacin y manipulacin de forma sencilla de una interfaz a la que se le pueden aadir elementos mediante un entorno de ventanas.

Figura 10: Interfaz de ventanas mediante el uso de MFC en Visual Studio 2005

Measurement Studio es un paquete integrado de clases y controles para aplicaciones de pruebas, medidas y automatizacin en Microsoft Visual Studio 2008/2005/.NET 2003 y Visual Studio 6.0. Measurement Studio ha sido desarrollado por National Instruments y reduce drsticamente el tiempo de desarrollo de aplicaciones al proporcionar formularios de Windows, formularios Web y componentes de interfaz de usuario ActiveX. Est diseada para ingenieros, anlisis cientfico avanzado y adquisicin de datos y asistentes para control de instrumentos optimizados para pruebas. Basndose en ms de 20 aos de experiencia de medicin de programacin de National Instruments, Measurement Studio ofrece la posibilidad de una integracin sencilla para la adquisicin de datos y control de instrumentos en una interfaz.

Animacin 3D del Raquis Cervical

30

MATERIAL Y MTODOS

Requerimientos

2.1.- RequerimientosLos requerimientos para la realizacin del proyecto actual son coherentes con el tipo de programa a realizar: gestin de una serie de archivos para visualizar una animacin con la que es posible interactuar. De esta forma, los requisitos que se han tenido en cuenta se pueden clasificar, atendiendo a su funcionalidad, de la siguiente forma: - Gestin de ficheros de prueba - Visualizacin de la animacin - Modificacin del momento de la animacin - Modificacin de cmaras Un anlisis de cada uno de estos apartados tan generales permite realizar una clasificacin ms refinada: - Gestin de ficheros de prueba o Abrir ficheros de prueba o Borrar ficheros de prueba - Visualizacin de la animacin o Cargar prueba - Modificacin del momento de la animacin o Reproducir prueba o Rebobinar prueba o Pausar prueba o Cambiar posicin de reproduccin de prueba o Limitar rango de reproduccin - Modificacin de cmaras o Cambiar cmara o Cambiar posicin o Cambiar orientacin A continuacin se va a realizar un estudio pormenorizado y minucioso de cada uno de estos apartados a travs de la realizacin de los casos de uso correspondientes.

Animacin 3D del Raquis Cervical

31

MATERIAL Y MTODOS 2.1.1.- Gestin de ficheros de prueba

Requerimientos

Este mdulo debe permitir importar ficheros de prueba a la aplicacin, as como eliminar algunos ficheros que ya se encuentren cargados en la misma.

Gestin de ficheros de prueba

Abrir fichero de prueba

Borrar fichero de prueba UsuarioFigura 11: Caso de uso de gestin de fichero de prueba

Animacin 3D del Raquis Cervical

32

MATERIAL Y MTODOS2.1.1.1.- Abrir fichero de prueba

Requerimientos

El usuario selecciona las pruebas a cargar a travs de un dilogo y, en caso de tratarse de ficheros vlidos, se importan al programa.

Detalles del caso de usoNombre: Abrir fichero de prueba. Actores: Usuario. Precondiciones: Ninguna. Postcondiciones: Los ficheros de prueba se cargan en la interfaz del sistema.

Flujo de eventosa 1. 2. 3. 4. El usuario selecciona los ficheros a abrir. El sistema valida los ficheros seleccionados (nomenclatura y contenido). El sistema notifica al usuario el nmero de pruebas vlidas. El sistema extrae la informacin necesaria de los ficheros vlidos. El sistema incorpora la informacin de los ficheros a la interfaz. Intencin de Usuario El usuario pulsa el botn de Abrir Fichero. Obligaciones del Sistema

El sistema abre un dilogo de tipo Examinar.

5. 6. 7.

Extensiones sncronas #1 #2En 3 el usuario no selecciona ningn fichero y pulsa Abrir: El sistema vuelve a mostrar el dilogo. En 4 el sistema no encuentra ningn fichero vlido: El sistema se lo notifica al usuario y acaba el caso de uso.

Animacin 3D del Raquis Cervical

33

MATERIAL Y MTODOS2.1.1.2.- Borrar fichero de prueba

Requerimientos

El usuario selecciona una prueba cargada en la interfaz y la elimina de la misma.

Detalles del caso de usoNombre: Borrar fichero de prueba. Actores: Usuario. Precondiciones: El fichero a borrar debe estar cargado en la interfaz. Postcondiciones: Las pruebas borradas se eliminan de la interfaz.

Flujo de eventosa 1. 2. 3. 4. Intencin de Usuario El usuario selecciona la prueba a borrar. El usuario pulsa el botn de Borrar Prueba. Obligaciones del Sistema

El sistema elimina la prueba de la interfaz. El sistema actualiza la posicin del resto de pruebas en la lista.

Extensiones sncronas #1En 3 la prueba a borrar est cargada actualmente en la animacin: El sistema muestra un error y acaba el caso de uso.

Animacin 3D del Raquis Cervical

34

MATERIAL Y MTODOS 2.1.2.- Visualizacin de la animacin

Requerimientos

Este mdulo debe poseer la funcionalidad de interpretar los datos de los ficheros de prueba cargados y transformarlos en una animacin que permita una visualizacin en pantalla.

Visualizacin de la animacin

Cargar prueba

UsuarioFigura 12: Caso de uso para la visualizacin de la animacin

Animacin 3D del Raquis Cervical

35

MATERIAL Y MTODOS2.1.2.1.- Cargar prueba

Requerimientos

El usuario selecciona una prueba cargada en la interfaz y presiona el botn correspondiente a la carga de la prueba, visualizndose sta en la ventana de Ogre.

Detalles del caso de usoNombre: Cargar prueba. Actores: Usuario. Precondiciones: Los ficheros con los datos de las pruebas a cargar deben estar previamente cargados en la interfaz. Postcondiciones: En la ventana de Ogre se visualiza el modelo y el inicio de la animacin.

Flujo de eventosa 1. 2. 3. 4. 5. 6. Intencin de Usuario El usuario selecciona una prueba de la interfaz. El usuario presiona el botn de Cargar Prueba. Obligaciones del Sistema

7. 8.

El sistema lee el contenido del fichero de prueba y almacena los datos. El sistema carga la grfica con los datos almacenados. El sistema interpreta los datos y crea la animacin. El sistema activa los elementos y eventos que pueden interactuar con la animacin. Se carga la cmara libre por defecto. Se inicia el bucle de renderizado.

Extensiones sncronas #1En 2 el usuario presiona el botn Cargar Prueba sin tener un fichero seleccionado: El sistema muestra un error y acaba el caso de uso. En 2 el usuario presiona el botn Cargar Prueba teniendo el dilogo de apertura de pruebas abierto: El sistema muestra un error y acaba el caso de uso. En 3 el sistema tiene animaciones previas cargadas: El sistema libera recursos relacionados con las mismas y sigue su ejecucin. En 5 se produce algn error al emplear los recursos para la creacin de la animacin: El sistema muestra un error y acaba el caso de uso.

#2

#3 #4

Animacin 3D del Raquis Cervical

36

MATERIAL Y MTODOS 2.1.3.- Modificacin del momento de animacin

Requerimientos

Este modulo encapsula toda la interaccin que el usuario realiza con la animacin para variar la reproduccin de la misma. Modificacin del momento de animacin

Reproducir prueba Rebobinar prueba Pausar prueba Cambiar posicin de reproduccin de prueba Limitar rango de reproduccin

Usuario

Figura 13: Caso de uso encargado de la modificacin del momento de animacin

Animacin 3D del Raquis Cervical

37

MATERIAL Y MTODOS2.1.3.1.- Reproducir prueba

Requerimientos

El usuario pulsa en el botn correspondiente a reproducir una prueba y comprueba los movimientos que realiza el modelo en funcin de la prueba que se encuentre cargada.

Detalles del caso de usoNombre: Reproducir prueba. Actores: Usuario. Precondiciones: Debe haber una animacin cargada en el programa. Postcondiciones: La ventana de Ogre reproduce la animacin.

Flujo de eventosa 1. 2. Intencin de Usuario El usuario presiona el botn Reproducir Prueba. Obligaciones del Sistema

3.

El sistema interpola entre los datos interpretados de las pruebas para generar movimiento en la animacin. El sistema enlaza el momento de reproduccin con elementos de la interfaz.

Extensiones sncronas #1En 1 el usuario presiona el botn Reproducir Prueba encontrndose el momento de reproduccin al final de la animacin: El sistema reinicia el momento de reproduccin y vuelve a comenzar. En 2 ocurre un problema al modificar el estado de la reproduccin en Ogre: El sistema muestra un error y acaba el caso de uso.

#2

Animacin 3D del Raquis Cervical

38

MATERIAL Y MTODOS2.1.3.2.- Rebobinar prueba

Requerimientos

El usuario pulsa en el botn correspondiente a rebobinar una prueba y comprueba los movimientos reproducidos en sentido inverso que realiza el modelo en funcin de la prueba que se encuentre cargada.

Detalles del caso de usoNombre: Rebobinar prueba. Actores: Usuario. Precondiciones: Debe haber una animacin cargada en el programa. Postcondiciones: La ventana de Ogre reproduce la animacin en sentido inverso.

Flujo de eventosa 1. 2. Intencin de Usuario El usuario presiona el botn Rebobinar Prueba. Obligaciones del Sistema

3.

El sistema interpola entre los datos interpretados de las pruebas para generar los movimientos en sentido inverso en la animacin. El sistema enlaza el momento de reproduccin con elementos de la interfaz.

Extensiones sncronas #1En 1 el usuario presiona el botn Rebobinar Prueba encontrndose el momento de reproduccin al principio de la animacin: El sistema lleva al final el momento de reproduccin el momento de reproduccin y sigue su ejecucin. En 2 ocurre un problema al modificar el estado de la reproduccin en Ogre: El sistema muestra un error y acaba el caso de uso.

#2

Animacin 3D del Raquis Cervical

39

MATERIAL Y MTODOS2.1.3.3.- Pausar prueba

Requerimientos

El usuario pulsa en el botn correspondiente a pausar la reproduccin de una prueba y la animacin se detiene.

Detalles del caso de usoNombre: Pausar prueba. Actores: Usuario. Precondiciones: Debe haber una animacin reproducindose en el programa. Postcondiciones: El sistema mantiene fijo el momento de reproduccin de la animacin.

Flujo de eventosa 1. 2. Intencin de Usuario El usuario presiona el botn Pausar Prueba. Obligaciones del Sistema

3.

El sistema detiene el momento de reproduccin si la animacin se encuentra en estado de reproducir o rebobinar prueba. El sistema enlaza esa detencin del momento de reproduccin con elementos de la interfaz.

Extensiones sncronas #1En 2 ocurre un problema al modificar el estado de la reproduccin en Ogre: El sistema muestra un error y acaba el caso de uso.

Animacin 3D del Raquis Cervical

40

MATERIAL Y MTODOS2.1.3.4.- Cambiar posicin de reproduccin de prueba

Requerimientos

El usuario interacta con la barra de reproduccin o con la grfica modificando el momento de reproduccin de la prueba cargada.

Detalles del caso de usoNombre: Cambiar posicin de reproduccin de prueba. Actores: Usuario. Precondiciones: Debe haber una animacin cargada en el programa. Postcondiciones: El sistema vara el momento de reproduccin de la prueba.

Flujo de eventosa 1. Intencin de Usuario El usuario pulsa con el botn izquierdo del ratn sobre un punto de la grfica o la barra de reproduccin. Obligaciones del Sistema

2.

3. 4.

El sistema calcula la correspondencia entre el punto pulsado y el tiempo de animacin correspondiente. El sistema traslada el momento de reproduccin al tiempo calculado. Se actualizan los elementos de la interfaz atendiendo al momento de reproduccin actual.

Extensiones sncronas #1 #2 #3 #4En 1 la accin de pulsado se puede sustituir por pulsacin y arrastre, ejecutndose el caso de uso por cada variacin de pulsacin del ratn. En 1 tambin se puede modificar la posicin de reproduccin de la prueba pulsando en los botones correspondientes a ir al comienzo o ir al final. En 1 el momento de reproduccin tambin se puede variar mediante la interaccin con la rueda del ratn. En 1 el usuario pulsa en una regin inactiva de la grfica: El sistema traslada el momento de reproduccin a la posicin correspondiente al cursor lmite ms cercano. En 1 se encuentra activo el modo de rebobinar o reproducir prueba: El sistema da preferencia al caso de uso actual y, al finalizar la interaccin con ste, prosigue con el modo de reproduccin que se encontraba en ejecucin.

#5

Animacin 3D del Raquis Cervical

41

MATERIAL Y MTODOS2.1.3.5.- Limitar rango de reproduccin

Requerimientos

El usuario modifica la posicin de los cursores lmite de la grfica, variando el rango de reproduccin de la animacin.

Detalles del caso de usoNombre: Limitar rango de reproduccin. Actores: Usuario. Precondiciones: Debe haber una animacin cargada en el programa. Postcondiciones: El rango de reproduccin se limita a los cursores lmite de la grfica.

Flujo de eventosa 1. 2. Intencin de Usuario El usuario pulsa y arrastra sobre un cursor lmite de la grfica. Obligaciones del Sistema

3. 4. 5.

El sistema calcula la correspondencia entre la nueva posicin de arrastre y el tiempo de animacin. El sistema actualiza el rango de reproduccin de la animacin. Se actualiza el rea de la regin activa en la grfica. Se actualiza el rango entre el que se ejecuta la barra de reproduccin.

Extensiones sncronas #1En 1 la posicin de arrastre del cursor lmite supera al cursor de animacin: El sistema llama al caso de uso Cambiar posicin de reproduccin de prueba para dejarlo siempre dentro de la regin activa. En 1 la posicin de arrastre del cursor izquierdo se intercambia con el derecho o viceversa: El sistema muestra un error, actualiza la posicin de los cursores y el momento de reproduccin a la posicin por defecto y acaba el caso de uso.

#2

Animacin 3D del Raquis Cervical

42

MATERIAL Y MTODOS 2.1.4.- Modificacin de cmaras

Requerimientos

El usuario debe poder interactuar con las cmaras que permiten visualizar la animacin modificando la posicin y orientacin de visualizacin.

Modificacin de cmaras

Cambiar cmara Cambiar posicin Cambiar orientacin Usuario

Figura 14: Casos de uso que controlan la modificacin de las cmaras

Animacin 3D del Raquis Cervical

43

MATERIAL Y MTODOS2.1.4.1.- Cambiar cmara

Requerimientos

El usuario selecciona la cmara con la que desea visualizar la reproduccin de la animacin.

Detalles del caso de usoNombre: Cambiar cmara. Actores: Usuario. Precondiciones: Debe haber una animacin cargada en el programa. Postcondiciones: La visualizacin de la animacin cambia en funcin de la cmara seleccionada.

Flujo de eventosa 1. Intencin de Usuario El usuario pulsa sobre alguna de las cinco cmaras disponibles para visualizar la animacin. Obligaciones del Sistema

2.

3.

El sistema identifica la cmara y la carga en la animacin para visualizar su punto de vista. El sistema desactiva la cmara cargada previamente en la interfaz.

Extensiones sncronas #1En 2 la cmara seleccionada es la cmara libre: El sistema activa los elementos de la interfaz que permiten modificar la posicin de la misma. En 2 la cmara seleccionada es la cmara libre: El sistema carga la ltima modificacin de posicin y orientacin que se realiz sobre la misma.

#2

Animacin 3D del Raquis Cervical

44

MATERIAL Y MTODOS2.1.4.2.- Cambiar posicin

Requerimientos

El usuario modifica la posicin de la cmara libre para visualizar la animacin con el fin de observar mejor un movimiento determinado.

Detalles del caso de usoNombre: Cambiar posicin. Actores: Usuario. Precondiciones: Debe haber una animacin cargada en el programa y estar activa la cmara libre. Postcondiciones: La visualizacin de la animacin cambia en funcin de la nueva posicin de la cmara.

Flujo de eventosa 1. 2. Intencin de Usuario El usuario pulsa sobre alguno de los spins. Obligaciones del Sistema

3.

El sistema calcula el incremento de posicin que supone el pulsar el spin seleccionado. El sistema traslada la posicin de la cmara a la posicin obtenida a travs de la posicin previa y el incremento obtenido calculado.

Extensiones sncronas #1 #2En 1 es posible modificar la posicin de la cmara mediante la utilizacin del teclado. En 1 es posible cambiar la posicin de la cmara libre en el eje Z mediante el empleo de la rueda del ratn. En 1 es posible devolver a la cmara libre a su posicin por defecto pulsando en el botn Reset. En 2 el spin pulsado llega a su lmite de posicin: El sistema mantiene fija la posicin de la cmara.

#3 #4

Animacin 3D del Raquis Cervical

45

MATERIAL Y MTODOS2.1.4.3.- Cambiar orientacin

Requerimientos

El usuario pulsa sobre la ventana de la animacin para modificar la orientacin de la cmara libre.

Detalles del caso de usoNombre: Cambiar orientacin. Actores: Usuario. Precondiciones: Debe haber una animacin cargada en el programa y estar activa la cmara libre. Postcondiciones: La orientacin de la cmara libre vara en funcin de la modificacin realizada.

Flujo de eventosa 1. Intencin de Usuario El usuario pulsa el botn izquierdo del ratn y arrastra sobre la ventana de la animacin. Obligaciones del Sistema

2. 3.

4.

El sistema obtiene las coordenadas de ratn. El sistema calcula el incremento entre la posicin de pulsacin y la de arrastre. El sistema modifica la orientacin de la cmara en funcin del incremento calculado.

Extensiones sncronas #1En 1 la posicin de arrastre sobrepasa los lmites de la ventana de la animacin: El sistema no actualiza la orientacin mientras que el puntero no se site de nuevo, en la misma accin de arrastre, sobre la ventana de la animacin.

Animacin 3D del Raquis Cervical

46

MATERIAL Y MTODOS

Diseo de la aplicacin

2.2.- Diseo de la aplicacin2.2.1.- Arquitectura del proyectoEl proyecto est organizado en torno a tres mdulos principales relacionados: Animacin Ogre, Interfaz y Recursos Externos.

ANIMACIN OGRE Carga de la malla Carga de materiales Control de la animacin

INTERFAZ Captura de eventos Measurement Studio

RECURSOS EXTERNOS Archivos .mesh\.skeleton Scripts de materialesFigura 15: Esquema de la arquitectura del proyecto

Animacin 3D del Raquis Cervical

47

MATERIAL Y MTODOS2.2.1.1.- Animacin Ogre

Diseo de la aplicacin

Este mdulo se encarga de todas las funcionalidades del programa que estn relacionadas con la animacin 3D. Por tanto su rango de actuacin se define: Inicializacin del motor Ogre con la carga de todos los recursos necesarios para su ejecucin. Carga de los recursos externos como la malla, el esqueleto y los materiales de los que dispondr el modelo. Lectura de los parmetros enviados por la interfaz y actualizacin de la animacin en funcin de stos. Captura de eventos de teclado que permiten modificar la animacin.

2.2.1.2.- InterfazEste mdulo es el que est en contacto directo con el usuario de la aplicacin. Las funcionalidades principales son: Inicializa las libreras necesarias para la ejecucin del programa. Define el aspecto visual del programa y la disposicin de sus elementos. Captura eventos producidos por el usuario. Enva parmetros al mdulo de Animacin Ogre en funcin de la interpretacin de estos eventos. Permite la interaccin entre la grfica de Measurement Studio y los elementos de la interfaz. Actualiza elementos de la interfaz relacionados con la animacin 3D.

2.2.1.3.- Recursos ExternosEl contenido de este mdulo se cie a los archivos necesarios para la carga del modelo 3D con el que trabaja el mdulo de Animacin Ogre: Archivos .mesh: modelacin del objeto 3D. Archivos .skeleton: encargados de definir la deformacin de las mallas y sus posibilidades de movimiento. Archivos .material: su funcin es la definicin de los materiales a mostrar, as como su variacin dependiendo del punto de vista o localizacin de la cmara.

Por tanto se trata de un mdulo que nicamente se emplea como fuente y no tiene parmetro alguno.

Animacin 3D del Raquis Cervical

48

MATERIAL Y MTODOS 2.2.2.- Arquitectura de clases

Diseo de la aplicacin

Las clases utilizadas siguen la arquitectura del proyecto y se organizan de manera anloga. Se distingue entre los mdulos de Interfaz y de Animacin de Ogre.

ANIMACIN OGRE FrameListener MyFrameListener

INTERFAZ CDialog CProyectoDlg CAboutDlg

COgreApplication COSFDialog

Figura 16: Arquitectura de clases

2.2.2.1.- Clases OgrePara realizar toda la funcionalidad el mdulo de Animacin Ogre se han empleado las siguientes clases: FrameListener: clase creada por defecto en las libreras de Ogre. Esta clase permite la recepcin de notificaciones para eventos generados. Incorpora los siguientes mtodos: o frameStarted: se ejecuta cuando un frame est en situacin de ser renderizado. o frameRenderingQueued: se ejecuta cuando todos los objetivos han emitido una seal de que su renderizado ha acabado pero antes de que se muestre el renderizado en pantalla. o frameEnded: se ejecuta cuando un frame ha sido renderizado. MyFrameListener: clase que hereda de FrameListener donde se han implementado todos los eventos que pueden modificar el estado de la animacin o la visualizacin de la misma. Incorpora los siguientes mtodos seguidos de su funcionalidad: o frameStarted: mtodo heredado y sobreescrito de FrameListener. En este mtodo se ha implementado la funcionalidad para realizar el ncleo de la animacin.

-

Animacin 3D del Raquis Cervical

49

MATERIAL Y MTODOSo o o o o o o o o o o

Diseo de la aplicacin

resetAnimation: sita el momento de animacin en el cursor izquierdo (por defecto en el inicio). finalAnimation: sita el momento de animacin en el cursor derecho (por defecto al final). playAnimation: inicia la animacin. Si se encuentra en el instante final en el momento de su ejecucin vuelve al inicio. rewAnimation: inicia la animacin en sentido inverso. Si se encuentra en el instante inicial en el momento de su ejecucin vuelve al final. pauseAnimation: pausa la animacin. sliderControl: permite la modificacin del momento de animacin mediante la manipulacin del slider situado en la interfaz. spinControl: permite la modificacin de la posicin de la cmara mediante la manipulacin de los spins situados en la interfaz. wheelMouseControl: modifica la profundidad de la cmara. cameraControl: modifica la orientacin de la cmara. resetCameraPosition: devuelve la cmara libre a su posicin y orientacin por defecto (posicin frontal). viewAnimation: permite visualizar u ocultar las mallas y los ejes asociados a la animacin.

-

COgreApplication: clase donde se inicializan todos los recursos necesarios para la ejecucin de Ogre, adems de cargar el modelo 3D y obtener los datos necesarios para la realizacin de la animacin. Contiene la declaracin de los mtodos siguientes: o createRoot: mtodo donde se crea el elemento raz que se utiliza como base para configurar Ogre. o defineResources: encargado de la carga del archivo de configuracin y de definir la localizacin de los recursos mediante la lectura del fichero resources.cfg obtenido tras la instalacin de la librera Ogre. o setupRenderSystem: define todas las opciones de visualizacin que tiene la ventana Ogre a mostrar (pantalla completa, resolucin, nivel de detalle, tarjeta grfica que cargar la informacin). o createRenderWindow: creacin de la ventana de Ogre con las opciones de configuracin descritas. o initializeResourceGroups: inicializacin de recursos. o setupScene: creacin de elementos bsicos de la escena: cmara principal, punto de vista y director o gestor de la escena. o setupInputSystem: inicializacin de eventos de entrada. En este caso slo se manejaran eventos de teclado puesto que los de ratn se manejan desde la interfaz. o createScene: carga de las mallas del modelo, de una luz inicial e inicializacin de las cmaras de las que constar la animacin. o readFile: lectura de un fichero de pruebas y rellenado de la estructura con los datos de los ngulos en funcin del tiempo. o createAnimation: creacin de la animacin mediante los datos obtenidos en la estructura. o destroyAnimation: liberacin de los recursos generados al crear una animacin. o destroyAllAnimations: liberacin de los recursos generados por todas las animaciones creadas. o createFrameListener: llamada al constructor de la clase MyFrameListener para interactuar con la animacin creada. o startRenderLoop: comienzo de la renderizacin y llamada al mtodo frameStarted de la clase MyFrameListener.

Animacin 3D del Raquis Cervical

50

MATERIAL Y MTODOS2.2.2.2.- Clases Interfaz

Diseo de la aplicacin

La definicin de la interfaz grfica en este proyecto incorpora las siguientes clases: CDialog: clase bsica para la creacin y muestra por pantalla de dilogos mediante MFC. Existen dos tipos de dilogos: modal y modeless. o Un dilogo de tipo modal debe ser cerrado por el usuario antes de que la aplicacin contine su ejecucin. o Un dilogo de tipo modeless permite al usuario mostrar el dilogo y seguir con otra tarea sin cancelar o cerrar el dilogo mostrado. En este proyecto se ha empleado el tipo de dilogos modeless debido a su versatilidad de utilizacin. Sin embargo, un objeto de tipo CDialog no se puede definir por s mismo. Un objeto de tipo CDialog es una combinacin de una plantilla de dilogo y una clase derivada de CDialog. CProyectoDlg: clase derivada de CDialog que crea el dilogo principal de la interfaz. Sobre esta clase se ha implementado toda la funcionalidad que incorpora la interfaz de usuario. Se han controlado todo tipo de eventos, excepto los eventos de teclado que se han controlado en el mdulo de Ogre, que permiten al usuario interactuar con la aplicacin. Los mtodos implementados los podemos dividir en: o Eventos de la interfaz: mtodos ejecutados cuando el usuario interacta de alguna forma especificada con los elementos situados en la interfaz (pulsacin de botones, movimiento del ratn, temporizadores). Estos mtodos poseen una cabecera por defecto. o Funciones propias: mtodos creados para obtener algunos datos necesarios que proporcionan algunos elementos de la interfaz. En algunas ocasiones se implementan para facilitar la lectura del cdigo y obtener funciones ms diversificadas. o Eventos de Measurement Studio: mtodos ejecutados cuando el usuario interacta de alguna forma con la grfica mostrada. Los mtodos disponibles dependen del modo de recepcin de eventos en el que se encuentre la grfica generada. CAboutDlg: clase creada en el contenido de CProyectoDlg y que tambin deriva de CDialog. Es una clase creada por defecto al emplear MFC y se encarga de mostrar un dilogo con informacin relativa a las herramientas utilizadas.

-

-

2.2.2.3.- Clases externasLas clases externas corresponden a clases no implementadas en el proyecto actual que se han descargado para incorporar la funcionalidad de la que disponen a este proyecto. COSFDialog: esta clase incorpora la funcionalidad necesaria para utilizar los dilogos tipo de apertura y guardado de ficheros. En este proyecto slo se ha empleado la funcionalidad de apertura con el fin de cargar las pruebas seleccionadas. Adems incorpora las siguientes opciones: o Modificacin del aspecto de los dilogos mostrados para la apertura y salvado de ficheros. o Posibilidad de seleccin mltiple. o Filtrado de las extensiones de fichero a mostrar. o Obtencin de las rutas de los ficheros seleccionados.

Animacin 3D del Raquis Cervical

51

MATERIAL Y MTODOS 2.2.3.- Ficheros de prueba de pacientes

Diseo de la aplicacin

Los ficheros que se muestran en la aplicacin son obtenidos de pacientes reales y estn proporcionados por el Instituto de Biomecnica de Valencia (IBV). Estos ficheros se obtienen fruto del proceso que realiza el programa NedCervical de los datos muestreados con el sistema de vdeo digital Kinescan/IBV. As mediante las coordenadas 3D de cada uno de los marcadores obtenidas por este sistema, es posible realizar el clculo de los ngulos en los ejes X, Y, Z en funcin del tiempo para establecer los movimientos realizados por el paciente en cuestin.

2.2.3.1.- Tipo y nomenclaturaLos ficheros generados son simples archivos de texto con extensin .txt para facilitar la lectura e interpretacin de los datos. La lectura de los datos incluidos en los ficheros se realiza mediante el uso de libreras que incorporan utilidades para la manipulacin de ficheros (vase fstream para el caso del lenguaje C++ en el que se ha realizado el proyecto). Sin embargo y segn un convenio obtenido con personas vinculadas a la empresa donde se ha realizado el proyecto, estos ficheros deben recibir una nomenclatura especfica segn la prueba de la que se trate. De esta forma se distinguen 9 tipos de pruebas: Prueba de flexo-extensin (1): el paciente realiza movimientos variando fundamentalmente el eje X (similar a una afirmacin continuada). Este fichero puede recibir los nombres: angulos_1.txt o v2_1.txt. Prueba de flexo-extensin (2): el paciente realiza los mismos movimientos que la prueba anterior para corroborar su cinemtica. Este fichero puede recibir los nombres: angulos_2.txt o v2_2.txt. X Y Z

-

Figura 17: Movimiento de flexo-extensin en un paciente sano

-

Prueba de flexin lateral (1): el paciente realiza movimientos variando fundamentalmente el eje Z (balance de la cabeza a los lados manteniendo hombros rectos y mirada al frente). Este fichero puede recibir los nombres: angulos_3.txt o v2_3.txt.

Animacin 3D del Raquis Cervical

52

MATERIAL Y MTODOS

Diseo de la aplicacin

-

Prueba de flexin lateral (2): el paciente realiza los mismos movimientos que la prueba anterior para corroborar su cinemtica. Este fichero puede recibir los nombres: angulos_4.txt o v2_4.txt.

X

Y

Z

Figura 18: Movimiento de flexin lateral en un paciente sano

-

Prueba de rotacin (1): el paciente realiza movimientos variando fundamentalmente el eje Y (similar a una negacin continuada). Este fichero puede recibir los nombres: angulos_5.txt o v2_5.txt. Prueba de rotacin (2): el paciente realiza los mismos movimientos que la prueba anterior para corroborar su cinemtica. Este fichero puede recibir los nombres: angulos_6.txt o v2_6.txt. X Y Z

-

Figura 19: Movimiento de rotacin en un paciente sano

Animacin 3D del Raquis Cervical

53

MATERIAL Y MTODOS

Diseo de la aplicacin

-

Prueba funcional (1): el paciente mira a una lmpara situada arriba a su izquierda, despus mira un cuestionario situado en sus rodillas y por ltimo mantiene la mirada al frente. Este fichero puede recibir los nombres: angulos_9.txt o v2pf_1.txt. X Y Z

Figura 20: Movimiento de la prueba funcional 1 en un paciente sano

-

Prueba funcional (2): el paciente mira a una lmpara situada encima de su cabeza, despus mira un cuestionario situado en sus rodillas y por ltimo mantiene la mirada al frente. Este fichero puede recibir los nombres: angulos_8.txt o v2pf_2.txt. X Y Z

Figura 21: Movimiento de la prueba funcional 2 en un paciente sano

Animacin 3D del Raquis Cervical

54

MATERIAL Y MTODOS-

Diseo de la aplicacin

Prueba funcional (3): el paciente mira a una lmpara situada arriba a su derecha, despus mira un cuestionario situado en sus rodillas y por ltimo mantiene la mirada al frente. Este fichero puede recibir los nombres: angulos_7.txt o v2pf_3.txt.

X

Y

Z

Figura 22: Movimiento de la prueba funcional 3 en un paciente sano

2.2.3.2.- Estructura del contenidoTodos los ficheros responden a un mismo patrn en cuanto a la disposicin de los datos. Este patrn se obtiene fruto de un convenio con la empresa que proporciona los datos de estas pruebas. De esta forma el patrn y orden en que se obtiene es el siguiente: Tiempo de obtencin de los ngulos (segundos). Valor del ngulo X (grados). Valor del ngulo Z (grados). Valor del ngulo Y (grados).

La posicin de los marcadores se actualiza con una frecuencia de 25 Hz (cada 0.04 segundos), ya que es la velocidad a la que trabajan las cmaras de Kinescan/IBV. Por tanto, en las pruebas se obtiene un valor de los ngulos en los tres ejes cada intervalo de tiempo comentado.

Figura 23: Ejemplo del contenido de un fichero de pruebas

Animacin 3D del Raquis Cervical

55

MATERIAL Y MTODOS 2.2.4.- Interfaz de usuario

Diseo de la aplicacin

La interfaz grfica de usuario ha sido diseada teniendo en cuenta, fundamentalmente, aspectos relacionados con la usabilidad. La aplicacin desarrollada en este proyecto va a ser utilizada generalmente por personas que no estn en la obligacin de poseer conocimientos informticos avanzados y, partiendo de esta base, la interaccin con el usuario debe ser simple, intuitiva y clarificadora. El usuario recibe en todo momento una respuesta del programa en torno a operaciones consideradas como invlidas, indicndole cmo llevarlas a cabo de manera correcta mediante mensajes. Considerar la usabilidad como pilar fundamental a partir del cual construir la capa que interacta con el usuario atiende, sin lugar a dudas, a la calidad de uso. El hecho de utilizar la aplicacin debe favorecer el objetivo que el usuario busca con su ejecucin y fomentar su uso; en ningn caso debe ser una experiencia ardua o que requiera una iniciacin previa. Debe permitir alcanzar objetivos especficos con efectividad, eficiencia y satisfaccin. Adems y partiendo del hecho de considerar la usabilidad como primer factor para el desarrollo de la interfaz, la esttica no se ha descuidado. Se ha utilizado un estilo de ventanas tipo habitual en las aplicaciones ejecutadas en Windows con el fin de que el usuario se sienta cmodo con su visualizacin. El hecho de mantener este estilo permite dar cierta confianza y seguridad al considerar los elementos que contiene la interfaz como cotidianos.

2.2.4.1.- Diseo y elementosLa disposicin y eleccin de los elementos a utilizar est estudiada para fomentar tambin la facilidad de uso de la aplicacin. El simple hecho de colocar los botones generales en la parte superior derecha de la ventana, los archivos cargados en la parte superior o la posibilidad de interactuar con los elementos mostrados de forma directa no atiende a una razn trivial: todo se basa en facilitar la labor de uso de la aplicacin.

Animacin 3D del Raquis Cervical

56

MATERIAL Y MTODOS

Diseo de la aplicacin

2

1

4

6

3

5Figura 24: Disposicin y sealado de elementos de la interfaz

Se distinguen las siguientes zonas en la representacin de la interfaz: Zona de botones generales (1): estos botones son los iniciadores de las funciones que se pueden realizar en la interfaz. Son los elementos principales que condicionan los datos mostrados por el resto de elementos. Permiten la apertura de ficheros de prueba, el borrado de los mismos, cargar la animacin correspondiente a un fichero seleccion