PDA

Voir la version complète : Plantage de C4D lors de l'exécution d'un plugin fait maison



Licorna
05/03/2006, 17h32
Bonjour.
Je me suis lancé depuis peu dans la programmation en C.O.F.F.E.E. et je rencontre un problème avec un filtre d'exportation qui a pour simple but d'écrire dans un fichier les coordonnées de tous les objets de la scène et qui fait systématiquement planter C4D lors de son exécution, après avoir rempli la boîte de dialogue demandant le nom du fichier à exporter.
J'ai longtemps étudié la documentation du C.O.F.F.E.E. mais je ne vois vraiment pas ce qui ne va pas dans mon code et j'apprécierais votre aide. Voici mon code dans lequel je dérive la classe FilterPlugin :


class exporteur_coord : FilterPlugin
{
public:
exporteur_coord();
GetName();
GetID();
Identify(probe,fname);
Save(doc,fname,obj,mat,env,dialog);
};

exporteur_coord::exporteur_coord()
{
super();
}

exporteur_coord::GetID()
{
return 1000001;
}

exporteur_coord::GetName()
{
return "exporteur_coord";
}

exporteur_coord::Identify(probe,fname)
{
return TRUE;
}

exporteur_coord::Save(doc,fname,obj,mat,env,dialog )
{
var object=new(BaseObject);
object=doc->GetFirstObject();
var file=new(BaseFile);
file->Open(fname,GE_WRITE,FILE_DIALOG,GeGetByteOrder());
var pos;
while(object!=NULL)
{
pos=object->GetPosition();
file->WriteReal(pos.x);
file->WriteReal(pos.y);
file->WriteReal(pos.z);
object=object->GetNext();
}
}

main(doc,op)
{
Register(exporteur_coord);
}