Feedback teacher
danbraik opened this issue · 0 comments
danbraik commented
****Algebre: OK
- On aurait pu lever une exception si les rangs des matrices ne sont pas compatibles:
if A'Last(2) /= B'Last(1) then
raise Constraint_Error;
end if;
****Frame: OK
- Manque un peu de clarté. Il aurait fallu une séparation de procédures. Par exemple, un pour les tests des points et un autre qui gère la luminance.
****Scene: OK
- CamPosition et Ti peuvent être gérés comme variables locales dans les procédures où ils sont utilisées.
- Si on gère CamPosition comme une variable globale, l'appel au procédure Position_Camera perd son sens. On aurait pu mettre directement CamPosition comme paramètre dans la procédure Projection (P1 := Projection(f.P1, CamPosition, E, Ti);).
- Attention à enlever les "null;" qui ne sert à rien.
****Stl: OK. Manque un peu de clarté.
- Établir une limite de 128 caractères pour chaque mot peut être éventuellement restreint. On préfère ne pas déclarer des limite "à la main"
- Le types peuvent être déclarés dans le fichier ads.
- Indentation un peu confuse.
- Manque une vraie structuration du code avec des procédures auxiliaires. Par exemple, on pourrait avoir : Parse_Facet puis Parse_Vecteur. La tète d’une fonction comme chargement_ASCII devrait se ressembler plutôt à ça, sachant qu’on a structuré notre code en plusieurs procédures et fonctions qui se focalisent sur une seule tache:
Facets_Count := Count_Facets(Nom_Fichier);
M := new Tableau_Facette(1..Facets_Count);
Open(File => File, Mode => In_File, Name => Nom_Fichier);
--parse header
Match_Line_Start(File, "solid ");
--parse facets
for I in 1..Facets_Count loop
Parse_Facet(File, M, Current_Facet);
end loop;
--parse footer
Match_Line_Start(File, "endsolid ");
Close(File);
return M;
- On aurait pu envisager un package où on traite de manière générique tout ce qui concerne la récupération d’un mot, le saut des espaces, ou la récupération d’un flottant.
- On aurait pu séparer la lecture des fichier ascii et binaire dans différents packages.