RigidBody2D::RigidBody2D(PhysWorld2D* world, float mass, Collider2DRef geom) : m_geom(), m_userData(nullptr), m_world(world), m_isStatic(false), m_gravityFactor(1.f), m_mass(mass) { NazaraAssert(m_world, "Invalid world"); m_handle = Create(mass); SetGeom(geom); }
RigidBody2D::RigidBody2D(PhysWorld2D* world, float mass, Collider2DRef geom) : m_geom(), m_userData(nullptr), m_world(world), m_isRegistered(false), m_isSimulationEnabled(true), m_isStatic(false), m_gravityFactor(1.f), m_mass(mass) { NazaraAssert(m_world, "Invalid world"); m_handle = Create(mass); SetGeom(std::move(geom)); }
RigidBody2D::RigidBody2D(const RigidBody2D& object) : m_geom(object.m_geom), m_userData(object.m_userData), m_world(object.m_world), m_isStatic(object.m_isStatic), m_gravityFactor(object.m_gravityFactor), m_mass(object.GetMass()) { NazaraAssert(m_world, "Invalid world"); NazaraAssert(m_geom, "Invalid geometry"); m_handle = Create(m_mass, object.GetMomentOfInertia()); SetGeom(object.GetGeom(), false); CopyBodyData(object.GetHandle()); for (std::size_t i = 0; i < m_shapes.size(); ++i) m_shapes[i]->bb = cpShapeCacheBB(object.m_shapes[i]); }
// Constructor Problem::Problem(Geom *geom, Model *model, string path = "") { SetGeom(geom); SetModel(model); if ((path.length() > 0)&&(path[path.length()-1] != '/')) path += "/"; FilePath = path; READ_PARAMETER_OR_DEFAULT(InitialState,M->LowerState + \ 0.5*(M->UpperState - M->LowerState)); READ_PARAMETER_OR_DEFAULT(GoalState,M->LowerState); StateDim = M->StateDim; InputDim = M->InputDim; LowerState = M->LowerState; UpperState = M->UpperState; NumBodies = G->NumBodies; MaxDeviates = G->MaxDeviates; }