|
Sweet Home 3D Forum » List all forums » » Forum: Forum en français » » » Thread: Écrire un plugin pour simuler l'éclairage de la course du soleil » » » » Post: Re: Écrire un plugin pour simuler l'éclairage de la course du soleil |
Print at Dec 16, 2025, 3:51:30 AM |
| Posted by Puybaret at Mar 28, 2010, 9:08:51 AM |
|
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil 1) est-il possible de créer un widget global avec tous les petits widgets dont j'ai besoin, widget global que je pourrais ensuite insérer dans les 2 panels, sans dupliquer du code ? Tu peux organiser ton code comme tu veux, et créer un nouveau type de widget pour le plug-in si tu veux. Mais n'aie pas de scrupule à faire du copier-coller quand c'est pour une fois et pour quelques lignes de code... ![]() 2) je ne vois pas trop comment faire un plugin, puisqu'il s'agit de modifications dans PhotoRenderer. Cela veut donc dire ré-écrire cette classe complète ? Dans les faits, ça consiste à faire en effet un copier-coller de la classe PhotoRender et de modifier ce dont tu as besoin. Je sais bien que ça n'est pas une attitude géniale de programmation, mais je préfère un copier-coller avec des commentaires indiquant tes modifications plutôt de rendre public tous les champs et/ou méthodes au cas où des développeurs comme toi pourraient en avoir besoin (surtout si c'est pour donner accès à une instance d'une classe comme SunflowAPI qui n'est pas un modèle de programmation comme tu as pu le remarquer aussi). Dans mon esprit, une nouvelle API public = une nouvelle API à maintenir. Je suis donc convaincu qu'encapsuler au maximum reste la meilleure stratégie pour maintenir un logiciel sur le long terme. Cela ne veut pas dire aussi que je ne suis pas prêt à ajouter des options dans PhotoRenderer pour paramètrer les calculs comme tu veux. Mais ajouter par exemple une option ignoreWindowPanes me gêne car j'espère plutôt que SunFlow finisse par être capable de prendre en compte la lumière qui traverse les carreaux d'une fenêtre. Si le développeur de SunFlow n'agit pas, je vais finir par essayer de gérer cela moi-même (j'ai déjà modifié quelques classes de SunFlow pour gérer le multi tâche et corriger un bug). Pour terminer, le plug-in est bien plus simple à mettre en place : - liberté de livrer une version quand tu veux (pas besoin d'attendre la sortie d'une version de Sweet Home 3D), - liberté d'ajouter des fonctionnalités compliquées qui n'intéressent pas le grand public, - liberté de programmer des bidouilles comme la suppression des carreaux de fenêtres, - pas besoin de traduire en 16 langues les éléments de l'interface utilisateur. J'espère que je t'ai convaincu. ![]() ---------------------------------------- Emmanuel Puybaret, Sweet Home 3D creator |
|
|
Current timezone is GMT Dec 16, 2025, 3:51:30 AM |