3DControls - Interface utilisateur 3D
3D Controls v0.6.2
     
Primitive graphique

La base graphique est la notion de Face: (pour ce familiarisé: voir le Debugeur)

  • peut contenir une autre face, positionné par un layout
  • text (a sont propre picking)
  • couleur (materiels)
  • texture
  • type de melange entre couleur et texture
  • curving (rend rond, lisse)
  • taille
  • rotation
  • translation
  • blending
  • antialiasing

Un control est souvent materialisé par un cube, soit 6 faces; un control peut donc contenir un autre control.

Moteurs (partie pour les developpeur)

ControlEngine: systeme qui crée les primitve graphique et les sauver dans une tructure arboresente

 
Les controls

Chaque controls dois etre la base de l'interface et dois etre le plus complet et generalisable possible.
Tout comme la phylosophie des outils des shell unix, les nombreuses fonctionnalitées doivent etre un gage de longevité.

Le hightligh est naturel, car le curseur est une lampe qui entour d'un hallo ce qui est a proximité (montrer sur une image)

Control: (image de chaque control, normal,alterné, si touche Windows les extended)

  • MasterContainer, represente de Desktop qui est toujours paralelle a l'ecrant. Il gere les controls ancrée, il contient:
    • l'Univers
    • Le menu general (equivalent du systray)
    • Les curseurs (pointeur ou repere)
    • Les fenetre en mode plein ecrant
    • Des information divers
      • version du moteur 3D
      • version OpenGL et extenssion valide, et ce qui est utilisé
      • Performance et resource (FPS,CPU,nbVertex)
    • Fond d'ecrant (image, espace etoilé, etc ...)
  • Univers, contient tout les controls bougeant
  • TestBox: zone de saisie, defiler les pages suivant position Z, page a une autre sur un autre niveau (epaisseur comme une page d'un libre)
    boutton undo redo, font taille, gras italique souligné, alignement, orientation,copier coller, affiché si boutton Window appuyé ==> petit traitement de text
  • Title fait pour etre contenu dans une fenetre
  • TreeView/ListView fusion ==> EnumerateView, une listView est une treeView sans arboresence + column
  • Extended (ou tiroire, glissier) logé a l'interieur d'une face, si en se deplient rentre en collision avec un autre, rend l'autre blending voir gestion de collision
    permet de hierarchisé . Se logue a l'interieur d'un control, fait un titoire, permet de remplacer:
    • ComboBox = textBox+extended (liste des chois possible)
    • Menu d'une fenetre = Title+extended
    • Boutton "fonction avancé" qui agandie la fenetre est une fenetre extended
    • Remplace beaucoup de menu contextuel ==> homogenieité car proximité geographique
  • Groupe, tres facil de montrer qui contien qui, quand des volum le montre (fenetre contien un titre qui contien des boutons evident en 3D, cela devien un object presque palpable, ou pourais meme ajouter un peut de mecanique)
 
Compilation

Dépendance: (pour simplifié la compilation tout est deja inclus dans le ZIP)

Bien que la grande majorité des fichier soit Cross-platforme, l'utilisation des mots clef Microsoft __event empeche pour le moment la portabilité sous Mac et Linux, il me faudra trouvé un substitue et utiliser la GLUT probablement.

Dans Visual C++ 6.0 et .NET

  • ajouter dans les paths des include le repertoire "include" du projet
  • ajouter dans les paths des lib le repertoire "lib" du projet
 
Status
béta version, pb de performance, pb de stabilité
 
Avenir
  • optimisation des régionages (utilisation de CreatePolyPolygoneRgn en CreatePolygoneRgn)
  • ajout dans le débug d'insertion de face
  • débugueur devient éditeur et sauvegarde en un format .3DRC
  • add-in d'éditeur de ressources dans Visual Studio 6.0 et .NET ainsi qu'un EXE reprenant le même principe si une autre IDE est utilisée

Acceuil | Haut de page | Rapporter une erreur