H3D API  2.4.1
MagneticGeometryEffect.h
Go to the documentation of this file.
1 // Copyright 2004-2019, SenseGraphics AB
3 //
4 // This file is part of H3D API.
5 //
6 // H3D API is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
10 //
11 // H3D API is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with H3D API; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // A commercial license is also available. Please contact us at
21 // www.sensegraphics.com for more information.
22 //
23 //
27 //
29 #ifndef __MAGNETICGEOMETRYEFFECT_H__
30 #define __MAGNETICGEOMETRYEFFECT_H__
31 
32 #include <H3D/H3DForceEffect.h>
33 #include <H3D/SFVec3f.h>
34 #include <H3D/SFBool.h>
35 #include <H3D/SFInt32.h>
36 #include <H3D/SFFloat.h>
37 #include <H3D/X3DGeometryNode.h>
38 
39 namespace H3D {
52  class H3DAPI_API MagneticGeometryEffect: public H3DForceEffect {
53  public:
54 
56 
59  Inst< SFBool > _enabled = 0,
60  Inst< SFNode > _metadata = 0,
61  Inst< SFFloat > _startDistance = 0,
62  Inst< SFFloat > _escapeDistance = 0,
63  Inst< SFBool > _active = 0,
64  Inst< SFFloat > _springConstant = 0,
65  Inst< SFGeometry > _geometry = 0,
66  Inst< MFInt32 > _deviceIndex = 0 );
67 
69  virtual void traverseSG( TraverseInfo &ti );
70 
75  H3DUniquePtr< SFBool > enabled;
76 
82  H3DUniquePtr< SFFloat > startDistance;
83 
89  H3DUniquePtr< SFFloat > escapeDistance;
90 
95  H3DUniquePtr< SFBool > active;
96 
101  H3DUniquePtr< SFFloat > springConstant;
102 
107  H3DUniquePtr< SFGeometry > geometry;
108 
111  protected:
112  vector< bool > force_active;
113  };
114 }
115 
116 #endif
Header file for H3DForceEffect.
Contains the SFBool field class.
Contains the SFFloat field class.
Contains the SFInt32 field class.
Contains the SFVec3f field class.
Header file for X3DGeometryNode, X3D scene-graph node.
The base class for scenegraph force effects.
Definition: H3DForceEffect.h:39
MagneticGeometryEffect is a localized haptic effect that tries to constrain the haptic device to the ...
Definition: MagneticGeometryEffect.h:52
H3DUniquePtr< SFFloat > startDistance
When the haptics device comes within this distance of the geometry the constraint is activated.
Definition: MagneticGeometryEffect.h:82
H3DUniquePtr< SFFloat > springConstant
The spring constant of the spring.
Definition: MagneticGeometryEffect.h:101
H3DUniquePtr< SFBool > active
Tells whether the effect is active or not.
Definition: MagneticGeometryEffect.h:95
H3DUniquePtr< SFFloat > escapeDistance
If the effect is active, the effect will be deactivated if the haptics device moves outside this dist...
Definition: MagneticGeometryEffect.h:89
H3DUniquePtr< SFBool > enabled
Enables or disables the force calculations.
Definition: MagneticGeometryEffect.h:75
static H3DNodeDatabase database
The H3DNodeDatabase for this node.
Definition: MagneticGeometryEffect.h:110
H3DUniquePtr< SFGeometry > geometry
The geometry whose surface to follow.
Definition: MagneticGeometryEffect.h:107
TraverseInfo is a structure that is passed along when traversing the scene graph.
Definition: TraverseInfo.h:57
H3D API namespace.
Definition: Anchor.h:38
The H3DNodeDatabase contains a mapping between a name of a Node and the constructor for the Node with...
Definition: H3DNodeDatabase.h:194