summaryrefslogtreecommitdiffhomepage
path: root/Tobii-EyeX/include/eyex-cpp/Interactor.hpp
blob: 046adb0cfbb2153e72e1b62d9dee8f1b428da681 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*********************************************************************************************************************
 * Copyright 2013-2014 Tobii Technology AB. All rights reserved.
 * Interactor.hpp
 *********************************************************************************************************************/

#if !defined(__TOBII_TX_CLIENT_CPPBINDINGS_INTERACTOR__HPP__)
#define __TOBII_TX_CLIENT_CPPBINDINGS_INTERACTOR__HPP__

/*********************************************************************************************************************/

TX_NAMESPACE_BEGIN

/*********************************************************************************************************************/

class Interactor :
	public InteractionObject
{
public:	
	Interactor(const std::shared_ptr<const Context>& spContext, TX_HANDLE hInteractor);
		
	std::string GetId() const;
	std::string GetParentId() const;
    std::string GetWindowId() const;

    bool GetEnabled() const;
    void SetEnabled(bool enabled);    

    bool GetDeleted() const;
    void SetDeleted(bool deleted);

    double GetZ() const;
    void SetZ(double z);
    
    void CreateGazePointDataBehavior(const TX_GAZEPOINTDATAPARAMS& params);
    void CreateActivatableBehavior(const TX_ACTIVATABLEPARAMS& params);
    void CreatePannableBehavior(const TX_PANNABLEPARAMS& params);    
    void CreateGazeAwareBehavior(const TX_GAZEAWAREPARAMS& params);    
    void CreateFixationDataBehaviorParams(const TX_FIXATIONDATAPARAMS& params); 

    std::shared_ptr<Bounds> GetBounds() const;
    std::vector<std::shared_ptr<Behavior>> GetBehaviors() const;
    std::shared_ptr<Bounds> CreateBounds(TX_BOUNDSTYPE boundsType);
    void DeleteBounds();

    std::shared_ptr<Behavior> CreateBehavior(TX_BEHAVIORTYPE behaviorType);
    void DeleteBehavior(TX_BEHAVIORTYPE behaviorType);
	bool TryGetBehavior(std::shared_ptr<Behavior> *pspBehavior, TX_BEHAVIORTYPE behaviorType) const;

    std::shared_ptr<Mask> CreateMask(TX_MASKTYPE maskType, int columnCount, int rowCount, const TX_BYTE* pData);
    void RemoveMask();
    std::shared_ptr<Mask> GetMask() const;
    
    void SetMaskBounds(const TX_RECT& bounds);
    void ClearMaskBounds();
    bool TryGetMaskBounds(TX_RECT* pBounds) const;
};

/*********************************************************************************************************************/

TX_NAMESPACE_END

/*********************************************************************************************************************/


#endif // !defined(__TOBII_TX_CLIENT_CPPBINDINGS_INTERACTOR__HPP__)

/*********************************************************************************************************************/