add support for setuptools setup.py pybullet for 'pip install pybullet'

rewrite MacOpenGLWindow.mm into .m version, so that setup.py can handle it.
See also test at https://pypi.python.org/pypi/pybullet/0.1.0
This commit is contained in:
Erwin Coumans
2017-04-02 23:00:06 -07:00
parent 1c5e5d2b3f
commit e487bc360b
11 changed files with 1045 additions and 383 deletions

7
MANIFEST.in Normal file
View File

@@ -0,0 +1,7 @@
include MANIFEST.in *.txt
recursive-include examples *.h
recursive-include examples *.hpp
recursive-include Extras *.h
recursive-include Extras *.hpp
recursive-include src *.h
recursive-include src *.hpp

View File

@@ -0,0 +1,47 @@
#ifndef COMMON_CALLBACKS_H
#define COMMON_CALLBACKS_H
typedef void (*b3WheelCallback)(float deltax, float deltay);
typedef void (*b3ResizeCallback)( float width, float height);
typedef void (*b3MouseMoveCallback)( float x, float y);
typedef void (*b3MouseButtonCallback)(int button, int state, float x, float y);
typedef void (*b3KeyboardCallback)(int keycode, int state);
typedef void (*b3RenderCallback) ();
enum {
B3G_ESCAPE = 27,
B3G_F1 = 0xff00,
B3G_F2,
B3G_F3,
B3G_F4,
B3G_F5,
B3G_F6,
B3G_F7,
B3G_F8,
B3G_F9,
B3G_F10,
B3G_F11,
B3G_F12,
B3G_F13,
B3G_F14,
B3G_F15,
B3G_LEFT_ARROW,
B3G_RIGHT_ARROW,
B3G_UP_ARROW,
B3G_DOWN_ARROW,
B3G_PAGE_UP,
B3G_PAGE_DOWN,
B3G_END,
B3G_HOME,
B3G_INSERT,
B3G_DELETE,
B3G_BACKSPACE,
B3G_SHIFT,
B3G_CONTROL,
B3G_ALT,
B3G_RETURN
};
#endif

View File

@@ -1,47 +1,8 @@
#ifndef B3G_WINDOW_INTERFACE_H
#define B3G_WINDOW_INTERFACE_H
#include "CommonCallbacks.h"
typedef void (*b3WheelCallback)(float deltax, float deltay);
typedef void (*b3ResizeCallback)( float width, float height);
typedef void (*b3MouseMoveCallback)( float x, float y);
typedef void (*b3MouseButtonCallback)(int button, int state, float x, float y);
typedef void (*b3KeyboardCallback)(int keycode, int state);
typedef void (*b3RenderCallback) ();
enum {
B3G_ESCAPE = 27,
B3G_F1 = 0xff00,
B3G_F2,
B3G_F3,
B3G_F4,
B3G_F5,
B3G_F6,
B3G_F7,
B3G_F8,
B3G_F9,
B3G_F10,
B3G_F11,
B3G_F12,
B3G_F13,
B3G_F14,
B3G_F15,
B3G_LEFT_ARROW,
B3G_RIGHT_ARROW,
B3G_UP_ARROW,
B3G_DOWN_ARROW,
B3G_PAGE_UP,
B3G_PAGE_DOWN,
B3G_END,
B3G_HOME,
B3G_INSERT,
B3G_DELETE,
B3G_BACKSPACE,
B3G_SHIFT,
B3G_CONTROL,
B3G_ALT,
B3G_RETURN
};
struct b3gWindowConstructionInfo
{
@@ -127,4 +88,4 @@ class CommonWindowInterface
};
#endif //B3G_WINDOW_INTERFACE_H
#endif //B3G_WINDOW_INTERFACE_H

View File

@@ -6,7 +6,8 @@ INCLUDE_DIRECTORIES(
FILE(GLOB OpenGLWindow_HDRS "*.h" )
FILE(GLOB OpenGLWindowMac_CPP "Mac*.mm")
FILE(GLOB OpenGLWindowMac_CPP "Mac*.cpp")
FILE(GLOB OpenGLWindowMacObjC_CPP "Mac*.m")
FILE(GLOB OpenGLWindowWin32_CPP "Win32*.cpp")
FILE(GLOB OpenGLWindowLinux_CPP "X11*.cpp")
@@ -16,6 +17,7 @@ LIST(REMOVE_ITEM OpenGLWindowCommon_CPP ${OpenGLWindowMac_CPP} )
LIST(REMOVE_ITEM OpenGLWindowCommon_CPP ${OpenGLWindowWin32_CPP} )
LIST(REMOVE_ITEM OpenGLWindowCommon_CPP ${OpenGLWindowLinux_CPP} )
LIST(REMOVE_ITEM OpenGLWindowCommon_CPP X11OpenGLWindow.cpp )
LIST(REMOVE_ITEM OpenGLWindowCommon_CPP MacOpenGLWindow.cpp )
#MESSAGE (${OpenGLWindowCommon_CPP})
IF (WIN32)
@@ -27,7 +29,7 @@ IF (WIN32)
ENDIF(WIN32)
IF (APPLE)
SET(OpenGLWindow_SRCS ${OpenGLWindowMac_CPP} ${OpenGLWindowCommon_CPP} )
SET(OpenGLWindow_SRCS ${OpenGLWindowMac_CPP} ${OpenGLWindowMacObjC_CPP} ${OpenGLWindowCommon_CPP} )
ENDIF(APPLE)
#no Linux detection?

View File

@@ -0,0 +1,192 @@
#include "MacOpenGLWindow.h"
#include "OpenGLInclude.h"
#include "MacOpenGLWindowObjC.h"
#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <string.h>
MacOpenGLWindow::MacOpenGLWindow()
:m_internalData(0)
{
m_internalData = Mac_createData();
}
MacOpenGLWindow::~MacOpenGLWindow()
{
Mac_destroyData(m_internalData);
}
void MacOpenGLWindow::closeWindow()
{
Mac_destroyData(m_internalData);
m_internalData = Mac_createData();
}
bool MacOpenGLWindow::isModifierKeyPressed(int key)
{
return Mac_isModifierKeyPressed(m_internalData, key);
}
float MacOpenGLWindow::getTimeInSeconds()
{
return 0.f;
}
void MacOpenGLWindow::setRenderCallback( b3RenderCallback renderCallback)
{
}
void MacOpenGLWindow::setWindowTitle(const char* windowTitle)
{
Mac_setWindowTitle(m_internalData, windowTitle);
}
void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
{
MacWindowConstructionInfo windowCI;
windowCI.m_width = ci.m_width;
windowCI.m_height = ci.m_height;
windowCI.m_fullscreen = ci.m_fullscreen;
windowCI.m_colorBitsPerPixel = ci.m_colorBitsPerPixel;
windowCI.m_windowHandle = ci.m_windowHandle;
windowCI.m_title = ci.m_title;
windowCI.m_openglVersion = ci.m_openglVersion;
windowCI.m_allowRetina = true;
Mac_createWindow(m_internalData,&windowCI);
}
void MacOpenGLWindow::runMainLoop()
{
}
void MacOpenGLWindow::startRendering()
{
Mac_updateWindow(m_internalData);
}
void MacOpenGLWindow::endRendering()
{
Mac_swapBuffer(m_internalData);
}
bool MacOpenGLWindow::requestedExit() const
{
return Mac_requestedExit(m_internalData);
}
void MacOpenGLWindow::setRequestExit()
{
Mac_setRequestExit(m_internalData);
}
int MacOpenGLWindow::fileOpenDialog(char* filename, int maxNameLength)
{
return Mac_fileOpenDialog(filename, maxNameLength);
}
void MacOpenGLWindow::getMouseCoordinates(int& x, int& y)
{
int* xPtr=&x;
int* yPtr=&y;
Mac_getMouseCoordinates(m_internalData,xPtr,yPtr);
}
int MacOpenGLWindow::getWidth() const
{
return Mac_getWidth(m_internalData);
}
int MacOpenGLWindow::getHeight() const
{
return Mac_getHeight(m_internalData);
}
void MacOpenGLWindow::setResizeCallback(b3ResizeCallback resizeCallback)
{
Mac_setResizeCallback(m_internalData,resizeCallback);
}
b3ResizeCallback MacOpenGLWindow::getResizeCallback()
{
return Mac_getResizeCallback(m_internalData);
}
void MacOpenGLWindow::setMouseButtonCallback(b3MouseButtonCallback mouseCallback)
{
Mac_setMouseButtonCallback(m_internalData, mouseCallback);
}
void MacOpenGLWindow::setMouseMoveCallback(b3MouseMoveCallback mouseCallback)
{
Mac_setMouseMoveCallback(m_internalData,mouseCallback);
}
void MacOpenGLWindow::setKeyboardCallback( b3KeyboardCallback keyboardCallback)
{
Mac_setKeyboardCallback(m_internalData,keyboardCallback);
}
b3MouseMoveCallback MacOpenGLWindow::getMouseMoveCallback()
{
return Mac_getMouseMoveCallback(m_internalData);
}
b3MouseButtonCallback MacOpenGLWindow::getMouseButtonCallback()
{
return Mac_getMouseButtonCallback(m_internalData);
}
void MacOpenGLWindow::setWheelCallback (b3WheelCallback wheelCallback)
{
Mac_setWheelCallback(m_internalData,wheelCallback);
}
b3WheelCallback MacOpenGLWindow::getWheelCallback()
{
return Mac_getWheelCallback(m_internalData);
}
b3KeyboardCallback MacOpenGLWindow::getKeyboardCallback()
{
return Mac_getKeyboardCallback(m_internalData);
}
float MacOpenGLWindow::getRetinaScale() const
{
return Mac_getRetinaScale(m_internalData);
}
void MacOpenGLWindow::setAllowRetina(bool allow)
{
Mac_setAllowRetina(m_internalData, allow);
}

View File

@@ -8,18 +8,6 @@
class MacOpenGLWindow : public CommonWindowInterface
{
struct MacOpenGLWindowInternalData* m_internalData;
float m_mouseX;
float m_mouseY;
int m_modifierFlags;
b3MouseButtonCallback m_mouseButtonCallback;
b3MouseMoveCallback m_mouseMoveCallback;
b3WheelCallback m_wheelCallback;
b3KeyboardCallback m_keyboardCallback;
b3RenderCallback m_renderCallback;
float m_retinaScaleFactor;
bool m_allowRetina;
public:
@@ -34,7 +22,7 @@ public:
void endRendering();//swap buffers
virtual bool requestedExit() const;
virtual bool requestedExit() const;
virtual void setRequestExit();
@@ -42,59 +30,32 @@ public:
void runMainLoop();
virtual bool isModifierKeyPressed(int key);
virtual bool isModifierKeyPressed(int key);
void setMouseButtonCallback(b3MouseButtonCallback mouseCallback)
{
m_mouseButtonCallback = mouseCallback;
}
void setMouseButtonCallback(b3MouseButtonCallback mouseCallback);
void setMouseMoveCallback(b3MouseMoveCallback mouseCallback)
{
m_mouseMoveCallback = mouseCallback;
}
void setMouseMoveCallback(b3MouseMoveCallback mouseCallback);
void setResizeCallback(b3ResizeCallback resizeCallback);
void setKeyboardCallback( b3KeyboardCallback keyboardCallback)
{
m_keyboardCallback = keyboardCallback;
}
void setKeyboardCallback( b3KeyboardCallback keyboardCallback);
virtual b3MouseMoveCallback getMouseMoveCallback();
virtual b3MouseButtonCallback getMouseButtonCallback();
virtual b3MouseMoveCallback getMouseMoveCallback()
{
return m_mouseMoveCallback;
}
virtual b3MouseButtonCallback getMouseButtonCallback()
{
return m_mouseButtonCallback;
}
virtual b3ResizeCallback getResizeCallback();
virtual b3WheelCallback getWheelCallback()
{
return m_wheelCallback;
}
virtual b3WheelCallback getWheelCallback();
b3KeyboardCallback getKeyboardCallback()
{
return m_keyboardCallback;
}
b3KeyboardCallback getKeyboardCallback();
void setWheelCallback (b3WheelCallback wheelCallback);
float getRetinaScale() const;
void setWheelCallback (b3WheelCallback wheelCallback)
{
m_wheelCallback = wheelCallback;
}
float getRetinaScale() const
{
return m_retinaScaleFactor;
}
virtual void setAllowRetina(bool allow)
{
m_allowRetina = allow;
}
virtual void setAllowRetina(bool allow);
virtual void createWindow(const b3gWindowConstructionInfo& ci);

View File

@@ -0,0 +1,77 @@
#ifndef MAC_OPENGL_WINDOW_OBJC_H
#define MAC_OPENGL_WINDOW_OBJC_H
struct MacOpenGLWindowInternalData;
#include "../CommonInterfaces/CommonCallbacks.h"
struct MacWindowConstructionInfo
{
int m_width;
int m_height;
int m_fullscreen;
int m_colorBitsPerPixel;
void* m_windowHandle;
const char* m_title;
int m_openglVersion;
int m_allowRetina;
};
enum
{
MY_MAC_ALTKEY=1,
MY_MAC_SHIFTKEY=2,
MY_MAC_CONTROL_KEY=4
};
#ifdef __cplusplus
extern "C" {
#endif
struct MacOpenGLWindowInternalData* Mac_createData();
void Mac_destroyData(struct MacOpenGLWindowInternalData* data);
int Mac_createWindow(struct MacOpenGLWindowInternalData* m_internalData,struct MacWindowConstructionInfo* ci);
void Mac_setWindowTitle(struct MacOpenGLWindowInternalData* data, const char* windowTitle);
int Mac_updateWindow(struct MacOpenGLWindowInternalData* m_internalData);
void Mac_swapBuffer(struct MacOpenGLWindowInternalData* m_internalData);
int Mac_requestedExit(struct MacOpenGLWindowInternalData* m_internalData);
void Mac_setRequestExit(struct MacOpenGLWindowInternalData* m_internalData);
float Mac_getRetinaScale(struct MacOpenGLWindowInternalData* m_internalData);
void Mac_setAllowRetina(struct MacOpenGLWindowInternalData* m_internalData, int allow);
int Mac_getWidth(struct MacOpenGLWindowInternalData* m_internalData);
int Mac_getHeight(struct MacOpenGLWindowInternalData* m_internalData);
int Mac_fileOpenDialog(char* filename, int maxNameLength);
void Mac_setKeyboardCallback( struct MacOpenGLWindowInternalData* m_internalData, b3KeyboardCallback keyboardCallback);
b3KeyboardCallback Mac_getKeyboardCallback(struct MacOpenGLWindowInternalData* m_internalData);
int Mac_isModifierKeyPressed(struct MacOpenGLWindowInternalData* m_internalData, int key);
void Mac_setMouseButtonCallback(struct MacOpenGLWindowInternalData* m_internalData, b3MouseButtonCallback mouseCallback);
b3MouseButtonCallback Mac_getMouseButtonCallback(struct MacOpenGLWindowInternalData* m_internalData);
void Mac_getMouseCoordinates(struct MacOpenGLWindowInternalData* m_internalData, int* xPtr, int* yPtr);
void Mac_setMouseMoveCallback(struct MacOpenGLWindowInternalData* m_internalData, b3MouseMoveCallback mouseCallback);
b3MouseMoveCallback Mac_getMouseMoveCallback(struct MacOpenGLWindowInternalData* m_internalData);
void Mac_setWheelCallback(struct MacOpenGLWindowInternalData* m_internalData, b3WheelCallback wheelCallback);
b3WheelCallback Mac_getWheelCallback(struct MacOpenGLWindowInternalData* m_internalData);
void Mac_setResizeCallback(struct MacOpenGLWindowInternalData* m_internalData, b3ResizeCallback resizeCallback);
b3ResizeCallback Mac_getResizeCallback(struct MacOpenGLWindowInternalData* m_internalData);
//void Mac_setRenderCallback(struct MacOpenGLWindowInternalData* m_internalData, b3RenderCallback renderCallback);
#ifdef __cplusplus
}
#endif
#endif //MAC_OPENGL_WINDOW_OBJC_H

View File

@@ -1,4 +1,4 @@
#include "MacOpenGLWindow.h"
#include "MacOpenGLWindowObjC.h"
#define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
#import <Cocoa/Cocoa.h>
@@ -66,12 +66,7 @@
#endif
enum
{
MY_MAC_ALTKEY=1,
MY_MAC_SHIFTKEY=2,
MY_MAC_CONTROL_KEY=4
};
/* report GL errors, if any, to stderr */
static void checkError(const char *functionName)
@@ -118,9 +113,7 @@ void dumpInfo(void)
-(NSOpenGLContext*) getContext;
@end
float loop;
#define Pi 3.1415
@implementation TestView
@@ -197,7 +190,6 @@ float loop;
[m_context flushBuffer];
[NSOpenGLContext clearCurrentContext];
loop = loop + 0.1;
}
-(void) MakeContext :(int) openglVersion
@@ -257,105 +249,75 @@ float loop;
struct MacOpenGLWindowInternalData
{
MacOpenGLWindowInternalData()
{
m_myApp = 0;
m_myview = 0;
m_pool = 0;
m_window = 0;
m_exitRequested = false;
}
NSApplication* m_myApp;
TestView* m_myview;
NSAutoreleasePool* m_pool;
NSWindow* m_window;
bool m_exitRequested;
NSApplication* m_myApp;
TestView* m_myview;
NSAutoreleasePool* m_pool;
NSWindow* m_window;
bool m_exitRequested;
float m_mouseX;
float m_mouseY;
int m_modifierFlags;
b3MouseButtonCallback m_mouseButtonCallback;
b3MouseMoveCallback m_mouseMoveCallback;
b3WheelCallback m_wheelCallback;
b3KeyboardCallback m_keyboardCallback;
b3RenderCallback m_renderCallback;
float m_retinaScaleFactor;
bool m_allowRetina;
};
MacOpenGLWindow::MacOpenGLWindow()
:m_internalData(0),
m_mouseX(0),
m_mouseY(0),
m_modifierFlags(0),
m_mouseButtonCallback(0),
m_mouseMoveCallback(0),
m_wheelCallback(0),
m_keyboardCallback(0),
m_retinaScaleFactor(1),
m_allowRetina(true)
struct MacOpenGLWindowInternalData* Mac_createData()
{
}
MacOpenGLWindow::~MacOpenGLWindow()
{
if (m_internalData)
closeWindow();
}
bool MacOpenGLWindow::isModifierKeyPressed(int key)
{
bool isPressed = false;
switch (key)
{
case B3G_ALT:
{
isPressed = ((m_modifierFlags & MY_MAC_ALTKEY)!=0);
break;
};
case B3G_SHIFT:
{
isPressed = ((m_modifierFlags & MY_MAC_SHIFTKEY)!=0);
break;
};
case B3G_CONTROL:
{
isPressed = ((m_modifierFlags & MY_MAC_CONTROL_KEY )!=0);
break;
};
default:
{
}
};
return isPressed;
}
float MacOpenGLWindow::getTimeInSeconds()
{
return 0.f;
}
void MacOpenGLWindow::setRenderCallback( b3RenderCallback renderCallback)
{
m_renderCallback = renderCallback;
}
void MacOpenGLWindow::setWindowTitle(const char* windowTitle)
{
[m_internalData->m_window setTitle:[NSString stringWithCString:windowTitle encoding:NSISOLatin1StringEncoding]] ;
}
void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
{
if (m_internalData)
closeWindow();
const char* windowTitle = ci.m_title;
struct MacOpenGLWindowInternalData* data = malloc(sizeof(struct MacOpenGLWindowInternalData));
data->m_myApp = 0;
data->m_myview = 0;
data->m_pool = 0;
data->m_window = 0;
data->m_exitRequested = false;
data->m_mouseX=-1;
data->m_mouseY=-1;
data->m_modifierFlags = 0;
data->m_mouseButtonCallback = 0;
data->m_mouseMoveCallback = 0;;
data->m_wheelCallback =0;
data->m_keyboardCallback =0;
data->m_renderCallback=0;
data->m_allowRetina = true;
data->m_retinaScaleFactor = 1;
return data;
}
void Mac_destroyData(struct MacOpenGLWindowInternalData* data)
{
free(data);
}
void Mac_setWindowTitle(struct MacOpenGLWindowInternalData* data, const char* windowTitle)
{
[data->m_window setTitle:[NSString stringWithCString:windowTitle encoding:NSISOLatin1StringEncoding]] ;
}
int Mac_createWindow(struct MacOpenGLWindowInternalData* m_internalData,struct MacWindowConstructionInfo* ci)
{
const char* windowTitle = ci->m_title;
m_internalData->m_allowRetina = (ci->m_allowRetina!=0);
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
m_internalData = new MacOpenGLWindowInternalData;
m_internalData->m_pool = [NSAutoreleasePool new];
m_internalData->m_myApp = [NSApplication sharedApplication];
//myApp = [MyApp sharedApplication];
//home();
m_internalData->m_myApp = [NSApplication sharedApplication];
//myApp = [MyApp sharedApplication];
//home();
[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
@@ -372,7 +334,7 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
[appMenu addItem:quitMenuItem];
[appMenuItem setSubmenu:appMenu];
NSMenuItem *fileMenuItem = [[NSMenuItem new] autorelease];
NSMenu *fileMenu = [[NSMenu alloc] initWithTitle:@"File"];
[fileMenuItem setSubmenu: fileMenu]; // was setMenu:
@@ -380,12 +342,12 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
NSMenuItem *newMenu = [[NSMenuItem alloc] initWithTitle:@"New" action:NULL keyEquivalent:@""];
NSMenuItem *openMenu = [[NSMenuItem alloc] initWithTitle:@"Open" action:NULL keyEquivalent:@""];
NSMenuItem *saveMenu = [[NSMenuItem alloc] initWithTitle:@"Save" action:NULL keyEquivalent:@""];
[fileMenu addItem: newMenu];
[fileMenu addItem: openMenu];
[fileMenu addItem: saveMenu];
[menubar addItem: fileMenuItem];
// add Edit menu
NSMenuItem *editMenuItem = [[NSMenuItem new] autorelease];
@@ -397,144 +359,123 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
[menu addItem:copyItem];
[menubar addItem:editMenuItem];
// [mainMenu setSubmenu:menu forItem:menuItem];
// [mainMenu setSubmenu:menu forItem:menuItem];
//NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle: @"File"];
/*[fileMenuItem setSubmenu: fileMenu]; // was setMenu:
[fileMenuItem release];
*/
[fileMenuItem release];
*/
/*NSMenu *newMenu;
NSMenuItem *newItem;
NSMenuItem *newItem;
// Add the submenu
newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]]
initWithTitle:@"Flashy" action:NULL keyEquivalent:@""];
newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]]
initWithTitle:@"Flashy"];
[newItem setSubmenu:newMenu];
[newMenu release];
[[NSApp mainMenu] addItem:newItem];
[newItem release];
*/
// Add the submenu
newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]]
initWithTitle:@"Flashy" action:NULL keyEquivalent:@""];
newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]]
initWithTitle:@"Flashy"];
[newItem setSubmenu:newMenu];
[newMenu release];
[[NSApp mainMenu] addItem:newItem];
[newItem release];
*/
NSRect frame = NSMakeRect(0., 0., ci->m_width, ci->m_height);
m_internalData->m_window = [NSWindow alloc];
[m_internalData->m_window initWithContentRect:frame
styleMask:MyNSTitledWindowMask |MyNSResizableWindowMask| MyNSClosableWindowMask | MyNSMiniaturizableWindowMask
backing:NSBackingStoreBuffered
defer:false];
[m_internalData->m_window setTitle:[NSString stringWithCString:windowTitle encoding:NSISOLatin1StringEncoding]] ;
m_internalData->m_myview = [TestView alloc];
NSRect frame = NSMakeRect(0., 0., ci.m_width, ci.m_height);
m_internalData->m_window = [NSWindow alloc];
[m_internalData->m_window initWithContentRect:frame
styleMask:MyNSTitledWindowMask |MyNSResizableWindowMask| MyNSClosableWindowMask | MyNSMiniaturizableWindowMask
backing:NSBackingStoreBuffered
defer:false];
[m_internalData->m_window setTitle:[NSString stringWithCString:windowTitle encoding:NSISOLatin1StringEncoding]] ;
m_internalData->m_myview = [TestView alloc];
[m_internalData->m_myview setResizeCallback:0];
///ci.m_resizeCallback];
///ci.m_resizeCallback];
[m_internalData->m_myview initWithFrame: frame];
[m_internalData->m_myview initWithFrame: frame];
// OpenGL init!
[m_internalData->m_myview MakeContext : ci.m_openglVersion];
// https://developer.apple.com/library/mac/#documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/CapturingScreenContents/CapturingScreenContents.html#//apple_ref/doc/uid/TP40012302-CH10-SW1
// OpenGL init!
[m_internalData->m_myview MakeContext : ci->m_openglVersion];
// https://developer.apple.com/library/mac/#documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/CapturingScreenContents/CapturingScreenContents.html#//apple_ref/doc/uid/TP40012302-CH10-SW1
//support HighResolutionOSX for Retina Macbook
if (ci.m_openglVersion>=3)
if (ci->m_openglVersion>=3)
{
if (m_allowRetina)
{
[m_internalData->m_myview setWantsBestResolutionOpenGLSurface:YES];
}
if (m_internalData->m_allowRetina)
{
[m_internalData->m_myview setWantsBestResolutionOpenGLSurface:YES];
}
}
NSSize sz;
sz.width = 1;
sz.height = 1;
// float newBackingScaleFactor = [m_internalData->m_window backingScaleFactor];
// float newBackingScaleFactor = [m_internalData->m_window backingScaleFactor];
dumpInfo();
[m_internalData->m_window setContentView: m_internalData->m_myview];
[m_internalData->m_window setDelegate:(id) m_internalData->m_myview];
[m_internalData->m_window setDelegate:(id) m_internalData->m_myview];
[m_internalData->m_window makeKeyAndOrderFront: nil];
[m_internalData->m_myview MakeCurrent];
[NSApp activateIgnoringOtherApps:YES];
//[m_internalData->m_window setLevel:NSMainMenuWindowLevel];
// [NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask];
//[m_internalData->m_window setLevel:NSMainMenuWindowLevel];
// [NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *event)
// {
//[window setFrameOrigin:[NSEvent mouseLocation]];
// NSPoint eventLocation = [m_internalData->m_window mouseLocationOutsideOfEventStream];
// NSPoint eventLocation = [event locationInWindow];
//NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil];
// m_mouseX = center.x;
// m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
// printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY);
// [NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask];
// [NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *event)
// {
//[window setFrameOrigin:[NSEvent mouseLocation]];
// NSPoint eventLocation = [m_internalData->m_window mouseLocationOutsideOfEventStream];
// NSPoint eventLocation = [event locationInWindow];
//NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil];
// m_mouseX = center.x;
// m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
// printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY);
// if (m_mouseMoveCallback)
// (*m_mouseMoveCallback)(m_mouseX,m_mouseY);
// }];
// (*m_mouseMoveCallback)(m_mouseX,m_mouseY);
// }];
//see http://stackoverflow.com/questions/8238473/cant-get-nsmousemoved-events-from-nexteventmatchingmask-with-an-nsopenglview
/* ProcessSerialNumber psn;
GetCurrentProcess(&psn);
/* ProcessSerialNumber psn;
GetCurrentProcess(&psn);
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
SetFrontProcess(&psn);
*/
#ifndef NO_OPENGL3
m_retinaScaleFactor = [m_internalData->m_myview convertSizeToBacking:sz].width;
*/
#ifndef NO_OPENGL3
m_internalData->m_retinaScaleFactor = [m_internalData->m_myview convertSizeToBacking:sz].width;
#else
m_retinaScaleFactor=1.f;
m_internalData->m_retinaScaleFactor=1.f;
#endif
[m_internalData->m_myApp finishLaunching];
[m_internalData->m_myApp finishLaunching];
[pool release];
return 0;
}
void MacOpenGLWindow::runMainLoop()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// FILE* dump = fopen ("/Users/erwincoumans/yes.txt","wb");
// fclose(dump);
[pool release];
}
void MacOpenGLWindow::closeWindow()
{
delete m_internalData;
m_internalData = 0;
}
extern float m_azi;
extern float m_ele;
extern float m_cameraDistance;
/*
@@ -809,9 +750,9 @@ int getAsciiCodeFromVirtualKeycode(int virtualKeyCode)
}
void MacOpenGLWindow::startRendering()
int Mac_updateWindow(struct MacOpenGLWindowInternalData* m_internalData)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
GLint err = glGetError();
@@ -834,46 +775,47 @@ void MacOpenGLWindow::startRendering()
//NSShiftKeyMask = 1 << 17,
//NSControlKeyMask
if ([event type] == MyNSEventTypeFlagsChanged)
{
int modifiers = [event modifierFlags];
if (m_keyboardCallback)
if (m_internalData->m_keyboardCallback)
{
if ((modifiers & MyNSEventModifierFlagShift))
{
m_keyboardCallback(B3G_SHIFT,1);
m_modifierFlags |= MY_MAC_SHIFTKEY;
m_internalData->m_keyboardCallback(B3G_SHIFT,1);
m_internalData->m_modifierFlags |= MY_MAC_SHIFTKEY;
}else
{
if (m_modifierFlags& MY_MAC_SHIFTKEY)
if (m_internalData->m_modifierFlags& MY_MAC_SHIFTKEY)
{
m_keyboardCallback(B3G_SHIFT,0);
m_modifierFlags &= ~MY_MAC_SHIFTKEY;
m_internalData->m_keyboardCallback(B3G_SHIFT,0);
m_internalData->m_modifierFlags &= ~MY_MAC_SHIFTKEY;
}
}
if (modifiers & MyNSEventModifierFlagControl)
{
m_keyboardCallback(B3G_CONTROL,1);
m_modifierFlags |= MY_MAC_CONTROL_KEY;
m_internalData->m_keyboardCallback(B3G_CONTROL,1);
m_internalData->m_modifierFlags |= MY_MAC_CONTROL_KEY;
} else
{
if (m_modifierFlags&MY_MAC_CONTROL_KEY)
if (m_internalData->m_modifierFlags&MY_MAC_CONTROL_KEY)
{
m_keyboardCallback(B3G_CONTROL,0);
m_modifierFlags &= ~MY_MAC_CONTROL_KEY;
m_internalData->m_keyboardCallback(B3G_CONTROL,0);
m_internalData->m_modifierFlags &= ~MY_MAC_CONTROL_KEY;
}
}
if (modifiers & MyNSEventModifierFlagOption)
{
m_keyboardCallback(B3G_ALT,1);
m_modifierFlags |= MY_MAC_ALTKEY;
m_internalData->m_keyboardCallback(B3G_ALT,1);
m_internalData->m_modifierFlags |= MY_MAC_ALTKEY;
} else
{
if (m_modifierFlags&MY_MAC_ALTKEY)
if (m_internalData->m_modifierFlags&MY_MAC_ALTKEY)
{
m_keyboardCallback(B3G_ALT,0);
m_modifierFlags &= ~MY_MAC_ALTKEY;
m_internalData->m_keyboardCallback(B3G_ALT,0);
m_internalData->m_modifierFlags &= ~MY_MAC_ALTKEY;
}
}
@@ -890,10 +832,10 @@ void MacOpenGLWindow::startRendering()
int keycode = getAsciiCodeFromVirtualKeycode(virtualKeycode);
// printf("keycode = %d\n", keycode);
if (m_keyboardCallback)
if (m_internalData->m_keyboardCallback)
{
int state = 0;
m_keyboardCallback(keycode,state);
m_internalData->m_keyboardCallback(keycode,state);
}
}
@@ -909,10 +851,10 @@ void MacOpenGLWindow::startRendering()
int keycode = getAsciiCodeFromVirtualKeycode(virtualKeycode);
//printf("keycode = %d\n", keycode);
if (m_keyboardCallback)
if (m_internalData->m_keyboardCallback)
{
int state = 1;
m_keyboardCallback(keycode,state);
m_internalData->m_keyboardCallback(keycode,state);
}
}
}
@@ -926,8 +868,8 @@ void MacOpenGLWindow::startRendering()
NSPoint eventLocation = [event locationInWindow];
NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil];
m_mouseX = center.x;
m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
m_internalData->m_mouseX = center.x;
m_internalData->m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
int button=0;
switch ([event type])
{
@@ -952,10 +894,10 @@ void MacOpenGLWindow::startRendering()
}
};
// printf("mouse coord = %f, %f\n",mouseX,mouseY);
if (m_mouseButtonCallback)
if (m_internalData->m_mouseButtonCallback)
{
//handledEvent = true;
(*m_mouseButtonCallback)(button,1,m_mouseX,m_mouseY);
(*m_internalData->m_mouseButtonCallback)(button,1,m_internalData->m_mouseX,m_internalData->m_mouseY);
}
}
@@ -967,8 +909,8 @@ void MacOpenGLWindow::startRendering()
NSPoint eventLocation = [event locationInWindow];
NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil];
m_mouseX = center.x;
m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
m_internalData->m_mouseX = center.x;
m_internalData->m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
int button=0;
switch ([event type])
@@ -995,8 +937,8 @@ void MacOpenGLWindow::startRendering()
};
// printf("mouse coord = %f, %f\n",mouseX,mouseY);
if (m_mouseButtonCallback)
(*m_mouseButtonCallback)(button,0,m_mouseX,m_mouseY);
if (m_internalData->m_mouseButtonCallback)
(*m_internalData->m_mouseButtonCallback)(button,0,m_internalData->m_mouseX,m_internalData->m_mouseY);
}
@@ -1006,15 +948,15 @@ void MacOpenGLWindow::startRendering()
NSPoint eventLocation = [event locationInWindow];
NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil];
m_mouseX = center.x;
m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
m_internalData->m_mouseX = center.x;
m_internalData->m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
// printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY);
if (m_mouseMoveCallback)
if (m_internalData->m_mouseMoveCallback)
{
//handledEvent = true;
(*m_mouseMoveCallback)(m_mouseX,m_mouseY);
(*m_internalData->m_mouseMoveCallback)(m_internalData->m_mouseX,m_internalData->m_mouseY);
}
}
@@ -1026,13 +968,13 @@ void MacOpenGLWindow::startRendering()
NSPoint eventLocation = [event locationInWindow];
NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil];
m_mouseX = center.x;
m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
m_internalData->m_mouseX = center.x;
m_internalData->m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y;
if (m_mouseMoveCallback)
if (m_internalData->m_mouseMoveCallback)
{
//handledEvent = true;
(*m_mouseMoveCallback)(m_mouseX,m_mouseY);
(*m_internalData->m_mouseMoveCallback)(m_internalData->m_mouseX,m_internalData->m_mouseY);
}
// printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY);
@@ -1044,16 +986,17 @@ void MacOpenGLWindow::startRendering()
dy = [ event deltaY ];
dx = [ event deltaX ];
if (m_wheelCallback)
if (m_internalData->m_wheelCallback)
{
handledEvent = true;
(*m_wheelCallback)(dx,dy);
(*m_internalData->m_wheelCallback)(dx,dy);
}
// m_cameraDistance -= dy*0.1;
// m_azi -= dx*0.1;
}
if (!handledEvent)
[m_internalData->m_myApp sendEvent:event];
@@ -1080,28 +1023,52 @@ void MacOpenGLWindow::startRendering()
err = glGetError();
assert(err==GL_NO_ERROR);
float aspect;
//b3Vector3 extents;
if (getWidth() > getHeight())
{
aspect = (float)getWidth() / (float)getHeight();
//extents.setValue(aspect * 1.0f, 1.0f,0);
} else
{
aspect = (float)getHeight() / (float)getWidth();
//extents.setValue(1.0f, aspect*1.f,0);
}
err = glGetError();
assert(err==GL_NO_ERROR);
[pool release];
return 0;
}
void MacOpenGLWindow::endRendering()
int Mac_isModifierKeyPressed(struct MacOpenGLWindowInternalData* m_internalData, int key)
{
[m_internalData->m_myview MakeCurrent];
int isPressed = 0;
switch (key)
{
case B3G_ALT:
{
isPressed = ((m_internalData->m_modifierFlags & MY_MAC_ALTKEY)!=0);
break;
};
case B3G_SHIFT:
{
isPressed = ((m_internalData->m_modifierFlags & MY_MAC_SHIFTKEY)!=0);
break;
};
case B3G_CONTROL:
{
isPressed = ((m_internalData->m_modifierFlags & MY_MAC_CONTROL_KEY )!=0);
break;
};
default:
{
}
};
return isPressed;
}
//void Mac_setRenderCallback(struct MacOpenGLWindowInternalData* m_internalData, b3RenderCallback renderCallback)
//{
// m_internalData->m_renderCallback = renderCallback;
//}
void Mac_swapBuffer(struct MacOpenGLWindowInternalData* m_internalData)
{
[m_internalData->m_myview MakeCurrent];
//#ifndef NO_OPENGL3
// glSwapAPPLE();
//#else
@@ -1110,21 +1077,76 @@ void MacOpenGLWindow::endRendering()
}
bool MacOpenGLWindow::requestedExit() const
int Mac_requestedExit(struct MacOpenGLWindowInternalData* m_internalData)
{
bool closeme = m_internalData->m_myview.GetRequestClose;
int closeme = m_internalData->m_myview.GetRequestClose;
return m_internalData->m_exitRequested || closeme;
}
void MacOpenGLWindow::setRequestExit()
void Mac_setRequestExit(struct MacOpenGLWindowInternalData* m_internalData)
{
m_internalData->m_exitRequested = true;
}
#include <string.h>
int MacOpenGLWindow::fileOpenDialog(char* filename, int maxNameLength)
void Mac_setMouseButtonCallback(struct MacOpenGLWindowInternalData* m_internalData, b3MouseButtonCallback mouseCallback)
{
//save/restore the OpenGL context, NSOpenPanel can mess it up
m_internalData->m_mouseButtonCallback = mouseCallback;
}
b3MouseButtonCallback Mac_getMouseButtonCallback(struct MacOpenGLWindowInternalData* m_internalData)
{
return m_internalData->m_mouseButtonCallback;
}
void Mac_setWheelCallback(struct MacOpenGLWindowInternalData* m_internalData, b3WheelCallback wheelCallback)
{
m_internalData->m_wheelCallback = wheelCallback;
}
b3WheelCallback Mac_getWheelCallback(struct MacOpenGLWindowInternalData* m_internalData)
{
return m_internalData->m_wheelCallback;
}
void Mac_setMouseMoveCallback(struct MacOpenGLWindowInternalData* m_internalData, b3MouseMoveCallback mouseCallback)
{
m_internalData->m_mouseMoveCallback = mouseCallback;
}
b3MouseMoveCallback Mac_getMouseMoveCallback(struct MacOpenGLWindowInternalData* m_internalData)
{
return m_internalData->m_mouseMoveCallback;
}
b3KeyboardCallback Mac_getKeyboardCallback(struct MacOpenGLWindowInternalData* m_internalData)
{
return m_internalData->m_keyboardCallback;
}
void Mac_setKeyboardCallback( struct MacOpenGLWindowInternalData* m_internalData, b3KeyboardCallback keyboardCallback)
{
m_internalData->m_keyboardCallback = keyboardCallback;
}
float Mac_getRetinaScale(struct MacOpenGLWindowInternalData* m_internalData)
{
return m_internalData->m_retinaScaleFactor;
}
void Mac_setAllowRetina(struct MacOpenGLWindowInternalData* m_internalData, int allow)
{
m_internalData->m_allowRetina = allow;
}
int Mac_fileOpenDialog(char* filename, int maxNameLength)
{
//save/restore the OpenGL context, NSOpenPanel can mess it up
//http://stackoverflow.com/questions/13987148/nsopenpanel-breaks-my-sdl-opengl-app
NSOpenGLContext *foo = [NSOpenGLContext currentContext];
@@ -1145,7 +1167,7 @@ int MacOpenGLWindow::fileOpenDialog(char* filename, int maxNameLength)
{
//without the file://
NSString *myString = [zUrl absoluteString];
int slen = [myString length];
int slen = (int)[myString length];
if (slen < maxNameLength)
{
const char *cfilename=[myString UTF8String];
@@ -1153,7 +1175,7 @@ int MacOpenGLWindow::fileOpenDialog(char* filename, int maxNameLength)
const char* p = strstr(cfilename, "file://");
if (p==cfilename)
{
int actualLen = strlen(cfilename)-7;
int actualLen = (int)strlen(cfilename)-7;
memcpy(filename, cfilename+7,actualLen);
filename[actualLen]=0;
return actualLen;
@@ -1164,23 +1186,20 @@ int MacOpenGLWindow::fileOpenDialog(char* filename, int maxNameLength)
return 0;
}
void MacOpenGLWindow::getMouseCoordinates(int& x, int& y)
void Mac_getMouseCoordinates(struct MacOpenGLWindowInternalData* m_internalData, int* xPtr, int* yPtr)
{
NSPoint pt = [m_internalData->m_window mouseLocationOutsideOfEventStream];
m_mouseX = pt.x;
m_mouseY = pt.y;
m_internalData->m_mouseX = pt.x;
m_internalData->m_mouseY = pt.y;
x = m_mouseX;
*xPtr = m_internalData->m_mouseX;
//our convention is x,y is upper left hand side
y = [m_internalData->m_myview GetWindowHeight]-m_mouseY;
*yPtr = [m_internalData->m_myview GetWindowHeight]-m_internalData->m_mouseY;
}
int MacOpenGLWindow::getWidth() const
int Mac_getWidth(struct MacOpenGLWindowInternalData* m_internalData)
{
if (m_internalData && m_internalData->m_myview && m_internalData->m_myview.GetWindowWidth)
return m_internalData->m_myview.GetWindowWidth;
@@ -1188,25 +1207,23 @@ int MacOpenGLWindow::getWidth() const
return 0;
}
int MacOpenGLWindow::getHeight() const
int Mac_getHeight(struct MacOpenGLWindowInternalData* m_internalData)
{
if (m_internalData && m_internalData->m_myview && m_internalData->m_myview.GetWindowHeight)
return m_internalData->m_myview.GetWindowHeight;
return 0;
}
void MacOpenGLWindow::setResizeCallback(b3ResizeCallback resizeCallback)
void Mac_setResizeCallback(struct MacOpenGLWindowInternalData* m_internalData, b3ResizeCallback resizeCallback)
{
[m_internalData->m_myview setResizeCallback:resizeCallback];
if (resizeCallback)
{
(resizeCallback)(getWidth(), getHeight());
(resizeCallback)(Mac_getWidth(m_internalData), Mac_getHeight(m_internalData));
}
}
b3ResizeCallback MacOpenGLWindow::getResizeCallback()
b3ResizeCallback Mac_getResizeCallback(struct MacOpenGLWindowInternalData* m_internalData)
{
return [m_internalData->m_myview getResizeCallback];
}
}

View File

@@ -41,10 +41,17 @@
"X11OpenGLWindows.h"
}
end
if not os.is("MacoSX") then
excludes {
"MacOpenGLWindow.cpp"
}
end
if os.is("MacOSX") then
files
{
"../OpenGLWindow/MacOpenGLWindow.h",
"../OpenGLWindow/MacOpenGLWindow.mm",
"MacOpenGLWindow.h",
"MacOpenGLWindow.cpp",
"MacOpenGLWindowObjC.m",
"MacOpenGLWindowObjC.h",
}
end

389
setup.py Normal file
View File

@@ -0,0 +1,389 @@
from setuptools import find_packages
from sys import platform as _platform
import sys
import glob
from distutils.core import setup
from distutils.extension import Extension
from distutils.util import get_platform
from glob import glob
#see http://stackoverflow.com/a/8719066/295157
import os
os.environ['LDFLAGS'] = '-framework Cocoa -framework OpenGL'
platform = get_platform()
print(platform)
CXX_FLAGS = ''
CXX_FLAGS += '-DGWEN_COMPILE_STATIC '
CXX_FLAGS += '-DBT_ENABLE_ENET '
CXX_FLAGS += '-DBT_ENABLE_CLSOCKET '
# libraries += [current_python]
sources = ["examples/pybullet/pybullet.c"]\
+["examples/ExampleBrowser/InProcessExampleBrowser.cpp"]\
+["examples/TinyRenderer/geometry.cpp"]\
+["examples/TinyRenderer/model.cpp"]\
+["examples/TinyRenderer/tgaimage.cpp"]\
+["examples/TinyRenderer/our_gl.cpp"]\
+["examples/TinyRenderer/TinyRenderer.cpp"]\
+["examples/SharedMemory/IKTrajectoryHelper.cpp"]\
+["examples/SharedMemory/InProcessMemory.cpp"]\
+["examples/SharedMemory/PhysicsClient.cpp"]\
+["examples/SharedMemory/PhysicsServer.cpp"]\
+["examples/SharedMemory/PhysicsServerExample.cpp"]\
+["examples/SharedMemory/SharedMemoryInProcessPhysicsC_API.cpp"]\
+["examples/SharedMemory/PhysicsServerSharedMemory.cpp"]\
+["examples/SharedMemory/PhysicsDirect.cpp"]\
+["examples/SharedMemory/PhysicsDirectC_API.cpp"]\
+["examples/SharedMemory/PhysicsServerCommandProcessor.cpp"]\
+["examples/SharedMemory/PhysicsClientSharedMemory.cpp"]\
+["examples/SharedMemory/PhysicsClientSharedMemory_C_API.cpp"]\
+["examples/SharedMemory/PhysicsClientC_API.cpp"]\
+["examples/SharedMemory/Win32SharedMemory.cpp"]\
+["examples/SharedMemory/PosixSharedMemory.cpp"]\
+["examples/SharedMemory/TinyRendererVisualShapeConverter.cpp"]\
+["examples/Utils/b3ResourcePath.cpp"]\
+["examples/Utils/RobotLoggingUtil.cpp"]\
+["examples/Utils/ChromeTraceUtil.cpp"]\
+["examples/Utils/b3Clock.cpp"]\
+["examples/Utils/b3Quickprof.cpp"]\
+["examples/ThirdPartyLibs/tinyxml/tinystr.cpp"]\
+["examples/ThirdPartyLibs/tinyxml/tinyxml.cpp"]\
+["examples/ThirdPartyLibs/tinyxml/tinyxmlerror.cpp"]\
+["examples/ThirdPartyLibs/tinyxml/tinyxmlparser.cpp"]\
+["examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.cpp"]\
+["examples/ThirdPartyLibs/stb_image/stb_image.cpp"]\
+["examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp"]\
+["examples/Importers/ImportObjDemo/LoadMeshFromObj.cpp"]\
+["examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp"]\
+["examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp"]\
+["examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp"]\
+["examples/Importers/ImportURDFDemo/MyMultiBodyCreator.cpp"]\
+["examples/Importers/ImportURDFDemo/URDF2Bullet.cpp"]\
+["examples/Importers/ImportURDFDemo/UrdfParser.cpp"]\
+["examples/Importers/ImportURDFDemo/urdfStringSplit.cpp"]\
+["examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp"]\
+["examples/MultiThreading/b3PosixThreadSupport.cpp"]\
+["examples/MultiThreading/b3Win32ThreadSupport.cpp"]\
+["examples/MultiThreading/b3ThreadSupportInterface.cpp"]\
+["examples/ThirdPartyLibs/enet/callbacks.c"]\
+["examples/ThirdPartyLibs/enet/compress.c"]\
+["examples/ThirdPartyLibs/enet/host.c"]\
+["examples/ThirdPartyLibs/enet/list.c"]\
+["examples/ThirdPartyLibs/enet/packet.c"]\
+["examples/ThirdPartyLibs/enet/peer.c"]\
+["examples/ThirdPartyLibs/enet/protocol.c"]\
+["examples/ExampleBrowser/OpenGLGuiHelper.cpp"]\
+["examples/ExampleBrowser/OpenGLExampleBrowser.cpp"]\
+["examples/ExampleBrowser/CollisionShape2TriangleMesh.cpp"]\
+["examples/ExampleBrowser/GL_ShapeDrawer.cpp"]\
+["examples/OpenGLWindow/SimpleOpenGL2Renderer.cpp"]\
+["examples/OpenGLWindow/GLInstancingRenderer.cpp"]\
+["examples/OpenGLWindow/SimpleOpenGL3App.cpp"]\
+["examples/OpenGLWindow/GLPrimitiveRenderer.cpp"]\
+["examples/OpenGLWindow/TwFonts.cpp"]\
+["examples/OpenGLWindow/GLRenderToTexture.cpp"]\
+["examples/OpenGLWindow/LoadShader.cpp"]\
+["examples/OpenGLWindow/OpenSans.cpp"]\
+["examples/OpenGLWindow/SimpleCamera.cpp"]\
+["examples/OpenGLWindow/fontstash.cpp"]\
+["examples/OpenGLWindow/SimpleOpenGL2App.cpp"]\
+["examples/OpenGLWindow/opengl_fontstashcallbacks.cpp"]\
+["examples/ExampleBrowser/GwenGUISupport/GraphingTexture.cpp"]\
+["examples/ExampleBrowser/GwenGUISupport/GwenProfileWindow.cpp"]\
+["examples/ExampleBrowser/GwenGUISupport/gwenUserInterface.cpp"]\
+["examples/ExampleBrowser/GwenGUISupport/GwenParameterInterface.cpp"]\
+["examples/ExampleBrowser/GwenGUISupport/GwenTextureWindow.cpp"]\
+["src/LinearMath/btAlignedAllocator.cpp"]\
+["src/LinearMath/btGeometryUtil.cpp"]\
+["src/LinearMath/btSerializer.cpp"]\
+["src/LinearMath/btVector3.cpp"]\
+["src/LinearMath/btConvexHull.cpp"]\
+["src/LinearMath/btPolarDecomposition.cpp"]\
+["src/LinearMath/btSerializer64.cpp"]\
+["src/LinearMath/btConvexHullComputer.cpp"]\
+["src/LinearMath/btQuickprof.cpp"]\
+["src/LinearMath/btThreads.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btDbvt.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btDispatcher.cpp"]\
+["src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp"]\
+["src/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp"]\
+["src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btHashedSimplePairCache.cpp"]\
+["src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp"]\
+["src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btManifoldResult.cpp"]\
+["src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp"]\
+["src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp"]\
+["src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp"]\
+["src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btCollisionObject.cpp"]\
+["src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp"]\
+["src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp"]\
+["src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp"]\
+["src/BulletCollision/CollisionDispatch/btUnionFind.cpp"]\
+["src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.cpp"]\
+["src/BulletCollision/CollisionDispatch/btGhostObject.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btContinuousConvexCollision.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btGjkEpaPenetrationDepthSolver.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btPolyhedralContactClipping.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btConvexCast.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btGjkPairDetector.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btRaycastCallback.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btGjkConvexCast.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btMinkowskiPenetrationDepthSolver.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btSubSimplexConvexCast.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btGjkEpa2.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btPersistentManifold.cpp"]\
+["src/BulletCollision/NarrowphaseCollision/btVoronoiSimplexSolver.cpp"]\
+["src/BulletCollision/CollisionShapes/btBox2dShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp"]\
+["src/BulletCollision/CollisionShapes/btShapeHull.cpp"]\
+["src/BulletCollision/CollisionShapes/btBoxShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btConvexShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btSphereShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btCapsuleShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btCylinderShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp"]\
+["src/BulletCollision/CollisionShapes/btCollisionShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btEmptyShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btCompoundShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp"]\
+["src/BulletCollision/CollisionShapes/btConcaveShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btTriangleCallback.cpp"]\
+["src/BulletCollision/CollisionShapes/btConeShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp"]\
+["src/BulletCollision/CollisionShapes/btConvex2dShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp"]\
+["src/BulletCollision/CollisionShapes/btConvexHullShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp"]\
+["src/BulletCollision/CollisionShapes/btTriangleMesh.cpp"]\
+["src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp"]\
+["src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp"]\
+["src/BulletCollision/Gimpact/btContactProcessing.cpp"]\
+["src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp"]\
+["src/BulletCollision/Gimpact/btTriangleShapeEx.cpp"]\
+["src/BulletCollision/Gimpact/gim_memory.cpp"]\
+["src/BulletCollision/Gimpact/btGImpactBvh.cpp"]\
+["src/BulletCollision/Gimpact/btGImpactShape.cpp"]\
+["src/BulletCollision/Gimpact/gim_box_set.cpp"]\
+["src/BulletCollision/Gimpact/gim_tri_collision.cpp"]\
+["src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp"]\
+["src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp"]\
+["src/BulletCollision/Gimpact/gim_contact.cpp"]\
+["src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp"]\
+["src/BulletDynamics/Dynamics/btRigidBody.cpp"]\
+["src/BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp"]\
+["src/BulletDynamics/Dynamics/btDiscreteDynamicsWorldMt.cpp"]\
+["src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp"]\
+["src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp"]\
+["src/BulletDynamics/MLCPSolvers/btDantzigLCP.cpp"]\
+["src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp"]\
+["src/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBody.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodyFixedConstraint.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp"]\
+["src/BulletDynamics/Featherstone/btMultiBodySliderConstraint.cpp"]\
+["src/BulletDynamics/Vehicle/btRaycastVehicle.cpp"]\
+["src/BulletDynamics/Vehicle/btWheelInfo.cpp"]\
+["src/BulletDynamics/Character/btKinematicCharacterController.cpp"]\
+["src/Bullet3Common/b3AlignedAllocator.cpp"]\
+["src/Bullet3Common/b3Logging.cpp"]\
+["src/Bullet3Common/b3Vector3.cpp"]\
+["examples/ThirdPartyLibs/clsocket/src/ActiveSocket.cpp"]\
+["examples/ThirdPartyLibs/clsocket/src/PassiveSocket.cpp"]\
+["examples/ThirdPartyLibs/clsocket/src/SimpleSocket.cpp"]\
+["Extras/Serialize/BulletFileLoader/bChunk.cpp"]\
+["Extras/Serialize/BulletFileLoader/bDNA.cpp"]\
+["Extras/Serialize/BulletFileLoader/bFile.cpp"]\
+["Extras/Serialize/BulletFileLoader/btBulletFile.cpp"]\
+["Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp"]\
+["Extras/Serialize/BulletWorldImporter/btWorldImporter.cpp"]\
+["Extras/InverseDynamics/CloneTreeCreator.cpp"]\
+["Extras/InverseDynamics/IDRandomUtil.cpp"]\
+["Extras/InverseDynamics/MultiBodyTreeDebugGraph.cpp"]\
+["Extras/InverseDynamics/User2InternalIndex.cpp"]\
+["Extras/InverseDynamics/CoilCreator.cpp"]\
+["Extras/InverseDynamics/MultiBodyNameMap.cpp"]\
+["Extras/InverseDynamics/RandomTreeCreator.cpp"]\
+["Extras/InverseDynamics/btMultiBodyTreeCreator.cpp"]\
+["Extras/InverseDynamics/DillCreator.cpp"]\
+["Extras/InverseDynamics/MultiBodyTreeCreator.cpp"]\
+["Extras/InverseDynamics/SimpleTreeCreator.cpp"]\
+["Extras/InverseDynamics/invdyn_bullet_comparison.cpp"]\
+["src/BulletSoftBody/btDefaultSoftBodySolver.cpp"]\
+["src/BulletSoftBody/btSoftBodyHelpers.cpp"]\
+["src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp"]\
+["src/BulletSoftBody/btSoftBody.cpp"]\
+["src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp"]\
+["src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp"]\
+["src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp"]\
+["src/BulletSoftBody/btSoftMultiBodyDynamicsWorld.cpp"]\
+["src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp"]\
+["src/BulletInverseDynamics/IDMath.cpp"]\
+["src/BulletInverseDynamics/MultiBodyTree.cpp"]\
+["src/BulletInverseDynamics/details/MultiBodyTreeImpl.cpp"]\
+["src/BulletInverseDynamics/details/MultiBodyTreeInitCache.cpp"]\
+["examples/ThirdPartyLibs/BussIK/Jacobian.cpp"]\
+["examples/ThirdPartyLibs/BussIK/LinearR2.cpp"]\
+["examples/ThirdPartyLibs/BussIK/LinearR3.cpp"]\
+["examples/ThirdPartyLibs/BussIK/LinearR4.cpp"]\
+["examples/ThirdPartyLibs/BussIK/MatrixRmn.cpp"]\
+["examples/ThirdPartyLibs/BussIK/Misc.cpp"]\
+["examples/ThirdPartyLibs/BussIK/Node.cpp"]\
+["examples/ThirdPartyLibs/BussIK/Tree.cpp"]\
+["examples/ThirdPartyLibs/BussIK/VectorRn.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Anim.cpp"]\
+["examples/ThirdPartyLibs/Gwen/DragAndDrop.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Hook.cpp"]\
+["examples/ThirdPartyLibs/Gwen/ToolTip.cpp"]\
+["examples/ThirdPartyLibs/Gwen/events.cpp"]\
+["examples/ThirdPartyLibs/Gwen/BaseRender.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Gwen.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Skin.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Utility.cpp"]\
+["examples/ThirdPartyLibs/Gwen/inputhandler.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Base.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Button.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Canvas.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/CheckBox.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ColorControls.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ColorPicker.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ComboBox.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/CrossSplitter.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/DockBase.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/DockedTabControl.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Dragger.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/GroupBox.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/HSVColorPicker.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/HorizontalScrollBar.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ImagePanel.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/HorizontalSlider.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Label.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/LabelClickable.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ListBox.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/MenuItem.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Menu.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/MenuStrip.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/NumericUpDown.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/PanelListPanel.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ProgressBar.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Properties.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/RadioButton.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/RadioButtonController.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ResizableControl.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Resizer.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/RichLabel.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ScrollBar.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ScrollBarBar.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ScrollBarButton.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/ScrollControl.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Slider.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/SplitterBar.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/TabButton.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/TabControl.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/TabStrip.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Text.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/TextBox.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/TextBoxNumeric.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/TreeControl.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/TreeNode.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/VerticalScrollBar.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/VerticalSlider.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/WindowControl.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Dialog/FileOpen.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Dialog/FileSave.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Controls/Dialog/Query.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Platforms/Null.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Platforms/Windows.cpp"]\
+["examples/ThirdPartyLibs/Gwen/Renderers/OpenGL_DebugFont.cpp"]\
if _platform == "linux" or _platform == "linux2":
libraries += ['dl']
CXX_FLAGS += '-D_LINUX '
CXX_FLAGS += '-DHAS_SOCKLEN_T '
CXX_FLAGS += '-fno-inline-functions-called-once'
elif _platform == "darwin":
print("darwin!")
CXX_FLAGS += '-DHAS_SOCKLEN_T '
CXX_FLAGS += '-D_DARWIN '
# CXX_FLAGS += '-framework Cocoa '
sources = sources + ["examples/ThirdPartyLibs/enet/unix.c"]\
+["examples/OpenGLWindow/MacOpenGLWindow.cpp"]\
+["examples/OpenGLWindow/MacOpenGLWindowObjC.m"]
setup(
name = 'pybullet',
version='0.1.0',
description='Official Python Interface for the Bullet Physics SDK Robotics Simulator',
long_description='pybullet is an easy to use Python module for physics simulation, robotics and machine learning based on the Bullet Physics SDK. With pybullet you can load articulated bodies from URDF, SDF and other file formats. pybullet provides forward dynamics simulation, inverse dynamics computation, forward and inverse kinematics and collision detection and ray intersection queries. Aside from physics simulation, pybullet supports to rendering, with a CPU renderer and OpenGL visualization and support for virtual reality headsets.',
url='https://github.com/bulletphysics/bullet3',
author='Erwin Coumans, Yunfei Bai, Jasmine Hsu',
author_email='erwincoumans@google.com',
license='zlib',
platforms='any',
keywords=['physics', 'robotics', 'collision detection', 'simulation'],
ext_modules = [Extension("pybullet",
sources = sources
,
extra_compile_args=CXX_FLAGS.split(),
include_dirs = ["src","examples/ThirdPartyLibs","examples/ThirdPartyLibs/Glew", "examples/ThirdPartyLibs/enet/include","examples/ThirdPartyLibs/clsocket/src"]
) ],
package_data = {
'pybullet': ['data/*'],
},
)

View File

@@ -63,7 +63,9 @@
links{"Cocoa.framework"}
print("hello!")
files{
"../../examples/OpenGLWindow/MacOpenGLWindow.mm",
"../../examples/OpenGLWindow/MacOpenGLWindow.cpp",
"../../examples/OpenGLWindow/MacOpenGLWindow.h",
"../../examples/OpenGLWindow/MacOpenGLWindowObjC.m",
"../../examples/OpenGLWindow/MacOpenGLWindowObjC.h",
}
end