Panda3D

odeContact.h

00001 // Filename: odeContact.h
00002 // Created by:  joswilso (27Dec06)
00003 //
00004 ////////////////////////////////////////////////////////////////////
00005 //
00006 // PANDA 3D SOFTWARE
00007 // Copyright (c) Carnegie Mellon University.  All rights reserved.
00008 //
00009 // All use of this software is subject to the terms of the revised BSD
00010 // license.  You should have received a copy of this license along
00011 // with this source code in a file named "LICENSE."
00012 //
00013 ////////////////////////////////////////////////////////////////////
00014 
00015 #ifndef ODECONTACT_H
00016 #define ODECONTACT_H
00017 
00018 #include "pandabase.h"
00019 #include "typedReferenceCount.h"
00020 #include "luse.h"
00021 
00022 #include "ode_includes.h"
00023 #include "odeSurfaceParameters.h"
00024 #include "odeContactGeom.h"
00025 
00026 
00027 ////////////////////////////////////////////////////////////////////
00028 //       Class : OdeContact
00029 // Description : 
00030 ////////////////////////////////////////////////////////////////////
00031 class EXPCL_PANDAODE OdeContact : public TypedReferenceCount {
00032 PUBLISHED:
00033   OdeContact();
00034   // OdeContact(const OdeContact &copy);
00035   OdeContact(const dContact &contact);
00036   virtual ~OdeContact();
00037 
00038   INLINE OdeSurfaceParameters get_surface() const;
00039   INLINE OdeContactGeom get_geom();
00040   INLINE LVecBase3f get_fdir1() const;
00041 
00042   INLINE void set_surface(const OdeSurfaceParameters &surface_parameters);
00043   INLINE void set_geom(const OdeContactGeom &contact_geom);
00044   INLINE void set_fdir1(const LVecBase3f &fdir1);
00045 
00046 public:
00047   void operator = (const OdeContact &copy);
00048   bool operator == (const OdeContact &other);
00049   const dContact* get_contact_ptr() const;
00050 
00051 private:
00052   dContact _contact;
00053 
00054 public:
00055   static TypeHandle get_class_type() {
00056     return _type_handle;
00057   }
00058   static void init_type() {
00059     TypedReferenceCount::init_type();
00060     register_type(_type_handle, "OdeContact",
00061                   TypedReferenceCount::get_class_type());
00062   }
00063   virtual TypeHandle get_type() const {
00064     return get_class_type();
00065   }
00066   virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
00067 
00068 private:
00069   static TypeHandle _type_handle;
00070 };
00071 
00072 #include "odeContact.I"
00073 
00074 #endif
 All Classes Functions Variables Enumerations