Unreal SDK  v1.2.0
Loading...
Searching...
No Matches
WeArtMessages.h
Go to the documentation of this file.
1#pragma once
2
3#include "WeArtCommon.h"
4#include <string>
5#include <vector>
6#include <cassert>
7#include "json.hpp"
8
14static EHandSide StringToHandside(std::string &str) {
15 if (str == "LEFT") {
16 return EHandSide::Left;
17 }
18 else if (str == "RIGHT") {
19 return EHandSide::Right;
20 }
21 else {
22 assert(false);
23 return EHandSide::Left;
24 }
25};
26
32static std::string HandsideToString(EHandSide hs) {
33 if (hs == EHandSide::Left) {
34 return "LEFT";
35 }
36 else if (hs == EHandSide::Right) {
37 return "RIGHT";
38 }
39 else {
40 assert(false);
41 return "";
42 }
43};
44
50static EActuationPoint StringToActuationPoint(std::string& str) {
51 if (str == "THUMB") {
52 return EActuationPoint::Thumb;
53 }
54 else if (str == "INDEX") {
55 return EActuationPoint::Index;
56 }
57 else if (str == "MIDDLE") {
58 return EActuationPoint::Middle;
59 }
60 else if (str == "PALM") {
61 return EActuationPoint::Palm;
62 }
63 else {
64 assert(false);
65 return EActuationPoint::Thumb;
66 }
67};
68
74static std::string ActuationPointToString(EActuationPoint ap) {
75 if (ap == EActuationPoint::Thumb) {
76 return "THUMB";
77 }
78 else if (ap == EActuationPoint::Index) {
79 return "INDEX";
80 }
81 else if (ap == EActuationPoint::Middle) {
82 return "MIDDLE";
83 }
84 else if (ap == EActuationPoint::Palm) {
85 return "PALM";
86 }
87 else {
88 assert(false);
89 return "";
90 }
91};
92
98static TrackingType StringToTrackingType(const std::string& str) {
99 if (str == "TrackType1")
100 return TrackingType::WEART_HAND;
101 return TrackingType::DEFAULT;
102}
103
109static std::string TrackingTypeToString(TrackingType trackType) {
110 switch (trackType) {
111 case TrackingType::DEFAULT:
112 return "";
113 case TrackingType::WEART_HAND:
114 return "TrackType1";
115 }
116 return "";
117}
118
124static std::string MiddlewareStatusToString(MiddlewareStatus status)
125{
126 switch (status)
127 {
129 return"DISCONNECTED";
131 return"IDLE";
133 return"STARTING";
135 return"RUNNING";
137 return"STOPPING";
139 return"UPLOADING_TEXTURES";
141 return"CONNECTING_DEVICE";
143 return"CALIBRATION";
144 }
145
146 return "";
147}
148
154static MiddlewareStatus StringToMiddlewareStatus(const std::string& str) {
155 if (str == "DISCONNECTED")
157 if (str == "IDLE")
159 if (str == "STARTING")
161 if (str == "RUNNING")
163 if (str == "STOPPING")
165 if (str == "UPLOADING_TEXTURES")
167 if (str == "CONNECTING_DEVICE")
169 if (str == "CALIBRATION")
171
173}
174
179
180public:
181 virtual std::string getID() = 0;
182 //virtual std::vector<std::string> getValues() = 0;
183 //virtual void setValues(std::vector<std::string>& values) = 0;
184
185 virtual void setHandSide(EHandSide hs) = 0;
186 virtual void setActuationPoint(EActuationPoint ap) = 0;
187
188 virtual std::string serialize() = 0;
189 virtual void deserialize(std::string message) = 0;
190};
191
193class WeArtCsvMessage : public WeArtMessage {
194public:
195 const char field_separator = ':';
196
197 virtual std::vector<std::string> getValues() = 0;
198 virtual void setValues(std::vector<std::string>& values) = 0;
199
200 virtual std::string serialize() override;
201 virtual void deserialize(std::string message) override;
202};
203
205class WeArtJsonMessage : public WeArtMessage {
206public:
207 WeArtJsonMessage();
208
209 virtual std::string serialize() override;
210 virtual void deserialize(std::string message) override;
211 std::uint64_t timestamp() { return _timestamp; }
212
213 virtual void setHandSide(EHandSide hs) override {};
214 virtual void setActuationPoint(EActuationPoint ap) override {};
215
216protected:
217 virtual nlohmann::json serializePayload() { return nlohmann::json(); }
218 virtual void deserializePayload(nlohmann::json payload) {}
219 std::uint64_t _timestamp;
220};
221
225class WeArtMessageNoParams : public WeArtCsvMessage {
226
227public:
228 virtual void setHandSide(EHandSide hs) override {};
229 virtual void setActuationPoint(EActuationPoint ap) override {};
230
231 // This message carries no values.
232 virtual std::vector<std::string> getValues() override { return std::vector<std::string>(); };
233 virtual void setValues(std::vector<std::string>& values) override {};
234};
235
239class WeArtMessageObjectSpecific : public WeArtCsvMessage {
240
241protected:
243 EActuationPoint actuationPoint;
244public:
245 virtual void setHandSide(EHandSide hs) override { handSide = hs; };
246 virtual void setActuationPoint(EActuationPoint ap) override { actuationPoint = ap; };
247};
248
253
254public:
255
256 static constexpr const char* ID = "StartFromClient";
257
258 virtual std::string getID() override { return ID; };
259
260 virtual std::vector<std::string> getValues() override {
261 std::vector<std::string> ret;
262 if (_trackType != TrackingType::DEFAULT) {
263 ret.push_back(WeArtConstants::WEART_SDK_TYPE);
266 }
267 return ret;
268 };
269
270 virtual void setValues(std::vector<std::string>& values) override {
271 if (values.empty())
272 _trackType = TrackingType::DEFAULT;
273 else
274 _trackType = StringToTrackingType(values[2]);
275 };
276
277private:
278 TrackingType _trackType;
279};
280
285
286public:
287 static constexpr const char* ID = "StopFromClient";
288
289 virtual std::string getID() override { return ID; };
290
291};
292
297
298public:
299 static constexpr const char* ID = "StartCalibration";
300
301 virtual std::string getID() override { return ID; };
302};
303
308
309public:
310 static constexpr const char* ID = "StopCalibration";
311
312 virtual std::string getID() override { return ID; };
313};
314
319
320public:
321 static constexpr const char* ID = "exit";
322
323 virtual std::string getID() override { return ID; };
324};
325
330
331public:
332 static constexpr const char* ID = "disconnect";
333
334 virtual std::string getID() override { return ID; };
335};
336
341{
342public:
343 SetTemperatureMessage(const float t) : temperature(t) {};
345
346 static constexpr const char* ID = "temperature";
347
348 virtual std::string getID() override { return ID; };
349
350 virtual std::vector<std::string> getValues() override {
351 std::vector<std::string> ret;
352 ret.push_back(std::to_string(temperature));
353 ret.push_back(HandsideToString(handSide));
354 ret.push_back(ActuationPointToString(actuationPoint));
355 return ret;
356 };
357
358 virtual void setValues(std::vector<std::string>& values) override {
359 assert(values.size() == 3);
360 temperature = std::stof(values[0]);
361 handSide = StringToHandside(values[1]);
362 actuationPoint = StringToActuationPoint(values[2]);
363 };
364
365protected:
366
368};
369
374{
375
376public:
377
378 static constexpr const char* ID = "stopTemperature";
379
380 virtual std::string getID() override { return ID; };
381
382 virtual std::vector<std::string> getValues() override {
383 std::vector<std::string> ret;
384 ret.push_back(HandsideToString(handSide));
385 ret.push_back(ActuationPointToString(actuationPoint));
386 return ret;
387 };
388
389 virtual void setValues(std::vector<std::string>& values) override {
390 assert(values.size() == 2);
391 handSide = StringToHandside(values[0]);
392 actuationPoint = StringToActuationPoint(values[1]);
393 };
394};
395
400{
401
402public:
403 SetForceMessage(const float f[3]) : force{ f[0], f[1], f[2] } {};
405
406 static constexpr const char* ID = "force";
407
408 virtual std::string getID() override { return ID; };
409
410 virtual std::vector<std::string> getValues() override {
411 std::vector<std::string> ret;
412 ret.push_back(std::to_string(force[0]));
413 ret.push_back(std::to_string(force[1]));
414 ret.push_back(std::to_string(force[2]));
415 ret.push_back(HandsideToString(handSide));
416 ret.push_back(ActuationPointToString(actuationPoint));
417 return ret;
418 };
419
420 virtual void setValues(std::vector<std::string>& values) override {
421 assert(values.size() == 5);
422 force[0] = std::stof(values[0]);
423 force[1] = std::stof(values[1]);
424 force[2] = std::stof(values[2]);
425 handSide = StringToHandside(values[3]);
426 actuationPoint = StringToActuationPoint(values[4]);
427 };
428
429protected:
430
431 float force[3];
432};
433
438{
439
440public:
441
442 static constexpr const char* ID = "stopForce";
443
444 virtual std::string getID() override { return ID; };
445
446 virtual std::vector<std::string> getValues() override {
447 std::vector<std::string> ret;
448 ret.push_back(HandsideToString(handSide));
449 ret.push_back(ActuationPointToString(actuationPoint));
450 return ret;
451 };
452
453 virtual void setValues(std::vector<std::string>& values) override {
454 assert(values.size() == 2);
455 handSide = StringToHandside(values[0]);
456 actuationPoint = StringToActuationPoint(values[1]);
457 };
458};
459
464{
465
466public:
467 SetTextureMessage(const int idx, const float vel[3], const float vol) : index(idx), velocity{ vel[0], vel[1], vel[2] }, volume(vol) {};
469
470 static constexpr const char* ID = "texture";
471
472 virtual std::string getID() override { return ID; };
473
474 virtual std::vector<std::string> getValues() override {
475 std::vector<std::string> ret;
476
477 // avoinding texture id out of bounds
478 if (index < WeArtConstants::minTextureIndex || index > WeArtConstants::maxTextureIndex) {
480 }
481
482 ret.push_back(std::to_string(index));
483 ret.push_back(std::to_string(velocity[0]));
484 ret.push_back(std::to_string(velocity[1]));
485 ret.push_back(std::to_string(velocity[2]));
486 ret.push_back(std::to_string(volume));
487 ret.push_back(HandsideToString(handSide));
488 ret.push_back(ActuationPointToString(actuationPoint));
489 return ret;
490 };
491
492 virtual void setValues(std::vector<std::string>& values) override {
493 assert(values.size() == 6);
494 index = std::stoi(values[0]);
495 velocity[0] = std::stof(values[1]);
496 velocity[1] = std::stof(values[2]);
497 velocity[2] = std::stof(values[3]);
498 volume = std::stof(values[4]);
499 handSide = StringToHandside(values[5]);
500 actuationPoint = StringToActuationPoint(values[6]);
501 };
502
503protected:
504
505 int index;
506 float velocity[3];
507 float volume;
508};
509
514{
515
516public:
517
518 static constexpr const char* ID = "stopTexture";
519
520 virtual std::string getID() override { return ID; };
521
522 virtual std::vector<std::string> getValues() override {
523 std::vector<std::string> ret;
524 ret.push_back(HandsideToString(handSide));
525 ret.push_back(ActuationPointToString(actuationPoint));
526 return ret;
527 };
528
529 virtual void setValues(std::vector<std::string>& values) override {
530 assert(values.size() == 2);
531 handSide = StringToHandside(values[0]);
532 actuationPoint = StringToActuationPoint(values[1]);
533 };
534};
535
540{
541 // Closures
542 uint8 RightThumbClosure;
543 uint8 RightIndexClosure;
544 uint8 RightMiddleClosure;
545 uint8 RightPalmClosure;
546 uint8 LeftThumbClosure;
547 uint8 LeftIndexClosure;
548 uint8 LeftMiddleClosure;
549 uint8 LeftPalmClosure;
550
551 // Abductions
552 uint8 RightThumbAbduction;
553 uint8 LeftThumbAbduction;
554
555 TrackingType _trackingType;
556
557public:
558
559
560 static constexpr const char* ID = "Tracking";
561
562 virtual std::string getID() override { return ID; };
563
564 struct Angles {
565 float X;
566 float Y;
567 float Z;
568 };
569
570 virtual std::vector<std::string> getValues() override {
571 std::vector<std::string> ret;
572 ret.push_back(std::to_string(RightThumbClosure));
573 ret.push_back(std::to_string(RightIndexClosure));
574 ret.push_back(std::to_string(RightMiddleClosure));
575 ret.push_back(std::to_string(RightPalmClosure));
576 ret.push_back(std::to_string(LeftThumbClosure));
577 ret.push_back(std::to_string(LeftIndexClosure));
578 ret.push_back(std::to_string(LeftMiddleClosure));
579 ret.push_back(std::to_string(LeftPalmClosure));
580 return ret;
581 };
582
583 virtual void setValues(std::vector<std::string>& values) override {
584 _trackingType = StringToTrackingType(values[0]);
585 switch (_trackingType) {
586 case TrackingType::DEFAULT:
587 {
588 assert(values.size() == 8);
589 RightThumbClosure = std::stoi(values[0]);
590 RightIndexClosure = std::stoi(values[1]);
591 RightMiddleClosure = std::stoi(values[2]);
592 RightPalmClosure = std::stoi(values[3]);
593 LeftThumbClosure = std::stoi(values[4]);
594 LeftIndexClosure = std::stoi(values[5]);
595 LeftMiddleClosure = std::stoi(values[6]);
596 LeftPalmClosure = std::stoi(values[7]);
597 break;
598 }
599 case TrackingType::WEART_HAND:
600 {
601 assert(values.size() == 9);
602 // Right
603 RightIndexClosure = std::stoi(values[1]);
604 RightThumbClosure = std::stoi(values[2]);
605 RightThumbAbduction = std::stoi(values[3]);
606 RightMiddleClosure = std::stoi(values[4]);
607
608 // Left
609 LeftIndexClosure = std::stoi(values[5]);
610 LeftThumbClosure = std::stoi(values[6]);
611 LeftThumbAbduction = std::stoi(values[7]);
612 LeftMiddleClosure = std::stoi(values[8]);
613 }
614 }
615 };
616
617 float GetClosure(EHandSide handSide, EActuationPoint actuationPoint) {
618 uint8 byteValue = 0x00;
619 switch (handSide)
620 {
621 case EHandSide::Left:
622 switch (actuationPoint)
623 {
624 case EActuationPoint::Thumb: byteValue = LeftThumbClosure; break;
625 case EActuationPoint::Index: byteValue = LeftIndexClosure; break;
626 case EActuationPoint::Middle: byteValue = LeftMiddleClosure; break;
627 case EActuationPoint::Palm: byteValue = LeftPalmClosure; break;
628 }
629 break;
630 case EHandSide::Right:
631 switch (actuationPoint)
632 {
633 case EActuationPoint::Thumb: byteValue = RightThumbClosure; break;
634 case EActuationPoint::Index: byteValue = RightIndexClosure; break;
635 case EActuationPoint::Middle: byteValue = RightMiddleClosure; break;
636 case EActuationPoint::Palm: byteValue = RightPalmClosure; break;
637 }
638 break;
639 }
640
641 float num(byteValue);
642 float denom(255);
643 return num / denom;
644 }
645
646 float GetAbduction(EHandSide handSide, EActuationPoint actuationPoint) {
647 float maxAbductionValue = 255;
648 switch (handSide) {
649 case EHandSide::Left:
650 if (actuationPoint == EActuationPoint::Thumb) return ((float)LeftThumbAbduction) / maxAbductionValue;
651 break;
652 case EHandSide::Right:
653 if (actuationPoint == EActuationPoint::Thumb) return ((float)RightThumbAbduction) / maxAbductionValue;
654 break;
655 }
656 return 0.0f;
657 }
658};
659
661class RawDataOn : public WeArtJsonMessage {
662public:
663 static constexpr const char* ID = "RAW_DATA_ON";
664
665 virtual std::string getID() override { return ID; }
666 virtual void setHandSide(EHandSide hs) override {}
667 virtual void setActuationPoint(EActuationPoint ap) override {}
668};
669
671class RawDataOff : public WeArtJsonMessage {
672public:
673 static constexpr const char* ID = "RAW_DATA_OFF";
674
675 virtual std::string getID() override { return ID; }
676 virtual void setHandSide(EHandSide hs) override {}
677 virtual void setActuationPoint(EActuationPoint ap) override {}
678};
679
681class RawSensorsData : public WeArtJsonMessage {
682public:
683 static constexpr const char* ID = "RAW_DATA";
684
685 virtual std::string getID() override { return ID; };
686 virtual void setHandSide(EHandSide hs) override { hand = hs; }
687 virtual void setActuationPoint(EActuationPoint ap) override {}
688
689 EHandSide getHand() { return hand; }
690 bool hasSensor(EActuationPoint ap);
691 SensorData getSensor(EActuationPoint ap);
692
693protected:
694 virtual nlohmann::json serializePayload() override;
695 virtual void deserializePayload(nlohmann::json payload) override;
696
697 EHandSide hand;
698 std::map<EActuationPoint, SensorData> sensors;
699};
700
702class GetMiddlewareStatus : public WeArtJsonMessage {
703public:
704 GetMiddlewareStatus() : WeArtJsonMessage() {}
705
706 static constexpr const char* ID = "MW_GET_STATUS";
707 virtual std::string getID() override { return ID; };
708};
709
711class MiddlewareStatusMessage : public WeArtJsonMessage {
712public:
713 MiddlewareStatusMessage() : WeArtJsonMessage() {}
714
715 static constexpr const char* ID = "MW_STATUS";
716 virtual std::string getID() override { return ID; };
717
718 MiddlewareStatusData data() { return _data; }
719
720protected:
721 virtual nlohmann::json serializePayload() override;
722 virtual void deserializePayload(nlohmann::json payload) override;
723
724private:
726};
727
729class GetDevicesStatusMessage : public WeArtJsonMessage {
730public:
731 GetDevicesStatusMessage() : WeArtJsonMessage() {}
732 static constexpr const char* ID = "DEVICES_GET_STATUS";
733 virtual std::string getID() override { return ID; };
734};
735
737class DevicesStatusMessage : public WeArtJsonMessage {
738public:
739 DevicesStatusMessage() : WeArtJsonMessage() {}
740
741 static constexpr const char* ID = "DEVICES_STATUS";
742 virtual std::string getID() override { return ID; };
743
744 std::vector<ConnectedDeviceStatus> devices() { return _devices; }
745
746protected:
747 virtual nlohmann::json serializePayload() override;
748 virtual void deserializePayload(nlohmann::json payload) override;
749
750private:
751 std::vector<ConnectedDeviceStatus> _devices;
752};
MiddlewareStatus
Definition: WeArtCommon.h:56
EHandSide
Definition: WeArtCommon.h:8
@ Left
Definition: WeArtCommon.h:10
@ Right
Definition: WeArtCommon.h:11
Message to the middleware to disconnect.
Definition: WeArtMessages.h:329
virtual std::string getID() override
Definition: WeArtMessages.h:334
static constexpr const char * ID
Definition: WeArtMessages.h:332
Message to the middleware to exit the connection.
Definition: WeArtMessages.h:318
static constexpr const char * ID
Definition: WeArtMessages.h:321
virtual std::string getID() override
Definition: WeArtMessages.h:323
Message to the middleware to set the force of the effect.
Definition: WeArtMessages.h:400
float force[3]
Definition: WeArtMessages.h:431
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:410
static constexpr const char * ID
Definition: WeArtMessages.h:406
SetForceMessage()
Definition: WeArtMessages.h:404
SetForceMessage(const float f[3])
Definition: WeArtMessages.h:403
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:420
virtual std::string getID() override
Definition: WeArtMessages.h:408
Message to the middleware to set the temperature of the effect.
Definition: WeArtMessages.h:341
float temperature
Definition: WeArtMessages.h:367
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:350
SetTemperatureMessage()
Definition: WeArtMessages.h:344
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:358
SetTemperatureMessage(const float t)
Definition: WeArtMessages.h:343
virtual std::string getID() override
Definition: WeArtMessages.h:348
static constexpr const char * ID
Definition: WeArtMessages.h:346
Message to the middleware to set the texture of the effect.
Definition: WeArtMessages.h:464
float velocity[3]
Definition: WeArtMessages.h:506
float volume
Definition: WeArtMessages.h:507
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:492
static constexpr const char * ID
Definition: WeArtMessages.h:470
SetTextureMessage()
Definition: WeArtMessages.h:468
virtual std::string getID() override
Definition: WeArtMessages.h:472
SetTextureMessage(const int idx, const float vel[3], const float vol)
Definition: WeArtMessages.h:467
int index
Definition: WeArtMessages.h:505
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:474
Message to the middleware to start the calibration.
Definition: WeArtMessages.h:296
static constexpr const char * ID
Definition: WeArtMessages.h:299
virtual std::string getID() override
Definition: WeArtMessages.h:301
Message to middleware to start the connection.
Definition: WeArtMessages.h:252
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:260
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:270
virtual std::string getID() override
Definition: WeArtMessages.h:258
static constexpr const char * ID
Definition: WeArtMessages.h:256
Message to the middleware to stop the calibration.
Definition: WeArtMessages.h:307
virtual std::string getID() override
Definition: WeArtMessages.h:312
static constexpr const char * ID
Definition: WeArtMessages.h:310
Message to the middleware to stop the temperature of the effect.
Definition: WeArtMessages.h:438
static constexpr const char * ID
Definition: WeArtMessages.h:442
virtual std::string getID() override
Definition: WeArtMessages.h:444
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:446
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:453
Message to middleware to stop the connection.
Definition: WeArtMessages.h:284
virtual std::string getID() override
Definition: WeArtMessages.h:289
static constexpr const char * ID
Definition: WeArtMessages.h:287
Message to the middleware to stop the temperature of the effect.
Definition: WeArtMessages.h:374
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:389
virtual std::string getID() override
Definition: WeArtMessages.h:380
static constexpr const char * ID
Definition: WeArtMessages.h:378
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:382
Message to the middleware to stop the texture of the effect.
Definition: WeArtMessages.h:514
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:522
static constexpr const char * ID
Definition: WeArtMessages.h:518
virtual std::string getID() override
Definition: WeArtMessages.h:520
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:529
Generic Tracking message, contains information on closure and abduction (based on tracking type)
Definition: WeArtMessages.h:540
static constexpr const char * ID
Definition: WeArtMessages.h:560
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:570
float GetAbduction(EHandSide handSide, EActuationPoint actuationPoint)
Definition: WeArtMessages.h:646
float GetClosure(EHandSide handSide, EActuationPoint actuationPoint)
Definition: WeArtMessages.h:617
virtual std::string getID() override
Definition: WeArtMessages.h:562
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:583
Generic Weart message.
Definition: WeArtMessages.h:178
virtual void setHandSide(EHandSide hs)=0
virtual std::string getID()=0
virtual void deserialize(std::string message)=0
virtual std::string serialize()=0
virtual void setActuationPoint(EActuationPoint ap)=0
Message without handside or actuation point parameters.
Definition: WeArtMessages.h:225
virtual std::vector< std::string > getValues() override
Definition: WeArtMessages.h:232
virtual void setActuationPoint(EActuationPoint ap) override
Definition: WeArtMessages.h:229
virtual void setHandSide(EHandSide hs) override
Definition: WeArtMessages.h:228
virtual void setValues(std::vector< std::string > &values) override
Definition: WeArtMessages.h:233
Message without handside or actuation point parameters.
Definition: WeArtMessages.h:239
virtual void setHandSide(EHandSide hs) override
Definition: WeArtMessages.h:245
EHandSide handSide
Definition: WeArtMessages.h:242
EActuationPoint actuationPoint
Definition: WeArtMessages.h:243
virtual void setActuationPoint(EActuationPoint ap) override
Definition: WeArtMessages.h:246
const int nullTextureIndex
Definition: WeArtCommon.h:201
const int maxTextureIndex
Definition: WeArtCommon.h:200
const std::string WEART_SDK_TRACK_TYPE
Definition: WeArtCommon.h:182
const std::string WEART_SDK_VERSION
Definition: WeArtCommon.h:181
const std::string WEART_SDK_TYPE
Definition: WeArtCommon.h:180
Definition: WeArtCommon.h:110
Definition: WeArtCommon.h:97
Definition: WeArtMessages.h:564
float Y
Definition: WeArtMessages.h:566
float Z
Definition: WeArtMessages.h:567
float X
Definition: WeArtMessages.h:565