Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 3186 in orxonox.OLD for orxonox/trunk/importer


Ignore:
Timestamp:
Dec 15, 2004, 7:51:10 PM (20 years ago)
Author:
bensch
Message:

orxonox/trunk: mainly importer: doxygen Tags updated for real.

Location:
orxonox/trunk/importer
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/importer/Makefile.am

    r3182 r3186  
    1818                object.h \
    1919                array.h \
    20                 material.h
     20                material.h \
     21                stdincl.h
    2122
    2223
  • orxonox/trunk/importer/Makefile.in

    r3182 r3186  
    183183                object.h \
    184184                array.h \
    185                 material.h
     185                material.h \
     186                stdincl.h
    186187
    187188all: all-am
  • orxonox/trunk/importer/array.h

    r3184 r3186  
    3131  void debug(void);
    3232 private:
     33  //! One entry of the Array
    3334  struct Entry
    3435  {
    35     GLfloat value;
    36     Entry* next;
     36    GLfloat value;  //!< The value of this Entry.
     37    Entry* next;    //!< Pointer to the Next entry.
    3738  };
    3839
    39   GLfloat* array;
    40   int entryCount;
    41   bool finalized;
    42   Entry* firstEntry;
    43   Entry* currentEntry;
     40  GLfloat* array;      //!< The array that will be produced when finalizing the Array.
     41  int entryCount;      //!< The count of Entries in this Array.
     42  bool finalized;      //!< If this variable is set to true, the Array can not be changed anymore. true if finalized, false else (initially).
     43  Entry* firstEntry;   //!< Pointer to the first Entry of this Array
     44  Entry* currentEntry; //!< Pointer to the current Entry of this Array. The one Entry we are working with.
    4445 
    4546 
  • orxonox/trunk/importer/material.cc

    r3178 r3186  
    1515   TGA-code: borrowed from nehe-Tutorials
    1616
    17    ToDo:
    18    - free SDL-surface when deleting Material.
    19    - delete imgNameWithPath after use creation.
    2017*/
    2118
     
    3128using namespace std;
    3229
    33 
     30/**
     31   \brief creates a ned PathList.
     32   
     33   It is a good idea to use this as an initial List,
     34   because if you give on a name the Path will not be checked for its existence.
     35*/
    3436PathList::PathList()
    3537{
     
    3739  next = NULL;
    3840}
     41
     42/**
     43   \brief Creates a new PathList with a Name.
     44   \param pName the Name of The Path.
     45
     46   This function just adds the Path without checking if it exists.
     47*/
    3948PathList::PathList(char* pName)
    4049{
     
    4453}
    4554
     55/**
     56   \brief destroys a PathList
     57
     58   It does this by deleting the Name and then delete its preceding PathList.
     59*/
    4660PathList::~PathList()
    4761{
     
    5266}
    5367
     68/**
     69   \brief Adds a new Pathlist Element.
     70   \param pName
     71   
     72   Adding a Path automatically checks if the Path exists,
     73   and if it does not it will not add it to the List.
     74*/
    5475void PathList::addPath (char* pName)
    5576{
     
    476497}
    477498
     499/**
     500   \brief Loads a Texture to the openGL-environment.
     501   \param pImage The Image to load to openGL
     502   \param texture The Texture to apply it to.
     503*/
    478504bool Material::loadTexToGL (Image* pImage, GLuint* texture)
    479505{
  • orxonox/trunk/importer/material.h

    r3184 r3186  
    22  \file material.h
    33  \brief Contains the Material Class that handles Material for 3D-Objects.
     4  \todo free SDL-surface when deleting Material.
     5  \todo delete imgNameWithPath after use creation.
    46*/
    57
    68#ifndef _MATERIAL_H
    79#define _MATERIAL_H
     10
     11
    812
    913extern int verbose; //!< will be obsolete soon.
     
    2933#endif /* HAVE_SDL_SDL_IMAGE_H */
    3034
     35//! Class to handle lists of paths.
     36/**
     37   \todo Ability to return Paths by itself.
     38
     39   It is simple to use, and good, for all PathList you want.
     40   just create a new Pathlist, and add Paths.
     41*/
    3142class PathList
    3243{
     
    3748  ~PathList();
    3849  void addPath (char* pName);
    39   char* pathName;
    40   PathList* next;
     50  char* pathName;          //!< The Name of the current Path.
     51  PathList* next;          //!< Pointer to the next Pathlist.
    4152};
    4253
     
    8192
    8293 private:
     94  //! Struct to handle Infos about an Image
    8395  struct Image
    8496  {
    85     int rowSpan;
    86     GLuint width;
    87     GLuint height;
    88     GLuint bpp;
    89     GLuint type;
    90     GLubyte *data;
     97    int rowSpan;    //!< The count of the rows this Image has.
     98    GLuint width;   //!< The width of the Image.
     99    GLuint height;  //!< The height of the Image.
     100    GLuint bpp;     //!< BitsPerPixel
     101    GLuint type;    //!< Type of the Image.
     102    GLubyte *data;  //!< The Image Data comes here! DANGER: uncompressed data.
    91103  };
    92104
    93105
    94   char* name;
    95   int illumModel;
    96   float diffuse [4];
    97   float ambient [4];
    98   float specular [4];
    99   float shininess;
    100   float transparency;
     106  char* name;        //!< The Name of the Material.
     107  int illumModel;    //!< The IlluminationModel is either flat or smooth.
     108  float diffuse [4]; //!< The diffuse color of the Material.
     109  float ambient [4]; //!< The ambient color of the Material.
     110  float specular [4];//!< The specular color of the Material.
     111  float shininess;   //!< The shininess of the Material.
     112  float transparency;//!< The transperency of the Material.
    101113
    102   static PathList* pathList;
     114  static PathList* pathList; //!< A pointer to the first element of Pathlist. This is static, because pathlists are global \todo copy this to the Globals.h or DataTank for deletion at the end.
    103115 
    104   GLuint diffuseTexture;
    105   GLuint ambientTexture;
    106   GLuint specularTexture;
     116  GLuint diffuseTexture; //!< The diffuse texture of the Material.
     117  GLuint ambientTexture; //!< The ambient texture of the Material.
     118  GLuint specularTexture;//!< The specular texture of the Material.
    107119 
    108   bool diffuseTextureSet;
    109   bool ambientTextureSet;
    110   bool specularTextureSet;
     120  bool diffuseTextureSet; //!< Chekcs if the diffuse texture is Set.
     121  bool ambientTextureSet; //!< Chekcs if the ambient texture is Set.
     122  bool specularTextureSet;//!< Chekcs if the specular texture is Set.
    111123
    112124  Material* nextMat; //!< pointer to the Next Material of the List. NULL if no next exists.
  • orxonox/trunk/importer/object.cc

    r3140 r3186  
    1818
    1919/**
    20    \brief Creates a 3D-Object, but does not load any 3D-models
    21    pretty useless
     20   \brief Creates a 3D-Object, but does not load any 3D-models.
     21
     22   This Constructor is pretty useless, because why load no object in an object-loader??
    2223*/
    2324Object::Object ()
     
    3435
    3536/**
    36    \brief Crates a 3D-Object and loads in a File
     37   \brief Crates a 3D-Object and loads in a File.
    3738   \param fileName file to parse and load (must be a .obj file)
    3839*/
     
    6667
    6768/**
    68    \brief deletes an Object
     69   \brief deletes an Object.
     70
     71   Looks if any from object allocated space is still in use, and if so deleted it.
    6972*/
    7073Object::~Object()
     
    115118/**
    116119   \brief Draws the Object number groupNumber
     120   \param groupNumber The number of the group that will be displayed.
     121
    117122   It does this by just calling the List that must have been created earlier.
    118    \param groupNumber The number of the group that will be displayed.
    119123*/
    120124void Object::draw (int groupNumber) const
     
    150154/**
    151155   \brief Draws the Object with a specific groupName
     156   \param groupName The name of the group that will be displayed.
     157
    152158   It does this by just calling the List that must have been created earlier.
    153    \param groupName The name of the group that will be displayed.
    154159*/
    155160void Object::draw (char* groupName) const
     
    183188
    184189/**
    185     \brief initializes the Object
    186     This Function initializes all the needed arrays, Lists and clientStates
     190    \brief initializes the Object.
     191
     192    This Function initializes all the needed arrays, Lists and clientStates.
     193    It also defines default values.
    187194*/
    188195bool Object::initialize (void)
     
    212219/**
    213220   \brief initializes a new Group object
     221   \param group the group that should be initialized.
     222   \todo Maybe Group should be a Class, because it does a lot of stuff
     223   
    214224*/
    215225bool Object::initGroup(Group* group)
     
    229239/**
    230240   \brief initializes a new Face. (sets default Values)
     241   \param face The face to initialize
    231242*/
    232243bool Object::initFace (Face* face)
     
    283294
    284295/**
    285    \brief Cleans up all Faces starting from face.
    286    \param face the first face to clean
     296   \brief Cleans up all Faces starting from face until NULL is reached.
     297   \param face the first face to clean.
    287298*/
    288299bool Object::cleanupFace (Face* face)
     
    448459/**
    449460   \brief parses a group String
     461   \param groupString the new Group to create
     462
    450463   This function initializes a new Group.
    451464   With it you should be able to import .obj-files with more than one Objects inside.
    452    \param groupString the new Group to create
    453465*/
    454466bool Object::readGroup (char* groupString)
     
    474486/**
    475487   \brief parses a vertex-String
     488   \param vertexString The String that will be parsed.
     489
    476490   If a vertex line is found this function will inject it into the vertex-Array
    477    \param vertexString The String that will be parsed.
    478491*/
    479492bool Object::readVertex (char* vertexString)
     
    491504/**
    492505   \brief parses a face-string
     506   \param faceString The String that will be parsed.
     507
    493508   If a face line is found this function will add it to the glList.
    494509   The function makes a difference between QUADS and TRIANGLES, and will if changed re-open, set and re-close the gl-processe.
    495    \param faceString The String that will be parsed.
    496510*/
    497511bool Object::readFace (char* faceString)
     
    554568/**
    555569   \brief parses a vertexNormal-String
     570   \param normalString The String that will be parsed.
     571
    556572   If a vertexNormal line is found this function will inject it into the vertexNormal-Array
    557    \param normalString The String that will be parsed.
    558573*/
    559574bool Object::readVertexNormal (char* normalString)
     
    571586/**
    572587   \brief parses a vertexTextureCoordinate-String
    573    If a vertexTextureCoordinate line is found this function will inject it into the vertexTexture-Array
    574588   \param vTextureString The String that will be parsed.
     589
     590   If a vertexTextureCoordinate line is found,
     591   this function will inject it into the vertexTexture-Array
    575592*/
    576593bool Object::readVertexTexture (char* vTextureString)
     
    588605/**
    589606    \brief Function to read in a mtl File.
    590     this Function parses all Lines of an mtl File
    591607    \param mtlFile The .mtl file to read
     608
     609    This Function parses all Lines of an mtl File.
     610    The reason for it not to be in the materials-class is,
     611    that a material does not have to be able to read itself in from a File.
     612
    592613*/
    593614bool Object::readMtlLib (char* mtlFile)
     
    807828/**
    808829   \brief Adds a Face-element (one vertex of a face) with all its information.
     830   \param elem The FaceElement to add to the OpenGL-environment.
     831
    809832   It does this by searching:
    810833   1. The Vertex itself
     
    812835   3. The VertexTextureCoordinate
    813836   merging this information, the face will be drawn.
    814 
    815837*/
    816838bool Object::addGLElement (FaceElement* elem)
     
    830852/**
    831853   \brief A routine that is able to create normals.
     854
    832855   The algorithm does the following:
    833856   1. It calculates creates Vectors for each normale, and sets them to zero.
     
    910933/**
    911934   \brief Includes a default object
     935
    912936   This will inject a Cube, because this is the most basic object.
    913937*/
    914938void Object::BoxObject(void)
    915939{
    916   readVertex ("-0.500000 -0.500000 0.500000");
    917   readVertex ("0.500000 -0.500000 0.500000");
    918   readVertex ("-0.500000 0.500000 0.500000");
    919   readVertex ("0.500000 0.500000 0.500000");
    920   readVertex ("-0.500000 0.500000 -0.500000");
    921   readVertex ("0.500000 0.500000 -0.500000");
    922   readVertex ("-0.500000 -0.500000 -0.500000");
    923   readVertex ("0.500000 -0.500000 -0.500000");
    924 
    925   readVertexTexture ("0.000000 0.000000");
    926   readVertexTexture ("1.000000 0.000000");
    927   readVertexTexture ("0.000000 1.000000");
    928   readVertexTexture ("1.000000 1.000000");
    929   readVertexTexture ("0.000000 2.000000");
    930   readVertexTexture ("1.000000 2.000000");
    931   readVertexTexture ("0.000000 3.000000");
    932   readVertexTexture ("1.000000 3.000000");
    933   readVertexTexture ("0.000000 4.000000");
    934   readVertexTexture ("1.000000 4.000000");
    935   readVertexTexture ("2.000000 0.000000");
    936   readVertexTexture ("2.000000 1.000000");
    937   readVertexTexture ("-1.000000 0.000000");
    938   readVertexTexture ("-1.000000 1.000000");
    939 
    940   readVertexNormal ("0.000000 0.000000 1.000000");
    941   readVertexNormal ("0.000000 0.000000 1.000000");
    942   readVertexNormal ("0.000000 0.000000 1.000000");
    943   readVertexNormal ("0.000000 0.000000 1.000000");
    944   readVertexNormal ("0.000000 1.000000 0.000000");
    945   readVertexNormal ("0.000000 1.000000 0.000000");
    946   readVertexNormal ("0.000000 1.000000 0.000000");
    947   readVertexNormal ("0.000000 1.000000 0.000000");
    948   readVertexNormal ("0.000000 0.000000 -1.000000");
    949   readVertexNormal ("0.000000 0.000000 -1.000000");
    950   readVertexNormal ("0.000000 0.000000 -1.000000");
    951   readVertexNormal ("0.000000 0.000000 -1.000000");
    952   readVertexNormal ("0.000000 -1.000000 0.000000");
    953   readVertexNormal ("0.000000 -1.000000 0.000000");
    954   readVertexNormal ("0.000000 -1.000000 0.000000");
    955   readVertexNormal ("0.000000 -1.000000 0.000000");
    956   readVertexNormal ("1.000000 0.000000 0.000000");
    957   readVertexNormal ("1.000000 0.000000 0.000000");
    958   readVertexNormal ("1.000000 0.000000 0.000000");
    959   readVertexNormal ("1.000000 0.000000 0.000000");
    960   readVertexNormal ("-1.000000 0.000000 0.000000");
    961   readVertexNormal ("-1.000000 0.000000 0.000000");
    962   readVertexNormal ("-1.000000 0.000000 0.000000");
    963   readVertexNormal ("-1.000000 0.000000 0.000000");
     940  readVertex ("-0.5 -0.5 0.5");
     941  readVertex ("0.5 -0.5 0.5");
     942  readVertex ("-0.5 0.5 0.5");
     943  readVertex ("0.5 0.5 0.5");
     944  readVertex ("-0.5 0.5 -0.5");
     945  readVertex ("0.5 0.5 -0.5");
     946  readVertex ("-0.5 -0.5 -0.5");
     947  readVertex ("0.5 -0.5 -0.5");
     948
     949  readVertexTexture ("0.0 0.0");
     950  readVertexTexture ("1.0 0.0");
     951  readVertexTexture ("0.0 1.0");
     952  readVertexTexture ("1.0 1.0");
     953  readVertexTexture ("0.0 2.0");
     954  readVertexTexture ("1.0 2.0");
     955  readVertexTexture ("0.0 3.0");
     956  readVertexTexture ("1.0 3.0");
     957  readVertexTexture ("0.0 4.0");
     958  readVertexTexture ("1.0 4.0");
     959  readVertexTexture ("2.0 0.0");
     960  readVertexTexture ("2.0 1.0");
     961  readVertexTexture ("-1.0 0.0");
     962  readVertexTexture ("-1.0 1.0");
     963
     964  readVertexNormal ("0.0 0.0 1.0");
     965  readVertexNormal ("0.0 0.0 1.0");
     966  readVertexNormal ("0.0 0.0 1.0");
     967  readVertexNormal ("0.0 0.0 1.0");
     968  readVertexNormal ("0.0 1.0 0.0");
     969  readVertexNormal ("0.0 1.0 0.0");
     970  readVertexNormal ("0.0 1.0 0.0");
     971  readVertexNormal ("0.0 1.0 0.0");
     972  readVertexNormal ("0.0 0.0 -1.0");
     973  readVertexNormal ("0.0 0.0 -1.0");
     974  readVertexNormal ("0.0 0.0 -1.0");
     975  readVertexNormal ("0.0 0.0 -1.0");
     976  readVertexNormal ("0.0 -1.0 0.0");
     977  readVertexNormal ("0.0 -1.0 0.0");
     978  readVertexNormal ("0.0 -1.0 0.0");
     979  readVertexNormal ("0.0 -1.0 0.0");
     980  readVertexNormal ("1.0 0.0 0.0");
     981  readVertexNormal ("1.0 0.0 0.0");
     982  readVertexNormal ("1.0 0.0 0.0");
     983  readVertexNormal ("1.0 0.0 0.0");
     984  readVertexNormal ("-1.0 0.0 0.0");
     985  readVertexNormal ("-1.0 0.0 0.0");
     986  readVertexNormal ("-1.0 0.0 0.0");
     987  readVertexNormal ("-1.0 0.0 0.0");
    964988
    965989  /* normaleLess-testingMode
  • orxonox/trunk/importer/object.h

    r3184 r3186  
    3535
    3636 private:
    37   struct FaceElement
     37  //! This is the placeholder of one Vertex beloning to a Face.
     38  struct FaceElement
    3839  {
    39     int vertexNumber;
    40     int normalNumber;
    41     int texCoordNumber;
    42     FaceElement* next;
     40    int vertexNumber;    //!< The number of the Vertex out of the Array* vertices, this vertex points to.
     41    int normalNumber;    //!< The number of the Normal out of the Array* normals, this vertex points to.
     42    int texCoordNumber;  //!< The number of the textureCoordinate out of the Array* vTexture, this vertex points to.
     43    FaceElement* next;   //!< Point to the next FaceElement in this List.
    4344  };
    4445
    45   //! Face
    46   struct Face
     46  //! This is the placeholder of a Face belonging to a Group of Faces.
     47  /**
     48     \todo take Material to a call for itself.
     49
     50     This can also be a Material-Change switch.
     51     That means if you want to change a Material inside of a group,
     52     you can create an empty face and apply a material to it, and the Importer will cahnge Colors
     53  */
     54  struct Face
    4755  {
    48     int vertexCount;
    49     FaceElement* firstElem;
     56    int vertexCount;        //!< The Count of vertices this Face has.
     57    FaceElement* firstElem; //!< Points to the first Vertex (FaceElement) of this Face.
    5058
    51     char* materialString;
     59    char* materialString;   //!< The Name of the Material to which to Change.
    5260
    53     Face* next;
    54   };
     61    Face* next;             //!< Pointer to the next Face.
     62  }; 
    5563
    56   //! Group to handle multiple Objects per obj-file
     64  //! Group to handle multiple Objects per obj-file.
    5765  struct Group
    5866  {
    59     char* name;
     67    char* name;         //!< the Name of the Group. this is an identifier, that can be accessed via the draw (char* name) function.
    6068
    61     GLuint listNumber;
    62     Face* firstFace;
    63     Face* currentFace;
    64     int faceMode;
    65     int faceCount;
     69    GLuint listNumber;  //!< The number of the GL-List this Group gets.
     70    Face* firstFace;    //!< The first Face in this group.
     71    Face* currentFace;  //!< The current Face in this Group (the one we are currently working with.)
     72    int faceMode;       //!< The Mode the Face is in: initially -1, 0 for FaceList opened, 1 for Material,  3 for triangle, 4 for Quad, 5+ for Poly \todo ENUM...
     73    int faceCount;      //!< The Number of Faces this Group holds.
    6674
    67     Group* next;
     75    Group* next;        //!< Pointer to the next Group.
    6876  };
    6977
    7078
    71   Array* vertices;
    72   int verticesCount;
    73   Array* colors;
    74   Array* normals;
    75   Array* vTexture;
     79  Array* vertices;      //!< The Array that handles the Vertices.
     80  int verticesCount;    //!< A global Counter for vertices.
     81  Array* normals;       //!< The Array that handles the Normals.
     82  Array* vTexture;      //!< The Array that handles the VertexTextureCoordinates.
    7683
    7784 
    78   Group* firstGroup; //!< the first of all groups.
    79   Group* currentGroup; //!< the currentGroup. this is the one we will work with.
    80   int groupCount;
     85  Group* firstGroup;    //!< The first of all groups.
     86  Group* currentGroup;  //!< The currentGroup. this is the one we will work with.
     87  int groupCount;       //!< The Count of Groups.
    8188
    82   Material* material;
    83   float scaleFactor;
     89  Material* material;   //!< Initial pointer to the Material. This can hold many materials, because Material can be added with Material::addMaterial(..)
     90  float scaleFactor;    //!< The Factor with which the Object hould be scaled. \todo maybe one wants to scale the Object after Initialisation
    8491
    85   char* objPath;
    86   char* objFileName;
    87   char* mtlFileName;
     92  char* objPath;        //!< The Path wher the obj and mtl-file are located.
     93  char* objFileName;    //!< The Name of the obj-file.
     94  char* mtlFileName;    //!< The Name of the mtl-file (parsed out of the obj-file)
    8895
    8996  bool initialize (void);
  • orxonox/trunk/importer/stdincl.h

    r3184 r3186  
     1/*!
     2  \file stdincl.h
     3  \brief This file includes default headers that nearly every Class needs.
     4 
     5  no Class is defined here, but many headers to classes, and more general Headers like the openGL-header.
     6*/
    17
    28#ifndef STDINCL_H
    39#define STDINCL_H
    410
    5 #define null 0
     11#define null 0   //!< null
    612
    713#ifdef __WIN32__
Note: See TracChangeset for help on using the changeset viewer.