• Main Page
  • Related Pages
  • Classes
  • Files
  • File List

src/ObjectTypes.hh

00001 /*
00002  * Copyright Staffan Gimåker 2010.
00003  *
00004  * ---
00005  *
00006  * Distributed under the Boost Software License, Version 1.0.
00007  * (See accompanying file LICENSE_1_0.txt or copy at
00008  * http://www.boost.org/LICENSE_1_0.txt)
00009  */
00010 
00011 #ifndef PEEKABOT_OBJECT_TYPES_HH_INCLUDED
00012 #define PEEKABOT_OBJECT_TYPES_HH_INCLUDED
00013 
00014 
00015 #include "Types.hh"
00016 
00017 
00018 #ifdef OBJ_TYPE_ID
00019 #  error "OBJ_TYPE_ID already defined"
00020 #else
00021 #  define OBJ_TYPE_ID(no, classes) (classes | (no+1))
00022 #endif
00023 
00024 #ifdef OBJ_CLASS_ID
00025 #  error "OBJ_CLASS_ID already defined"
00026 #else
00027 #  define OBJ_CLASS_ID(class_) (1<<(16+class_))
00028 #endif
00029 
00030 
00031 namespace peekabot
00032 {
00033     enum
00034     {
00035         SCALABLE_CLASS = OBJ_CLASS_ID(0),
00036         VERTEX_BASED_CLASS = OBJ_CLASS_ID(1),
00037         LINE_BASED_CLASS = OBJ_CLASS_ID(2),
00038         JOINT_CLASS = OBJ_CLASS_ID(3),
00039 
00040         SPHERE_OBJECT = OBJ_TYPE_ID(0, SCALABLE_CLASS),
00041         CUBE_OBJECT = OBJ_TYPE_ID(1, SCALABLE_CLASS),
00042         CYLINDER_OBJECT = OBJ_TYPE_ID(2, SCALABLE_CLASS),
00043         CIRCLE_OBJECT = OBJ_TYPE_ID(3, SCALABLE_CLASS | LINE_BASED_CLASS),
00044         POLYGON_OBJECT = OBJ_TYPE_ID(4, SCALABLE_CLASS | VERTEX_BASED_CLASS),
00045         LINE_CLOUD_OBJECT = OBJ_TYPE_ID(5, SCALABLE_CLASS | VERTEX_BASED_CLASS | LINE_BASED_CLASS),
00046         POINT_CLOUD_OBJECT = OBJ_TYPE_ID(6, SCALABLE_CLASS | VERTEX_BASED_CLASS),
00047         GRID_OBJECT = OBJ_TYPE_ID(7, SCALABLE_CLASS | LINE_BASED_CLASS),
00048         LABEL_OBJECT = OBJ_TYPE_ID(8, SCALABLE_CLASS),
00049         CAMERA_OBJECT = OBJ_TYPE_ID(9, 0),
00050         OG2D_OBJECT = OBJ_TYPE_ID(10, SCALABLE_CLASS),
00051         OG3D_OBJECT = OBJ_TYPE_ID(11, SCALABLE_CLASS),
00052         TRI_MESH_OBJECT = OBJ_TYPE_ID(12, SCALABLE_CLASS | VERTEX_BASED_CLASS),
00053         GROUP_OBJECT = OBJ_TYPE_ID(13, 0),
00054         SLIDER_OBJECT = OBJ_TYPE_ID(14, JOINT_CLASS),
00055         HINGE_OBJECT = OBJ_TYPE_ID(15, JOINT_CLASS),
00056         POLYLINE_OBJECT = OBJ_TYPE_ID(16, SCALABLE_CLASS | VERTEX_BASED_CLASS | LINE_BASED_CLASS),
00057         MODEL_OBJECT = OBJ_TYPE_ID(17, SCALABLE_CLASS)
00058     };
00059 }
00060 
00061 
00062 #undef OBJ_CLASS_ID
00063 #undef OBJ_TYPE_ID
00064 
00065 
00066 #endif // PEEKABOT_OBJECT_TYPES_HH_INCLUDED

Generated on Sun Jan 30 2011 for peekabot by  doxygen 1.7.1