Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 6278 in orxonox.OLD


Ignore:
Timestamp:
Dec 24, 2005, 7:14:06 PM (18 years ago)
Author:
bensch
Message:

trunk: christmas commit…. fixed baseObject

Location:
trunk/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/defs/class_id.h

    r6276 r6278  
    1818/*!
    1919 * @file class_id.h
    20  * @brief list of orxonox classID's
     20 * @brief list of orxonox ClassID's
    2121 *
    2222 *  this File is used to identify an Object with its class and also with its sub/super-classes.
    23  *  this is also used by the ObjectManager to identify and load important classes
     23 *  this is also used by the ObjectManager/Factory to identify and load important classes
    2424 *
    2525 *  !! important !!
    2626 *  When adding a new CLASS be sure about the following:
    2727 *    1. if it is a (SUB)SUPERCLASS make sure there is still space left (if not think of a new approach)
    28  *    2. if it is a (SUB)SUPERCLASS also add the CLASS to BaseObject::whatIs() so we have nice output :)
    29  *    3. check if the Number you add is not refered to twice, and that with (SUB)SUPERCLASSES there are no intersections
    30  *    4. be sure to add you stuff in the right section, and don't interest yourself for the order of things. :)
     28 *    2. check if the Number you add is not refered twice, and that with (SUB)SUPERCLASSES there are no intersections
     29 *    3. be sure to add you stuff in the right section, and don't interest yourself for the order of things. :)
    3130 */
    3231
     
    3736/**
    3837 * inheritance is done in the following way: Classes are identified by
    39  * a HEX-number eg: 0x12345678
     38 * a HEX-number eg: 0xa0b18a05
    4039 * The number has 8^4 entries.
    41  * The first two: 1,2 superclass identifiers to
    42  * The second three are for subclasses with inheritance:
    43  *  the first of these numbers is defining the subclassType, it may be anything between 1-a
    44  *  The following two may not be the same in any way,
    45  * eg. the bits may not intersect (no 1, 2 and a 3; 01, 02 and 04, 08, 10  would be ok)
    46  * The last three entries are for any classes in existence eg. SkyBox and so on
    47  *
     40 *
     41 * -------------------------------------------------------------------------------------------
     42 * Consider the Identifiers 0xABCDEFGH
     43 * The first two: A and B are superclass Identifiers !! THEY ARE ALREADY FULL !!
     44 *
     45 * The second three are for sub-superclass-groups inheritance:
     46 *  C: a Group identifier: can be anything from 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h
     47 *  D,E: Member within the Group, to specify further deriavtions within the Group.
     48 *       These may be anything from 1,2,4,8 (at D and E)
     49 *  !! consider, that you may not have a derivated class from group a and group b.
     50 *
     51 * The last three entries F,G,H are for any leaf classes in existence.
     52 * they are ordered in the following way:
     53 *  F: LEAF-GroupSpecifier
     54 *  G,H: UNIQUE NUMBER eithin F-Group.
     55 * -------------------------------------------------------------------------------------------
     56 *
     57 * COUNT:
    4858 * -> # max SuperClass-count        = 7 (not intersecting)
    4959 *    # max SubSuperClass-count     = 15*7 = 105 (the 7 classes will be able to get derived from each other, but not over the SubSuperClass.)
     
    198208  CL_BOUNDING_VOLUME            =    0x00a10000,
    199209  CL_OBB                        =    0x00020617,
    200   CL_BOUNDING_SPHERE            =    0x00a40618,
     210  CL_BOUNDING_SPHERE            =    0x00040618,
    201211
    202212  // graphical stuff (range from 0x00000800 to 0x000009ff)
     
    216226  CL_SHADER                     =    0x00000822,
    217227  // GL-GUI
    218   CL_GLGUI_WIDGET               =    0x00501901,
    219   CL_GLGUI_BUTTON               =    0x00502902,
     228  CL_GLGUI_WIDGET               =    0x00500000,
     229  CL_GLGUI_BUTTON               =    0x00001000,
    220230  CL_GLGUI_PUSHBUTTON           =    0x00000903,
    221231  CL_GLGUI_CHECKBUTTON          =    0x00000904,
    222232  CL_GLGUI_RADIOBUTTON          =    0x00000905,
    223   CL_GLGUI_CONTAINER            =    0x00504906,
     233  CL_GLGUI_CONTAINER            =    0x00002906,
    224234  CL_GLGUI_BOX                  =    0x00000907,
    225235  CL_GLGUI_FRAME                =    0x00000908,
     
    248258  CL_ANIMATION                  =    0x00000d01,
    249259  //  CL_ANIMATION3D                =    0x00000b02,
    250   CL_QUICK_ANIMATION            =    0x00000b02,
    251   CL_FACTORY                    =    0x00000b03,
    252   CL_INI_PARSER                 =    0x00000b04,
    253   CL_LIST                       =    0x00000b05,
    254   CL_SUBSTRING                  =    0x00000b06,
    255   CL_LOAD_PARAM                 =    0x00000b07,
    256   CL_CURVE                      =    0x00000b08,
    257   CL_VECTOR                     =    0x00000b09,
    258   CL_CHARACTER_ATTRIBUTES       =    0x00000b0a,
    259   CL_TRACK_ELEMENT              =    0x00000b0b,
    260   CL_NUMBER                     =    0x00000b0c,
    261   CL_EXECUTOR                   =    0x00000b0d,
    262   CL_FAST_FACTORY               =    0x00000c01,
    263   CL_SHELL                      =    0x00000c10,
    264   CL_SHELL_COMMAND              =    0x00000c11,
    265   CL_SHELL_COMMAND_CLASS        =    0x00000c12,
    266   CL_SHELL_INPUT                =    0x00000c13,
    267   CL_SHELL_COMPLETION           =    0x00000c14,
    268   CL_SHELL_COMMAND_ALIAS        =    0x00000c15,
     260  CL_QUICK_ANIMATION            =    0x00000d02,
     261  CL_FACTORY                    =    0x00000d03,
     262  CL_INI_PARSER                 =    0x00000d04,
     263  CL_LIST                       =    0x00000d05,
     264  CL_SUBSTRING                  =    0x00000d06,
     265  CL_LOAD_PARAM                 =    0x00000d07,
     266  CL_CURVE                      =    0x00000d08,
     267  CL_VECTOR                     =    0x00000d09,
     268  CL_CHARACTER_ATTRIBUTES       =    0x00000d0a,
     269  CL_TRACK_ELEMENT              =    0x00000d0b,
     270  CL_NUMBER                     =    0x00000d0c,
     271  CL_EXECUTOR                   =    0x00000d0d,
     272  CL_FAST_FACTORY               =    0x00000d01,
     273  CL_SHELL                      =    0x00000d10,
     274  CL_SHELL_COMMAND              =    0x00000d11,
     275  CL_SHELL_COMMAND_CLASS        =    0x00000d12,
     276  CL_SHELL_INPUT                =    0x00000d13,
     277  CL_SHELL_COMPLETION           =    0x00000d14,
     278  CL_SHELL_COMMAND_ALIAS        =    0x00000d15,
    269279
    270280  // Spatial Data Separation
  • trunk/src/lib/lang/base_object.cc

    r6276 r6278  
    7979  this->className = className;
    8080
    81   ClassList::addToClassList(this, classID, className);
    82 }
    83 
    84 /**
    85   \brief set the name of the Object
     81  ClassList::addToClassList(this, classID, this->classID, className);
     82}
     83
     84/**
     85 * @briefbrief set the name of the Object
    8686 */
    8787void BaseObject::setName (const char* objectName)
  • trunk/src/lib/lang/class_list.cc

    r6077 r6278  
    3737 *  Creates a new ClassList
    3838*/
    39 ClassList::ClassList(ClassID classID, const char* className)
     39ClassList::ClassList(ClassID classID, unsigned long classIDFull, const char* className)
    4040{
    4141  this->className = className;
    4242  this->classID = classID;
     43  this->classIDFull = classIDFull;
    4344}
    4445
     
    6667 * !! Before unsing the ClassList, as it creates the ClassLits
    6768 */
    68 void ClassList::addToClassList(BaseObject* objectPointer, ClassID classID, const char* className)
     69void ClassList::addToClassList(BaseObject* objectPointer, ClassID classID, unsigned long classIDFull, const char* className)
    6970{
    7071  if (unlikely(classList == NULL))
     
    7879  else
    7980  {
    80     ClassList::classList->push_back(ClassList(classID, className));
     81    ClassList::classList->push_back(ClassList(classID, classIDFull, className));
    8182    ClassList::classList->back().objectList.push_back(objectPointer);
    8283  }
  • trunk/src/lib/lang/class_list.h

    r6077 r6278  
    3131 */
    3232class ClassList {
    33 
    3433  public:
    35     ClassList(ClassID classID, const char* className);
     34    ClassList(ClassID classID, unsigned long classIDFull, const char* className);
    3635    virtual ~ClassList();
    3736
    38     // STATIC FUNCTIONS
    39     static void                           addToClassList(BaseObject* objectPointer, ClassID classID, const char* className);
     37    /* MAINTENANCE FUNCTIONS THESE ARE !!ONLY FOR BASEOBJECT !! */
     38    static void                           addToClassList(BaseObject* objectPointer, ClassID classID, unsigned long classIDFull, const char* className);
    4039    static void                           removeFromClassList(BaseObject* objectPointer);
     40
     41
    4142
    4243    static const std::list<BaseObject*>*  getList(ClassID classID = CL_NULL);// { return (ClassList* fl = ClassList::getClassList(classID) != NULL)? &(fl->objectList) : NULL; };
     
    5960
    6061  private:
    61 
    6262    static ClassList*                     getClassList(ClassID classID);
    6363    static ClassList*                     getClassList(const char* className);
    6464
    6565  private:
     66    ClassID                         classID;                //!< ClassID stored in this ClassList
     67    unsigned long                   classIDFull;            //!< The Full ClassID of this Class.
    6668
    67     ClassID                         classID;                //!< ClassID stored in this ClassList
    6869    const char*                     className;              //!< Name of the Class Stored here
    6970
  • trunk/src/world_entities/test_entity.cc

    r6222 r6278  
    4747  if (root != NULL)
    4848    this->loadParams(root);
    49 
    50   this->init();
    5149}
    5250
  • trunk/src/world_entities/test_entity.h

    r6222 r6278  
    1212class TiXmlElement;
    1313
    14 class TestEntity : public WorldEntity, PhysicsInterface
     14class TestEntity : public WorldEntity, public PhysicsInterface
    1515{
    1616  friend class World;
Note: See TracChangeset for help on using the changeset viewer.