nuclear@0: #ifndef RNDVAL_H_ nuclear@0: #define RNDVAL_H_ nuclear@0: nuclear@0: #include nuclear@0: #include "pstrack.h" nuclear@0: nuclear@0: struct psys_rnd { nuclear@0: float value, range; nuclear@0: }; nuclear@0: nuclear@0: struct psys_rnd3 { nuclear@0: vec3_t value, range; nuclear@0: }; nuclear@0: nuclear@0: struct psys_anm_rnd { nuclear@0: struct psys_track value, range; nuclear@0: }; nuclear@0: nuclear@0: struct psys_anm_rnd3 { nuclear@0: struct psys_track3 value, range; nuclear@0: }; nuclear@0: nuclear@0: #define PSYS_EVAL_CUR ANM_TIME_INVAL nuclear@0: nuclear@0: #ifdef __cplusplus nuclear@0: extern "C" { nuclear@0: #endif nuclear@0: nuclear@0: int psys_init_anm_rnd(struct psys_anm_rnd *v); nuclear@0: void psys_destroy_anm_rnd(struct psys_anm_rnd *v); nuclear@0: int psys_init_anm_rnd3(struct psys_anm_rnd3 *v); nuclear@0: void psys_destroy_anm_rnd3(struct psys_anm_rnd3 *v); nuclear@0: nuclear@0: void psys_copy_anm_rnd(struct psys_anm_rnd *dest, const struct psys_anm_rnd *src); nuclear@0: void psys_copy_anm_rnd3(struct psys_anm_rnd3 *dest, const struct psys_anm_rnd3 *src); nuclear@0: nuclear@0: void psys_set_rnd(struct psys_rnd *r, float val, float range); nuclear@0: void psys_set_rnd3(struct psys_rnd3 *r, vec3_t val, vec3_t range); nuclear@0: nuclear@0: void psys_set_anm_rnd(struct psys_anm_rnd *r, anm_time_t tm, float val, float range); nuclear@0: void psys_set_anm_rnd3(struct psys_anm_rnd3 *r, anm_time_t tm, vec3_t val, vec3_t range); nuclear@0: nuclear@0: float psys_eval_rnd(struct psys_rnd *r); nuclear@0: vec3_t psys_eval_rnd3(struct psys_rnd3 *r); nuclear@0: nuclear@0: float psys_eval_anm_rnd(struct psys_anm_rnd *r, anm_time_t tm); nuclear@0: vec3_t psys_eval_anm_rnd3(struct psys_anm_rnd3 *r, anm_time_t tm); nuclear@0: nuclear@0: #ifdef __cplusplus nuclear@0: } nuclear@0: #endif nuclear@0: nuclear@0: #endif /* RNDVAL_H_ */