// This file is a part of the Framsticks GDK. // Copyright (C) 1999-2014 Maciej Komosinski and Szymon Ulatowski. See LICENSE.txt for details. // Refer to http://www.framsticks.com/ for further information. #ifndef _NEUROIMPLBODY_H_ #define _NEUROIMPLBODY_H_ #include class NI_Gyro: public NeuroImpl { public: NeuroImpl* makeNew(){return new NI_Gyro();} // for NeuroFactory int lateinit() {if (!neuro->joint) return 0; simorder=0; return 1;} void go() {setState(0);} }; extern ParamEntry NI_Touch_tab[]; class NI_Touch: public NeuroImpl { public: double range; NeuroImpl* makeNew(){return new NI_Touch();} // for NeuroFactory int lateinit() {if (!neuro->part) return 0; simorder=0; return 1;} void go() {setState(0);} NI_Touch():range(1) {paramentries=NI_Touch_tab;} }; class NI_Smell: public NeuroImpl { public: NeuroImpl* makeNew(){return new NI_Smell();} // for NeuroFactory void go() {setState(0);} int lateinit() {if (!neuro->part) return 0; simorder=0; return 1;} }; extern ParamEntry NI_BendMuscle_tab[]; class NI_BendMuscle: public NeuroImpl { public: double power,bendrange; NeuroImpl* makeNew(){return new NI_BendMuscle();} // for NeuroFactory NI_BendMuscle() {paramentries=NI_BendMuscle_tab;} int lateinit() {if (!neuro->joint) return 0; simorder=2; return 1;} void go() {} }; extern ParamEntry NI_RotMuscle_tab[]; class NI_RotMuscle: public NeuroImpl { public: double power; NeuroImpl* makeNew(){return new NI_RotMuscle();} // for NeuroFactory NI_RotMuscle() {paramentries=NI_RotMuscle_tab;} int lateinit() {if (!neuro->joint) return 0; simorder=2; return 1;} void go() {} }; extern ParamEntry NI_LinearMuscle_tab[]; class NI_LinearMuscle: public NeuroImpl { public: double power; NeuroImpl* makeNew(){return new NI_RotMuscle();} // for NeuroFactory NI_LinearMuscle() {paramentries=NI_RotMuscle_tab;} int lateinit() {if (!neuro->joint) return 0; simorder=2; return 1;} void go() {} }; class NI_Sticky: public NeuroImpl { public: double power; NeuroImpl* makeNew(){return new NI_Sticky();} // for NeuroFactory int lateinit() {if (!neuro->part) return 0; simorder=0; return 1;} void go() {} }; class NI_WaterDetect: public NeuroImpl { public: NeuroImpl* makeNew(){return new NI_WaterDetect();} // for NeuroFactory int lateinit() {if (!neuro->part) return 0; simorder=0; return 1;} void go() {setState(0);} }; class NI_Energy: public NeuroImpl { public: NeuroImpl* makeNew(){return new NI_Energy();} // for NeuroFactory void go() {setState(0);} }; #endif