# PySoy's fields Declarations # # Copyright (C) 2006,2007,2008 PySoy Group # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program; if not, see http://www.gnu.org/licenses # # $Id$ cimport ode cimport soy._internals cimport soy.bodies cdef class Field (soy.bodies.Body) : cdef void _give ( self, int ) nogil cdef int _apply ( self ) nogil cdef int _exert ( self, soy.bodies.Body ) nogil cdef void _commit ( self ) nogil cdef class Monopole (Field) : cdef soy._internals.Children _affected cdef float _multiplier cdef class Wind (Field) : cdef float _density cdef float _vx cdef float _vy cdef float _vz cdef class Shockwave (Field) : cdef ode.dSpaceID _space cdef float _radius cdef double _t0 cdef double _inner cdef double _outer cdef float _velocity cdef float _length cdef float _energy cdef class Buoyancy (Field) : cdef soy._internals.Children _affected cdef float _density cdef extern from "math.h" nogil : float powf (float x, float y)