source: cpp/frams/neuro/impl/neuroimpl-body-sdk.h @ 875

Last change on this file since 875 was 791, checked in by Maciej Komosinski, 7 years ago

Code formatting

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
2// Copyright (C) 1999-2015  Maciej Komosinski and Szymon Ulatowski.
3// See LICENSE.txt for details.
4
5#ifndef _NEUROIMPLBODY_H_
6#define _NEUROIMPLBODY_H_
7
8#include <frams/neuro/neuroimpl.h>
9
10class NI_Gyro : public NeuroImpl
11{
12public:
13        NeuroImpl* makeNew(){ return new NI_Gyro(); } // for NeuroFactory
14        int lateinit() { if (!neuro->joint) return 0; simorder = 0; return 1; }
15        void go() { setState(0); }
16};
17
18extern ParamEntry NI_Touch_tab[];
19class NI_Touch : public NeuroImpl
20{
21public:
22        double range;
23        NeuroImpl* makeNew(){ return new NI_Touch(); } // for NeuroFactory
24        int lateinit() { if (!neuro->part) return 0; simorder = 0; return 1; }
25        void go() { setState(0); }
26        NI_Touch() :range(1) { paramentries = NI_Touch_tab; }
27};
28
29class NI_Smell : public NeuroImpl
30{
31public:
32        NeuroImpl* makeNew(){ return new NI_Smell(); } // for NeuroFactory
33        void go() { setState(0); }
34        int lateinit() { if (!neuro->part) return 0; simorder = 0; return 1; }
35};
36
37extern ParamEntry NI_BendMuscle_tab[];
38class NI_BendMuscle : public NeuroImpl
39{
40public:
41        double power, bendrange;
42        NeuroImpl* makeNew(){ return new NI_BendMuscle(); } // for NeuroFactory
43        NI_BendMuscle() { paramentries = NI_BendMuscle_tab; }
44        int lateinit() { if (!neuro->joint) return 0; simorder = 2; return 1; }
45        void go() {}
46};
47
48extern ParamEntry NI_RotMuscle_tab[];
49class NI_RotMuscle : public NeuroImpl
50{
51public:
52        double power;
53        NeuroImpl* makeNew(){ return new NI_RotMuscle(); } // for NeuroFactory
54        NI_RotMuscle() { paramentries = NI_RotMuscle_tab; }
55        int lateinit() { if (!neuro->joint) return 0; simorder = 2; return 1; }
56        void go() {}
57};
58
59extern ParamEntry NI_LinearMuscle_tab[];
60class NI_LinearMuscle : public NeuroImpl
61{
62public:
63        double power;
64        NeuroImpl* makeNew(){ return new NI_RotMuscle(); } // for NeuroFactory
65        NI_LinearMuscle() { paramentries = NI_RotMuscle_tab; }
66        int lateinit() { if (!neuro->joint) return 0; simorder = 2; return 1; }
67        void go() {}
68};
69
70class NI_Sticky : public NeuroImpl
71{
72public:
73        double power;
74        NeuroImpl* makeNew(){ return new NI_Sticky(); } // for NeuroFactory
75        int lateinit() { if (!neuro->part) return 0; simorder = 0; return 1; }
76        void go() {}
77};
78
79class NI_WaterDetect : public NeuroImpl
80{
81public:
82        NeuroImpl* makeNew(){ return new NI_WaterDetect(); } // for NeuroFactory
83        int lateinit() { if (!neuro->part) return 0; simorder = 0; return 1; }
84        void go() { setState(0); }
85};
86
87class NI_Energy : public NeuroImpl
88{
89public:
90        NeuroImpl* makeNew(){ return new NI_Energy(); } // for NeuroFactory
91        void go() { setState(0); }
92};
93
94#endif
Note: See TracBrowser for help on using the repository browser.