www.MignonSoft.com - Développement C++
3D Controls (v0.5.1)

! Ceci n'est plus pas la derniere version
SourceForge.net Logo

:: Presentation ::

Le but ultime de ce projet est la libre utilisation d'un framework 3D, avec une gestion de tous les controles classiques. Le code 3Détant issu d'OpenGL, le portage sera d'autant accentuer vers les plateformes UNIX ou MAC.

A terme ce projet permettra une alternative au framework de MS, mais restera coopératif avec les API existants (ce n'est pas un nouveau desktop).

Pour tester cette "mouture", le plus important est la performance de la carte 3D.

Interface utilisant des contrôles 3D, une sote de GUI 3D mais qui reste intégrée à windows.

Ceci n'est plour l'instant qu'une petite demo en 3D pour tester des Controls de base. Je proposerais sous peut des libraries C++ anssi que tout les examples possible pour son integrations dans vos propres logiciels.

   
:: Utilisation ::

L'interface utilise essentielement les meme convention que les GUI 2D traditionel:

  • bouton gauche = selection
  • bouton droit = action contextuel
  • bouton centre = deplacement en 3D
    • roulette = deplacement dans les Z
    • + deplacement = rotation de l'univers local (le control)
  • click gauche de la zone titre "Poste de travail" pour déplacement
  • click doit, affiche un curseur "Repere"
  • touche F11: affiche la configuration de rendu en cours
  • touche F11+t: toogle de l'utilisation du titre du fenêtrage
  • touche F11+f: toogle entre plein écran et petit
  • touche F11+d: affiche l'interface de débugage
  • deplacement rapide de la souris avec appui d'une touche, pous relanchement lance Inertia

Thermes:

Inertia:

Principe permetant d'utilisé l'inertie d'un deplacement de souris pour la prolongé temporairement. Ceci peut permet par example de "geter" une fenetre, en la saisissant et la deplacent rappidement, puis relacher la selection. La fenetre poursuis alors un cours moment la meme trajectoire.

Ceci est tres experimental, des test a l'utilisation sons en cours, il me faudra sans doute configurer au mieux ces parametres.

Univers:

Un univers est un espace tridimentinoelle contenant des objects.

Le desktop est un univers, tout control possede sons propre univers local, et les elements suivent les tailles et orientations des univers.

Controls:

Les controls sont les affichage graphiques de l'interface, existe:

  • Control, tout control doit herité de lui
  • Container, contient des controls dans une zone cliente
  • Button, boutton, s'ecrase quand il est appuyé
  • TextBox, zone de saisie ou d'affichage de valeur
  • Title, un titre est composé d'un icone, un fond degradée, bouton maximisé,minimisé,fermeture
  • Window, contien un titre et une zone cliente
  • MsgBox, fenetre avec un text et un bouton Ok ou Cancel

Les autres controls classique sont a developper:

  • ListView, enumeration en colone de controls
  • TreeView, affiche en arbre de donnée
  • Dock, zone de resize et deplacements + magnetisme avec autre dock
 
:: Status ::
beta version, pb de performance, pb stabilité
 
:: Avenir ::
  • optimisation des régionages (utilisation de CreatePolyPolygoneRgn en CreatePolygoneRgn)
  • ajout dans le débug, d'insertion de face
  • débugeur devient éditeur et sauvegade en un format .3DRC
  • addin d'éditeur de ressources dans Visual Studio 6.0 et .NET ansi qu'un EXE reprenant le même principe si autre IDE utisée
 
:: Presse ::

Un projet similaire developpé par sun a vu le jour "3D Looking Glass" dont voici la démo commeciale.
Sans oublier l'interface de Lomghorme de MS.

La similitude est frappante entre mon projet et celui de sun (bien que qu'avant la version v0.4, je n'en avais pas connaissance), cela m'a énormément découragé au début, puis j'ai décidé de donner tous les éléments aux personnes curieuses. De plus la version de sun, bien que sepctaculaire, n'intègre pas l'ensemble de mes concepts, que je ne développerai pas ici (on ne sait jamais si sun écoute ...)

Historiquement la recherche d'un environement 3d survient depuis le début des années 90 avec ... l'Amiga (petite merveille de chez Commodor, qui m'a bercé un peu trop près du mur de la programmation!)

Voici une liste non exhaustive des projets du même type:

  • 1995, "Bob" un univers de raccourcis
  • 1997, "3D GUI" Xerox
  • 2002, "the task gallery" projet de microsoft, environnement 3d pour utiliser les logiciels ordinaires 2d
  • 2002, "3dosx", mac gère de la musique en 3d
  • 2003, "3d desktop" plus un multi desktop qu'une utilisation 3d des controles
  • 2003, 3dna v1.1 projet très similaire à celui de MS ci-dessus
 
:: Historique ::
  • le 07/03/2004: v0.5a disponible
    • a present en licence GPL v2
    • class de control Control, Button, Title ,Window ,TextBox ,MsgBox ,Container
    • ajout du Systray
    • ajout icon dans .EXE
    • une face a a present aussi un angleZ
    • ajout de la class Inertia qui gere la direction de l'inertie au relachement d'un boutton de la souris
    • conseil: si l'affichage 3D fait des escalier changer le mode de rendu en {Fill,Point} (pour carte 3d de base)
    • sauve la taille de la fenetre en mode non full screen
    • documentation disponible des class de projet par doxygen
    • gestion des mode de rendu polygonal
    • valueEditor mis a jour
    • nouvelle touche de racoursis, combinaison de F11+...
    • chaque control a a present une face caché qui la contien, cela permet des rotations/redimentionement plus simplements
  • le 19/12/2003: v0.4a disponible, corrections et ajouts dans le mode debug
    • des effets de lumiere ajoutés
    • correction des controles de lumières et fogs
    • on peut a présent gérer les textures
  • le 12/12/2003: v0.4 disponible
    • gestion avancée du debug mode, fog+lumière
    • lumière: gestion de plus de paramétres
    • fog: chaque face peut décider ou pas d'utiliser le fog si actif
    • class CObject dans les debugs
    • gestion de l'antialiasing (disponible pour GFoce3Ti minimum )
  • le 28/11/2003: v0.3 disponible