Skip to Main Content
Physics for Game Developers, 2nd Edition
book

Physics for Game Developers, 2nd Edition

by Bryan Bywalec, David M Bourg
April 2013
Intermediate to advanced content levelIntermediate to advanced
575 pages
15h 54m
English
O'Reilly Media, Inc.
Content preview from Physics for Game Developers, 2nd Edition

Appendix B. Matrix Operations

This appendix implements a class called Matrix3x3 that encapsulates all of the operations you need to handle 3×3 (nine-element) matrices when writing 3D rigid-body simulations.

Matrix3×3 Class

The Matrix3x3 class is defined with nine elements, eij, where i represents the ith row and j the jth column. For example, e21 refers to the element on the second row in the first column. Here’s how all of the elements are arranged:

image with no caption

The class has two constructors, one of which initializes the matrix elements to zero, and the other of which initializes the elements to those passed to the constructor:

class Matrix3x3 { public: // elements eij: i -> row, j -> column float e11, e12, e13, e21, e22, e23, e31, e32, e33; Matrix3x3(void); Matrix3x3(float r1c1, float r1c2, float r1c3, float r2c1, float r2c2, float r2c3, float r3c1, float r3c2, float r3c3 ); float det(void); Matrix3x3 Transpose(void); Matrix3x3 Inverse(void); Matrix3x3& operator+=(Matrix3x3 m); Matrix3x3& operator-=(Matrix3x3 m); Matrix3x3& operator*=(float s); Matrix3x3& operator/=(float s); }; // Constructor inline Matrix3x3::Matrix3x3(void) { e11 = 0; e12 = 0; e13 = 0; e21 = 0; e22 = 0; e23 = 0; e31 = 0; e32 = 0; e33 = 0; } // Constructor inline Matrix3x3::Matrix3x3(float r1c1, float r1c2, float r1c3, float r2c1, float r2c2, float r2c3, float r3c1, float r3c2, float r3c3 ) { e11 = r1c1; e12 = r1c2; e13 = r1c3; ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Game Physics Engine Development, 2nd Edition

Game Physics Engine Development, 2nd Edition

Ian Millington

Publisher Resources

ISBN: 9781449361037Errata PageSupplemental Content