Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
SoSFRotation.h
1/*=======================================================================
2 * Copyright 1991-1996, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 *
5 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
6 * States. Use of a copyright notice is precautionary only and does not
7 * imply publication or disclosure.
8 *
9 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
10 * Use, duplication or disclosure by the Government is subject to restrictions
11 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
12 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
13 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
14 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
15 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
16 *
17 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
18 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
19 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
20 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
21 * GRAPHICS, INC.
22**=======================================================================*/
23/*=======================================================================
24** Author : Paul S. Strauss (MMM yyyy)
25**=======================================================================*/
26/*=======================================================================
27 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
28 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
29 *** ***
30 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
31 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
32 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
33 *** ***
34 *** RESTRICTED RIGHTS LEGEND ***
35 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
36 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
37 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
38 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
39 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
40 *** ***
41 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
42 *** BORDEAUX, FRANCE ***
43 *** ALL RIGHTS RESERVED ***
44**=======================================================================*/
45/*=======================================================================
46** Modified by : VSG (MMM YYYY)
47**=======================================================================*/
48
49
50#ifndef _SO_SF_ROTATION_
51#define _SO_SF_ROTATION_
52
53#include <Inventor/fields/SoSubField.h>
54#include <Inventor/SbLinear.h>
55
57//
58// SoSFRotation subclass of SoSField.
59//
61
93class SoSFRotation : public SoSField {
94 // Use standard field stuff
95 SO_SFIELD_HEADER(SoSFRotation, SbRotation, const SbRotation &);
96
97 public:
98 //
99 // Some additional convenience functions:
100 //
101
106 void getValue(SbVec3f &axis, float &angle) const
107 { evaluate(); value.getValue(axis, angle); }
108
112 void setValue(float q0, float q1, float q2, float q3);
113
117 void setValue(const float q[4]);
118
122 void setValue(const SbVec3f &axis, float angle);
123
130 void setValue(const SbRotationd &rotd);
131
132 private:
133 static void initClass();
134 static void exitClass();
135
136};
137
138#endif /* _SO_SF_ROTATION_ */
139
Class for representing a rotation.
Definition SbRotation.h:126
const float * getValue() const
Returns pointer to array of 4 components defining quaternion.
Definition SbRotation.h:184
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Class for repres...
Definition SbRotation.h:425
3D vector class.
Definition SbVec.h:932
Field containing a rotation.
void setValue(const SbRotationd &rotd)
Convenience method that allows you to specify a field value using a double precision variable.
void setValue(const float q[4])
Sets the field to the given quaternion (x, y, z, w).
void setValue(float q0, float q1, float q2, float q3)
Sets the field to the given quaternion (x, y, z, w).
void setValue(const SbVec3f &axis, float angle)
Sets the field to the rotation given by axis/angle.
void getValue(SbVec3f &axis, float &angle) const
Gets the value of the field as an axis/angle.
Abstract base class for all single-value fields.
Definition SoSField.h:93