nuclear@0: #ifndef COMP_PHYS_H_ nuclear@0: #define COMP_PHYS_H_ nuclear@0: nuclear@0: #include nuclear@0: #include "comp.h" nuclear@6: #include "co_xform.h" nuclear@6: nuclear@6: class SimWorld; nuclear@0: nuclear@5: class CoRigid : public Component { nuclear@6: protected: nuclear@6: CoPRS *co_prs; // cached PRS component of the parent object nuclear@6: nuclear@6: const char **update_before() const; nuclear@6: nuclear@0: public: nuclear@6: SimWorld *world; nuclear@8: bool fixed; nuclear@0: float mass, elast, friction; nuclear@6: Vector3 vel, force; nuclear@6: Vector3 impulse; nuclear@0: nuclear@5: CoRigid(); nuclear@3: nuclear@8: void set_fixed(bool f); nuclear@8: bool get_fixed() const; nuclear@8: nuclear@8: void set_mass(float mass); nuclear@8: float get_mass() const; nuclear@8: nuclear@6: void add_impulse(const Vector3 &v); nuclear@6: nuclear@6: void update(float dt); nuclear@0: }; nuclear@0: nuclear@8: // helper component accessors nuclear@8: CoRigid *gobj_co_rigid(const GObject *obj, bool nofail = true); nuclear@8: nuclear@0: #endif // COMP_PHYS_H_