EXPERIENCED GOD REQUIRED... CANDIDATES SEND CV
Funcionalitats:
- Alocatació de memòria (BigBang) i Destrucció (BigCrunch)
- Màxims rígids de num d'objectes?
- Màxim rígid de memòria total i alocatació contigua? (Millor!)
- Escales, magnituds estàndar...
- Temps propi?
- Serialització?
VEURE SAPHYRE I Projecte.ps
- Tipus de dada que genera: a(S_i(t)) => V3D, etc...
- Derivades: dads, etc...
- Informació de l'objecte sobre el que està definit
- Decisió de disseny: A alt nivell els connectors no es creen sols sinó que es "demanen" als Object i aquest els crea internament... això és així pq NO té sentit l'existència d'un Connector sense l'Object associat, i pq potser caldrà tenir diversos "models" d'un mateix Connectors per cada Model d'un Object i hauria de ser transparent a l'usuari.
! VEURE SAPHYRE I Projecte.ps
- Dades que genera: C( a(S_i(t), b(S_j(t) ) = 0 ò >= 0
- Derivades:
- Informació dels objectes sobre els que està definit:
Conjunt d'objectes que estant interactuant en un moment determinat. És la unitat mínima que tracten els solvers de restriccions.
El seu contingut pot canviar en qualsevol pas de la simulació. NO cal que pugui canviar en qualsevol moment del codi, només en algun punt determinat de cada pas de simulació (principi o final suposo) ...i si no, sempre es pot tenir una llista de canvis i fer-los de forma síncrona en el punt concret on es vulgui)
==> MILLOR que tenir una entitat "Partition", pensant-hi més, la partició només té sentit en els Solvers, no fora d'ells, per tant haurien de ser els Solvers que puguin aprofitar el particionament del món els que guardin internament aquesta partició... Això és el que fa el ConstraintSolverFactorized (hauria de ser Partitioned no?) a Saphyre, de fet...
==> PER TANT, el que cal és facilitar la construcció i actualització de particions en els Solvers, NO pas manteir-les des del Kernel!
=> Solver, internament ha de poder consultar els objs del System associat i en principi NO cal que guardi la llista d'objectes... el que si que ha de guardar internament són dades propies com les Partitions, les matrius del sistema, etc...
=> Usar alguna llibreria de grafs o crear-la ad-hoc (mínima!!)
Nucli de Saphyre2. Representa el conjunt de S2_System que la llibreria tracta.
Responsabilitats:
- Gestió Sistemes
- Gestió Objectes del Sistema seleccionat (per alleugerir interfície en la creació...)
- Gestió d'interaccions entre Sistemes (configuració del les fusions, etc...)
- Actualització global durant dt => 1 Iteració del bucle principal de la simulació
- Comunicació d'events a l'aplicació
Funcionalitats:
- Real
- P3D = (Real, Real, Real)
- V3D = (Real, Real, Real)
- Angle = [0,2Pi], i que tingui cast a Real, a float i a double automàtics i inline!! Assegurar normalització de rang i ops trig consistents!!!
- EulerAngles = (Angle, Angle, Angle)
- Quat = (Real, Real, Real, Real)
- M3x3 = Real[3][3]
- M4x4 = Real[4][4]
- Matrix
- DiagonalMatrix
- BlockMatrix (COMPTE AMB LA TRASPOSICIO PER BLOCS!!)
- SparseMatrix
- VectorialOps: Mòdul amb ops de baix nivell entre vectors de float/double que es podria implementar en SIMD, SSE o el que calgui...
ESTIC Dubtant sobre si fer servir mètodes que usin tipus interns (SetPos( P3D p )) o bé seqüències de floats com a paràmetres (SetPos(x,y,z))
- CAL: Homogenitzar operacions entre vectors, matrius, matrius de mida fixa, etc... potser mitjançant casts automàtics o fent molts operadors sobrecarregats (el problema és el tipus de resultat però...)
Funcionalitats:
- Sortida de text (en plan cout)
- Reals
- Punts
- Matrius
- Quaternions
- Visualització de magnituds (amb nom opcional i color)
- Point
- Vector
- Reference System
- ... => Modul Debug guardaria llista d'objectes visualitzables i els pintaria. Al final del frame la llista s'esborraria.
blablabla...
Generated on Tue Aug 10 15:58:31 2004 for Saphyre2 by
1.3.5