History

add support for palm and tip spatial data to JS interface

ZappoMan committed 12 years ago

Commit 85498941 parent efdef1a3 files · +51 −2Browse files

Showing the changes to interface/src/ControllerScriptingInterface.cpp (1 of 3 files). Show all

Unified · Split

interface/src/ControllerScriptingInterface.cpp+45−1
@@ -134,8 +134,52 @@ int ControllerScriptingInterface::getNumberOfSpatialControls() const { · 133 unmodified lines
134 return getNumberOfActivePalms() * NUMBER_OF_SPATIALCONTROLS_PER_PALM;134 return getNumberOfActivePalms() * NUMBER_OF_SPATIALCONTROLS_PER_PALM;
135}135}
136 136
137const int PALM_SPATIALCONTROL = 0;
138const int TIP_SPATIALCONTROL = 1;
139
137glm::vec3 ControllerScriptingInterface::getSpatialControlPosition(int controlIndex) const {140glm::vec3 ControllerScriptingInterface::getSpatialControlPosition(int controlIndex) const {
138 return glm::vec3(0); // not yet implemented141 int palmIndex = controlIndex / NUMBER_OF_SPATIALCONTROLS_PER_PALM;
142 int controlOfPalm = controlIndex % NUMBER_OF_SPATIALCONTROLS_PER_PALM;
143 const PalmData* palmData = getActivePalm(palmIndex);
144 if (palmData) {
145 switch (controlOfPalm) {
146 case PALM_SPATIALCONTROL:
147 return palmData->getPosition();
148 case TIP_SPATIALCONTROL:
149 return palmData->getTipPosition();
150 }
151 }
152 return glm::vec3(0); // bad index
153}
154
155glm::vec3 ControllerScriptingInterface::getSpatialControlVelocity(int controlIndex) const {
156 int palmIndex = controlIndex / NUMBER_OF_SPATIALCONTROLS_PER_PALM;
157 int controlOfPalm = controlIndex % NUMBER_OF_SPATIALCONTROLS_PER_PALM;
158 const PalmData* palmData = getActivePalm(palmIndex);
159 if (palmData) {
160 switch (controlOfPalm) {
161 case PALM_SPATIALCONTROL:
162 return palmData->getVelocity();
163 case TIP_SPATIALCONTROL:
164 return palmData->getTipVelocity();
165 }
166 }
167 return glm::vec3(0); // bad index
168}
169
170glm::vec3 ControllerScriptingInterface::getSpatialControlNormal(int controlIndex) const {
171 int palmIndex = controlIndex / NUMBER_OF_SPATIALCONTROLS_PER_PALM;
172 int controlOfPalm = controlIndex % NUMBER_OF_SPATIALCONTROLS_PER_PALM;
173 const PalmData* palmData = getActivePalm(palmIndex);
174 if (palmData) {
175 switch (controlOfPalm) {
176 case PALM_SPATIALCONTROL:
177 return palmData->getNormal();
178 case TIP_SPATIALCONTROL:
179 return palmData->getNormal(); // currently the tip doesn't have a unique normal, use the palm normal
180 }
181 }
182 return glm::vec3(0); // bad index
139}183}
140 184
141 185