Open Dynamics Engine

odeou.h

00001 /*************************************************************************
00002 *                                                                       *
00003 * OU library interface file for Open Dynamics Engine,                   *
00004 * Copyright (C) 2008 Oleh Derevenko. All rights reserved.               *
00005 * Email: odar@eleks.com (change all "a" to "e")                         *
00006 *                                                                       *
00007 * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith.       *
00008 * All rights reserved.  Email: russ@q12.org   Web: www.q12.org          *
00009 *                                                                       *
00010 *                                                                       *
00011 * This library is free software; you can redistribute it and/or         *
00012 * modify it under the terms of EITHER:                                  *
00013 *   (1) The GNU Lesser General Public License as published by the Free  *
00014 *       Software Foundation; either version 2.1 of the License, or (at  *
00015 *       your option) any later version. The text of the GNU Lesser      *
00016 *       General Public License is included with this library in the     *
00017 *       file LICENSE.TXT.                                               *
00018 *   (2) The BSD-style license that is included with this library in     *
00019 *       the file LICENSE-BSD.TXT.                                       *
00020 *                                                                       *
00021 * This library is distributed in the hope that it will be useful,       *
00022 * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files    *
00024 * LICENSE.TXT and LICENSE-BSD.TXT for more details.                     *
00025 *                                                                       *
00026 *************************************************************************/
00027 
00028 /*
00029 
00030 ODE interface to OU library functions.
00031 
00032 */
00033 
00034 
00035 #ifndef _ODE_ODEOU_H_
00036 #define _ODE_ODEOU_H_
00037 
00038 
00039 #if dOU_ENABLED
00040 
00041 #include <ou/assert.h>
00042 #include <ou/enumarrays.h>
00043 #include <ou/macros.h>
00044 #include <ou/templates.h>
00045 #include <ou/typewrapper.h>
00046 #include <ou/simpleflags.h>
00047 #include <ou/customization.h>
00048 
00049 #if dATOMICS_ENABLED
00050 #include <ou/atomic.h>
00051 #include <ou/atomicflags.h>
00052 #endif
00053 
00054 #if dTLS_ENABLED
00055 #include <ou/threadlocalstorage.h>
00056 #endif
00057 
00058 
00059 using namespace _OU_NAMESPACE;
00060 
00061 
00062 class COdeOu
00063 {
00064 public:
00065    static bool DoOUCustomizations();
00066    static void UndoOUCustomizations();
00067 
00068 #if dATOMICS_ENABLED
00069    static bool InitializeAtomics() { return InitializeAtomicAPI(); }
00070    static void FinalizeAtomics() { FinalizeAtomicAPI(); }
00071 #endif
00072 };
00073 
00074 
00075 #endif // dOU_ENABLED
00076 
00077 
00078 #endif // _ODE_ODEOU_H_