载入中...
搜索中...
未找到
Physics.cpp
浏览该文件的文档.
Definition Exception.h:14
virtual std::string getName() const =0
void setRotation(float qx, float qy, float qz, float qw)
Orientation as quaternion (x, y, z, w).
Definition Body3D.cpp:113
void applyForce(float fx, float fy, float fz)
Force applied at the center of mass.
Definition Body3D.cpp:190
void applyLinearImpulse(float ix, float iy, float iz)
Instantaneous linear impulse.
Definition Body3D.cpp:200
void setFixedRotation(bool fixed)
Lock all angular axes (Box3D motion locks).
Definition Body3D.cpp:220
void applyAngularImpulse(float ix, float iy, float iz)
Instantaneous angular impulse.
Definition Body3D.cpp:205
Shape3D * newBoxShape(float width, float height, float depth, float density=1.f, float friction=0.2f, float restitution=0.f)
Box extents are full width/height/depth in meters (same convention as Body.newRectangleFixture)....
Definition Body3D.cpp:259
void applyForceAt(float fx, float fy, float fz, float x, float y, float z)
Force applied at a world position.
Definition Body3D.cpp:195
Shape3D * newCapsuleShape(float height, float radius, float density=1.f, float friction=0.2f, float restitution=0.f)
Capsule along local Y; height is distance between hemisphere centers.
Definition Body3D.cpp:296
void setLinearVelocity(float vx, float vy, float vz)
Linear velocity in m/s.
Definition Body3D.cpp:150
void setType(const std::string &bodyType)
"static" | "kinematic" | "dynamic".
Definition Body3D.cpp:210
void setAngularVelocity(float wx, float wy, float wz)
Angular velocity in rad/s.
Definition Body3D.cpp:170
Shape3D * newSphereShape(float radius, float density=1.f, float friction=0.2f, float restitution=0.f)
Definition Body3D.cpp:279
Fixture * newRectangleFixture(float width, float height, float density=1.f, float friction=0.2f, float restitution=0.f)
width/height in pixels; density kg/m² (Box2D units).
Definition Body.cpp:211
void applyForceAt(float fx, float fy, float x, float y)
Force applied at a world pixel position.
Definition Body.cpp:156
void setBullet(bool bullet)
CCD bullet mode (recommended for fast small bodies).
Definition Body.cpp:197
Fixture * newCircleFixture(float radius, float density=1.f, float friction=0.2f, float restitution=0.f)
Definition Body.cpp:239
void applyForce(float fx, float fy)
Force (pixels/s² * kg) applied at the center of mass.
Definition Body.cpp:150
Fixture * newRectangleFixtureAt(float width, float height, float offsetX, float offsetY, float density=1.f, float friction=0.2f, float restitution=0.f)
Rectangle fixture with a local pixel-space offset from the body origin.
Definition Body.cpp:216
Interactive 2D cloth — Verlet particles + distance constraints. Pixel space (same convention as Box2D...
Definition Cloth.h:17
void setParticlePosition(int index, float x, float y)
Definition Cloth.cpp:178
void setBounds(float x, float y, float w, float h)
Axis-aligned walls; particles bounce inside. Disabled if w/h <= 0.
Definition Cloth.cpp:91
void setStiffness(float stiffness)
Constraint relaxation strength in [0,1] (default 0.85).
Definition Cloth.cpp:79
void setDamping(float damping)
Damping applied to Verlet velocity [0,1] (default 0.01).
Definition Cloth.cpp:87
void setColor(float r, float g, float b, float a=1.f)
Definition Cloth.cpp:161
void setIterations(int iterations)
Constraint solver iterations per substep (default 4).
Definition Cloth.cpp:83
int grabAt(float x, float y, float radius=24.f)
Grab nearest free particle within radius (pixels). Returns particle index, or -1 if none.
Definition Cloth.cpp:125
void setSensor(bool sensor)
Sensor fixtures report contacts but never collide.
Definition Fixture.cpp:43
bool testPoint(float x, float y) const
Pixel-space point-in-fixture test (uses World meter).
Definition Fixture.cpp:105
void setCategoryBits(int bits)
Collision filtering (Box2D category/mask bits, group index).
Definition Fixture.cpp:72
void setRestitution(float restitution)
Definition Fixture.cpp:57
void setTag(const std::string &tag)
Arbitrary string tag surfaced in begin/end contact events.
Definition Fixture.h:40
Interactive 2D particle fluid (double-density relaxation) in pixel space. Script-owned; independent o...
Definition Fluid.h:17
int emit(float x, float y, int count, float vx=0.f, float vy=0.f)
Spawn up to count particles at (x,y) with initial velocity. Returns number actually added.
Definition Fluid.cpp:65
void setRestDensity(float density)
Target rest density for the relaxation solver (default 4).
Definition Fluid.cpp:38
void setColor(float r, float g, float b, float a=1.f)
Definition Fluid.cpp:96
void setBounds(float x, float y, float w, float h)
Axis-aligned container; particles bounce inside.
Definition Fluid.cpp:51
float getNearPressureStiffness() const
Definition Fluid.h:45
void setSmoothingRadius(float radius)
Interaction / neighbor radius in pixels (default 18).
Definition Fluid.cpp:33
void setNearPressureStiffness(float k)
Near-pressure (anti-clustering) stiffness (default 0.5).
Definition Fluid.cpp:45
void interactAt(float x, float y, float radius, float strength)
Mouse / pointer interaction: positive strength attracts, negative repels. Applied as acceleration wit...
Definition Fluid.cpp:89
Physics module — Box2D (2D) + Box3D (3D) rigid bodies, plus interactive cloth / SPH fluid....
Definition Physics.h:17
World3D * newWorld3D(float gravityX, float gravityY, float gravityZ, bool sleep=true)
Create a 3D Box3D physics world. Coordinates are meters (Box3D native); +Y is up by convention.
Definition Physics.cpp:34
void setMeter(float pixelsPerMeter)
Pixels per meter for 2D Box2D worlds (default 30, same as LÖVE).
Definition Physics.cpp:22
Fluid * newFluid(int capacity=512)
Create an SPH fluid container with particle capacity.
Definition Physics.cpp:42
Cloth * newCloth(int cols, int rows, float spacing, float originX, float originY)
Create a Verlet cloth grid (top row pinned).
Definition Physics.cpp:38
World * newWorld(float gravityX, float gravityY, bool sleep=true)
Create a 2D Box2D physics world.
Definition Physics.cpp:30
bool testPoint(float x, float y, float z) const
Point-in-shape test in world meters.
Definition Shape3D.cpp:133
void setRestitution(float restitution)
Definition Shape3D.cpp:117
void setSensor(bool sensor)
Sensor shapes report contacts but never collide.
Definition Shape3D.cpp:102
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixe...
Definition World3D.h:18
void update(float dt)
Steps the simulation by dt seconds (default substep count).
Definition World3D.cpp:65
int rayCast(float x1, float y1, float z1, float x2, float y2, float z2)
Closest raycast from (x1,y1,z1) to (x2,y2,z2) in meters. Returns hit body id, or -1....
Definition World3D.cpp:146
int queryAABB(float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
Query shapes overlapping an AABB in meters (min/max corners). Returns match count; read ids with getQ...
Definition World3D.cpp:177
void updateFull(float dt, int subStepCount)
Steps with an explicit substep count.
Definition World3D.cpp:67
Body3D * newBody(const std::string &bodyType, float x, float y, float z)
bodyType: "static" | "kinematic" | "dynamic". Position in meters.
Definition World3D.cpp:98
Box2D world wrapper (2D physics) with pixel-space coordinates. Handles stepping, gravity,...
Definition World.h:31
void update(float dt)
Steps the simulation by dt seconds (5 velocity / 2 position iterations).
Definition World.cpp:194
int queryAABB(float x, float y, float w, float h)
Query fixtures overlapping an axis-aligned box in pixel space (x,y,w,h). Returns match count; read id...
Definition World.cpp:484
float getImpactNormalY(int index) const
Definition World.cpp:412
std::string getBeginContactFixtureATag(int index) const
Definition World.cpp:373
std::string getEndContactFixtureATag(int index) const
Definition World.cpp:385
void drawDebug(graphics::Graphics *gfx)
Optional: draw fixture AABBs via Graphics::drawSolidRect.
Definition World.cpp:432
int getEndContactBodyBId(int index) const
Definition World.cpp:382
int getBeginContactBodyBId(int index) const
Definition World.cpp:370
void setGravity(float gx, float gy)
Sets the world gravity vector in pixels/s^2.
Definition World.cpp:204
int getEndContactBodyAId(int index) const
Definition World.cpp:379
float getRayHitFraction() const
Fraction along the segment [0,1] of the closest hit.
Definition World.h:98
float getImpactNormalX(int index) const
Definition World.cpp:409
float getImpactRelativeNormalSpeed(int index) const
Definition World.cpp:415
Body * newBody(const std::string &bodyType, float x, float y)
bodyType: "static" | "kinematic" | "dynamic". x/y in pixels.
Definition World.cpp:230
int getBeginContactBodyAId(int index) const
Definition World.cpp:367
float getImpactNormalImpulse(int index) const
Definition World.cpp:418
std::string getEndContactFixtureBTag(int index) const
Definition World.cpp:388
int rayCast(float x1, float y1, float x2, float y2)
Closest raycast in pixel space from (x1,y1) to (x2,y2). Returns hit body id, or -1....
Definition World.cpp:439
float getImpactTangentImpulse(int index) const
Definition World.cpp:421
std::string getBeginContactFixtureBTag(int index) const
Definition World.cpp:376
void updateFull(float dt, int velocityIterations, int positionIterations)
Steps with explicit iteration counts.
Definition World.cpp:196
void clearContactEvents()
Clears collected begin/end contact and impact event buffers.
Definition World.cpp:425
std::string getImpactFixtureATag(int index) const
Definition World.cpp:397
std::string getImpactFixtureBTag(int index) const
Definition World.cpp:400
Definition Body.cpp:11
void registerPhysicsCapabilities()
Definition PhysicsCapabilities.cpp:72