-
-
Save andykorth/2719572 to your computer and use it in GitHub Desktop.
Convex Moment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
So I see two options right now: | |
Idea 1: | |
// add a convenience method to the API | |
cpMakeBodyAndShape(mass, NUM_VERTS, verts){ | |
verts = AllThatConvexHullStuff(verts); | |
moment = cpMomentForPoly(verts, otherNumber, mass, etc); | |
body = cpSpaceAddBody(space, cpBodyNew(mass, moment)); | |
shape = cpSpaceAddShape(space, cpPolyShapeNew(body, NUM_VERTS, verts, cpvzero)); | |
return something?; | |
} | |
// this convenience method won't work for every situation, not sure if they are expected to add multiple shapes on their own if they want more than one on a body, etc... | |
// People using this might not understand the distinction between a shape and a body, which was always very clean in the API before. (you always make a body, then you add zero or more shapes to it) | |
Idea 2: | |
float PLACE_HOLDER_MOMENT = 7.0; // or whatever. If I want I can calculate this myself. Otherwise I can just leave this argument off the cpBodyNew and maybe it'll give it an infinite moment. | |
body = cpSpaceAddBody(space, cpBodyNew(mass, PLACE_HOLDER_MOMENT)); | |
shape = cpSpaceAddShapeAND_SET_MOMENT(space, cpPolyShapeNew(body, NUM_VERTS, verts, cpvzero)); | |
So cpSpaceAddShapeAND_SET_MOMENT will do the convex hull, find the moment, and replace it on body. | |
If you want a custom moment, you need to calculate it on your own.. so really this is just a convenience method like idea 1. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment