H3D API  2.4.1
H3DStiffnessSurfaceNode.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 __H3DSTIFFNESSSURFACENODE_H__
30 #define __H3DSTIFFNESSSURFACENODE_H__
31 
32 #include <H3D/H3DSurfaceNode.h>
33 #include <H3D/SFFloat.h>
34 #include <H3D/FieldTemplates.h>
35 #include <H3D/SFBool.h>
36 
37 namespace H3D {
38 
47  class H3DAPI_API H3DStiffnessSurfaceNode: public H3DSurfaceNode {
48  public:
49 
53  class H3DAPI_API UpdateStiffness:
54  public AutoUpdate< OnValueChangeSField< SFFloat > > {
55  protected:
56  virtual void onValueChange( const H3DFloat &v );
57  };
58 
62  class H3DAPI_API UpdateDamping:
63  public AutoUpdate< OnValueChangeSField< SFFloat > > {
64  protected:
65  virtual void onValueChange( const H3DFloat &v );
66  };
67 
69  H3DStiffnessSurfaceNode( Inst< UpdateStiffness > _stiffness = 0,
70  Inst< UpdateDamping > _damping = 0,
71  Inst< SFBool > _useRelativeValues = 0 );
72 
77  H3DUniquePtr< UpdateStiffness > stiffness;
78 
83  H3DUniquePtr< UpdateDamping > damping;
84 
92  H3DUniquePtr< SFBool > useRelativeValues;
93 
96  };
97 }
98 
99 #endif
Contains different templates to modify field behaviour.
Header file for H3DSurfaceNode.
Contains the SFBool field class.
Contains the SFFloat field class.
Specialized field which sets the damping variable in H3DStiffnessSurfaceNode when the damping field o...
Definition: H3DStiffnessSurfaceNode.h:63
Specialized field which sets the stiffness variable in H3DStiffnessSurfaceNode when the stiffness fie...
Definition: H3DStiffnessSurfaceNode.h:54
A H3DStiffnessSurfaceNode is the base class for surfaces that have stiffness and damping.
Definition: H3DStiffnessSurfaceNode.h:47
H3DUniquePtr< SFBool > useRelativeValues
If false then values (such as stiffness) is in absolute values with SI units or equivalent.
Definition: H3DStiffnessSurfaceNode.h:92
H3DUniquePtr< UpdateDamping > damping
The velocity based damping of the surface.
Definition: H3DStiffnessSurfaceNode.h:83
static H3DNodeDatabase database
The H3DNodeDatabase for this node.
Definition: H3DStiffnessSurfaceNode.h:95
H3DUniquePtr< UpdateStiffness > stiffness
The stiffness of the surface.
Definition: H3DStiffnessSurfaceNode.h:77
Base class for all surfaces.
Definition: H3DSurfaceNode.h:44
float H3DFloat
H3D API namespace.
Definition: Anchor.h:38
The AutoUpdate field is a template to force the BaseField to update itself as soon as an event is rec...
Definition: FieldTemplates.h:130
The H3DNodeDatabase contains a mapping between a name of a Node and the constructor for the Node with...
Definition: H3DNodeDatabase.h:194