3DS FILES VIEWER

wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011 - 22 juin 2006 à 20:07
cs_cumu Messages postés 27 Date d'inscription dimanche 4 juin 2000 Statut Membre Dernière intervention 13 juillet 2007 - 13 juil. 2007 à 15:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38250-3ds-files-viewer

cs_cumu Messages postés 27 Date d'inscription dimanche 4 juin 2000 Statut Membre Dernière intervention 13 juillet 2007
13 juil. 2007 à 15:57
Concernant les fuites je rajouterai également ces deux bouts de codes dans mathlib.h
==========================================================================================
inline vec3& Cross(const vec3 &v1,const vec3 &v2) {
vec3 *ret = new vec3(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
return *ret;
}

// This calculates a vector between 2 points and returns the result
inline vec3& Vector(const vec3 &vp1, const vec3 &vp2) {
vec3 *ret = new vec3(vp1.x - vp2.x, vp1.y - vp2.y, vp1.z - vp2.z);
return *ret;
}
===============================================================================================

A corriger en remplacant par

==========================================================================================
inline vec3& Cross(const vec3 &v1,const vec3 &v2) {
vec3 ret(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
return ret;
}

// This calculates a vector between 2 points and returns the result
inline vec3& Vector(const vec3 &vp1, const vec3 &vp2) {
vec3 ret(vp1.x - vp2.x, vp1.y - vp2.y, vp1.z - vp2.z);
return ret;
}
===============================================================================================

Pour le post d'avant il faut utiliser un smart pointer pour verts,normals,texverts et pfaces afin de liberer automatiquement la mémoire.
cs_cumu Messages postés 27 Date d'inscription dimanche 4 juin 2000 Statut Membre Dernière intervention 13 juillet 2007
13 juil. 2007 à 12:16
Un sérieux manque de gestion de la mémoire.

Les fichier 3DS.h et 3DS.cpp comporte de nombreuses fuites de mémoire notament à cause de la structure de données :

struct t3DObject
{
int numOfVerts;
int numOfFaces;
int numTexVertex;
int materialID;
bool bHasTexture;
bool bHasmaterialID;
char strName[255];
vec3 *pVerts;
vec3 *pNormals;
vec2 *pTexVerts;
tFace *pFaces;
};

Des pointeur dans la structure qui ne sont bien sûr jamais déchargé via un delete[] .. !!!!

Cette partie du code source est donc à revoir

Une version sans fuite de mémoire serait donc la bienvenue car cette source est vraiment trés interressente !
SylvainSSiri Messages postés 4 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 28 mars 2007
6 oct. 2006 à 17:10
Salut,jaime beaucoup ton programme.J'utilise 3ds max avec un ami et je vais essayer mes projets sur ton visualisateur.Si tu pourrais m'envoyer tes futures mises à jours de ce logiciel.Merci.

SylvainSSiri@hotmail.com
Bel0 Messages postés 71 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 14 septembre 2007
23 juin 2006 à 08:53
Dans ton fichier principale, tu devrais remplacer ta boucle qui s'occupe des messages par celle-ci. Ca évite que le processeur soit constamment utilisé à 100% (ce qui est qd meme mieux). En testant, je n'ai pas vu de différence entre ta boucle et celle-ci.

while (GetMessage(&msg, NULL, 0, 0) != 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
cs_hibi Messages postés 23 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 20 novembre 2007
22 juin 2006 à 23:18
gbourgeois0019:
j'ai compilé avec visual C++ (Warining level 3)et ça donne pas de warnings,
le warning level 3 et une option par default de VC++.
avec un (warning level 3) il y a tjrs des warnings
gbourgeois0019 Messages postés 152 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 2 juin 2008 1
22 juin 2006 à 21:45
Faute de temps je n'ai pas regarder le code mais à l'execution ca ma l'air bien !

Seulement p-e que tu pourrais éviter les warnings ;)
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
22 juin 2006 à 20:07
j'aime beaucoup a par le fait que ce soit OpenGL mais bon ^^ bon prog : 10/10
Rejoignez-nous