bool ThrowStone() { bool success=false; // figure out grain size. draw a size from a distribution dN = C * D^-alpha dD (Asphaug 2009 AnnRev) NxReal drawnSize = DrawFromBoundedPowerLaw(gsd[0],gsd[1],gsd[2]); // CHOOSE GOOD VALUES HERE // make a random grain, use default material NxActor* actor=NULL; actor=CreateConvexPolyGrain(NxVec3(0,2,0),gDefaultDensity,drawnSize,false,(8 + gRNG.int32()%8)); if (actor) { actor->setName("rubble"); if (gRavitatorThresholdMass>0 && actor->getMass()>gRavitatorThresholdMass) actor->setName("boulder"); } // randomize and let fly if (actor) { ReOrientActor(actor); SpinActor(actor,1); LaunchActor(actor,1); } success=true; return success; }