Index
A
- activation state
- about / Introducing activation states
- addConstraint() function / Building a constraint
- addRigidBody() function / Groups and masks
- ambient lighting
- application layer
- building / Building the application layer
- FreeGLUT, configuring / Configuring FreeGLUT
- FreeGLUT, initializing / Initializing FreeGLUT
- applicaton layer
- about / Application components
- Axis-aligned bounding boxes (AABBs) / The broad phase
B
- box
- coloring / Coloring your box
- creating / Creating a box
- btBroadPhaseInterface object / The broad phase
- btCompoundShape class / Compound shapes
- btConvexHullShape class / Convex hulls
- btConvexHullShape constructor / Convex hulls
- btCylinderShape / Spheres and cylinders
- btRigidBody
- accesible commands / Understanding the object motion
- btSoftRigidDynamicsWorld world object / Soft body requirements
- btSphereShape / Spheres and cylinders
- Bullet
- about / Application components
- URL, for downloading / Exploring the Bullet and FreeGLUT projects
- built-in demo applications, exploring / Exploring Bullet's built-in demo applications
- new project, starting / Starting a new project
- components, creating / Creating the Bullet components
- BulletOpenGLApplication static / Configuring FreeGLUT
C
- camera
- about / Understanding the basics of a camera
- glIdentity function / glIdentity
- glFrustum function / glFrustum
- gluLookAt function / gluLookAt
- glViewport function / glViewport
- control / Implementing camera control
- center of mass (COM) / Designing our objects
- CFM
- about / Building a constraint
- collision dispatcher / The collision dispatcher
- CollisionEvent() functions / Applying impulses
- collision event system
- building / Building a collision event system
- persistent manifolds / Explaining the persistent manifolds
- managing / Managing the collision event
- collision event, managing / Managing the collision event
- collision filtering
- code, to implement / Groups and masks
- addRigidBody() function / Groups and masks
- implementing / Groups and masks
- CollisionFilteringDemo application / Defining linear and angular freedom
- collision object
- collision shape
- compound shapes / Compound shapes
- constraints
- about / Constraints
- objects, moving with / Picking up objects
- building / Building a constraint
- constraint solver / The constraint solver
- contact response
- disabling / Disabling contact response
- convex hulls
- about / Convex hulls
- creating, from mesh data / Creating convex hulls from mesh data
- core bullet objects
- about / The core bullet objects
- world object / The world object
- broad phase / The broad phase
- collision configuration / The collision configuration
- collision dispatcher / The collision dispatcher
- constraint solver / The constraint solver
- CreateGameObject() function / Defining linear and angular freedom
- CreateObjects() function / Creating a box
D
- 2.5D games / Defining linear and angular freedom
- debug
- rendering / Debug rendering
- debug drawer
- building / Building the debug drawer
- debugDrawWorld() function / Building the debug drawer
- delimiters / Creating a simple box
- depth buffer
- about / Understanding depth testing
- depth testing
- about / Understanding depth testing
- glLightfv() function / glLightfv
- glEnable() function / glEnable
- glMaterialfv function / glMaterialfv/glMateriali
- glMateriali function / glMaterialfv/glMateriali
- DestroyGameObject() function / Destroying objects, Applying impulses
- diffuse lighting
- domino effect / The domino effect
- double-buffering
- about / Introducing double-buffering
- DrawBox() / Creating a simple box
- DrawBox() function / Rendering from transform data, Handling multiple objects
- drawContactPoint() function / Building the debug drawer
- drawLine() function / Building the debug drawer
- DrawShape() command / Convex hulls, Compound shapes
- DrawShape() function / Rendering our objects, Compound shapes
- DrawSphere() / Spheres and cylinders
E
- E key / Applying impulses
- ERP
- about / Building a constraint
F
- field of view (FOV) / glFrustum
- fixed-function pipeline / Understanding rendering pipelines
- forces
- applying / Applying forces
- FreeGLUT
- about / Application components
- URL, for downloading / Exploring the Bullet and FreeGLUT projects
- configuring / Configuring FreeGLUT
- documentation, URL / glutIdleFunc
- initializing / Initializing FreeGLUT
- launching / Launching FreeGLUT
- FreeGLUT, configuring
- about / Configuring FreeGLUT
- glutKeyboardUpFunc function / glutKeyboardFunc/glutKeyboardUpFunc
- glutKeyboardFunc function / glutKeyboardFunc/glutKeyboardUpFunc
- glutSpecialUpFunc function / glutSpecialFunc/glutSpecialUpFunc
- glutSpecialFunc function / glutSpecialFunc/glutSpecialUpFunc
- glutMouseFunc function / glutMouseFunc
- glutPassiveMotionFunc function / glutMotionFunc/glutPassiveMotionFunc
- glutMotionFunc function / glutMotionFunc/glutPassiveMotionFunc
- glutReshapeFunc function / glutReshapeFunc
- glutDisplayFunc function / glutDisplayFunc
- glutIdleFunc function / glutIdleFunc
- FreeGLUT, initializing
- about / Initializing FreeGLUT
- glutInit function / glutInit
- glutInitDisplayMode function / glutInitDisplayMode
- glutInitWindowSize function / glutInitWindowPosition/glutInitWindowSize
- glutInitWindowPosition function / glutInitWindowPosition/glutInitWindowSize
- glutCreateWindow function / glutCreateWindow
- glutSetOption function / glutSetOption
- frontbuffer
- about / Introducing double-buffering
- frustum
G
- getFrameOffsetA() function / Building a constraint
- getOpenGLMatrix() helper function / Building a custom motion state
- GetPickingRay() function / Picking rays
- getSoftBodyArray() function / Rendering soft bodies
- G key / Applying forces
- glBegin() function / Creating a simple box
- glClearColor() function / Introducing double-buffering
- glColor3f() / Normals
- glDepthFunc function / glDepthFunc
- glEnable() function / glEnable
- glFrustum function / glFrustum
- glIdentity function / glIdentity
- glLightfv() function / glLightfv
- glMaterialfv function / glMaterialfv/glMateriali
- glMateriali function / glMaterialfv/glMateriali
- glPopMatrix() / Rendering from transform data
- glPushMatrix() / Rendering from transform data
- glShadeModel() function / glShadeModel
- gluCylinder() / Spheres and cylinders
- gluDisk() / Spheres and cylinders
- gluLookAt function / gluLookAt
- GLUT (OpenGL Utility Toolkit) / Exploring Bullet's built-in demo applications
- glutCreateWindow function / glutCreateWindow
- glutDisplayFunc function / glutDisplayFunc
- glutIdleFunc function / glutIdleFunc
- glutInitDisplayMode function / glutInitDisplayMode
- glutInit function / glutInit
- glutInitWindowPosition function / glutInitWindowPosition/glutInitWindowSize
- glutInitWindowSize function / glutInitWindowPosition/glutInitWindowSize
- glutKeyboardFunc function / glutKeyboardFunc/glutKeyboardUpFunc
- glutKeyboardUpFunc function / glutKeyboardFunc/glutKeyboardUpFunc
- glutmain() function / Launching FreeGLUT
- glutMainloop() function / Launching FreeGLUT
- glutMotionFunc function / glutMotionFunc/glutPassiveMotionFunc
- glutMouseFunc function / glutMouseFunc
- glutPassiveMotionFunc function / glutMotionFunc/glutPassiveMotionFunc
- glutReshapeFunc function / glutReshapeFunc
- glutSetOption function / glutSetOption
- glutSpecialFunc function / glutSpecialFunc/glutSpecialUpFunc
- glutSpecialUpFunc function / glutSpecialFunc/glutSpecialUpFunc
- glutSwapBuffers() / Introducing double-buffering
- glViewport function / glViewport
I
- impulses / Understanding the object motion
- appling / Understanding the object motion
- applyCentralImpulse() / Understanding the object motion
- applyImpulse() / Understanding the object motion
- applying / Applying impulses
- initializePolyhedralFeatures() / Convex hulls
- islands
- about / The domino effect
K
- Keyboard() command / Applying impulses
- Keyboard() function / Building the debug drawer, Destroying objects, Applying impulses
M
- main() function / Starting a new project, Groups and masks
- Manifolds
- about / The collision configuration
- moment of inertia / Designing our objects
- Motion() function / Building a constraint
- motion state
- about / Creating our first physics object, The motion state
- custom motion state, building / Building a custom motion state
- Mouse() function / Picking rays
- multiple objects
- handling / Handling multiple objects
N
- normals
- about / Normals
O
- object motion
- about / Understanding the object motion
- objects
- designing / Designing our objects
- rendering / Rendering our objects
- storing / Storing our objects
- creating / Creating our objects
- destroying / Destroying objects
- moving, with constraints / Picking up objects
P
- persistent manifolds / Explaining the persistent manifolds
- physics object, components
- collision shape / Creating our first physics object
- motion state / Creating our first physics object
- collision object / Creating our first physics object
- picking
- about / The power of raycasting
- picking rays
- about / Picking rays
- point / Convex hulls
- polymorphism / Building the debug drawer
- programmable pipeline / Understanding rendering pipelines
R
- Raycast() function / Destroying objects, Applying impulses
- raycasting
- picking rays / Picking rays
- RemovePickingConstraint() function / Building a constraint
S
- scene
- rendering / Rendering the scene
- setAngularFactor() function / Defining linear and angular freedom
- setDebugDrawer() function / Building the debug drawer
- setLinearVelocity() function / Picking rays
- setParam() function / Building a constraint
- setPose() function / Creating soft bodies
- setTotalMass() function / Creating soft bodies
- shaders / Understanding rendering pipelines
- ShootBox() command / Understanding the object motion
- ShootBox() function / Picking rays
- simulation
- stopping / Stepping the simulation
- Single Instruction, Multiple Data (SIMD) / Storing our objects
- soft body
- requisites / Soft body requirements
- initialization / Initialization
- creating / Creating soft bodies
- rendering / Rendering soft bodies
- specular lighting
- Spiral of Death / The domino effect
- Standard Template Library (STL) / Storing our objects
- stepSimulation() function / Stepping the simulation, The domino effect
- STL (Standard Template Library) / Managing the collision event
T
- torques / Force, torque, and impulse
- transform data
- rendering from / Rendering from transform data
- trigger volumes
- building / Building trigger volumes
- contact response, disabling / Disabling contact response
U
- UpdateCamera() / Implementing camera control
- user input
- gathering / Gathering user input
V
- vertex cloud / Convex hulls
W
- W key / Disabling contact response
- wrappers
- about / Application components
Z
- z-buffer
- about / Understanding depth testing