Moka controlers
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros
operations.cc
Go to the documentation of this file.
1 /*
2  * lib-controler : Un contrôleur générique de scène 3D.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-controler
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 //******************************************************************************
25 #include "operations.hh"
26 using namespace std;
27 //******************************************************************************
29  FOperation(OPERATION_NONE),
30  FDimension(-1)
31 {}
32 //******************************************************************************
33 COperation::COperation(TOperation AOperationType, int ADimension) :
34  FOperation(AOperationType),
35  FSubOperation(SUB_OPERATION_NONE),
36  FDimension(ADimension)
37 {}
38 //******************************************************************************
40  TSubOperation ASubOperationType, int ADimension) :
41  FOperation(AOperationType),
42  FSubOperation(ASubOperationType),
43  FDimension(ADimension)
44 {}
45 //------------------------------------------------------------------------------
46 COperation::COperation(const COperation & AOperation) :
47  FOperation (AOperation.FOperation),
48  FSubOperation(AOperation.FSubOperation),
49  FDimension (AOperation.FDimension)
50 {}
51 //------------------------------------------------------------------------------
53 {}
54 //******************************************************************************
56 { return FOperation; }
57 //------------------------------------------------------------------------------
59 { FOperation = AOperation; }
60 //******************************************************************************
62 { return FSubOperation; }
63 //------------------------------------------------------------------------------
65 { FSubOperation = ASubOperation; }
66 //******************************************************************************
68 { return FDimension; }
69 //------------------------------------------------------------------------------
70 void COperation::setDimension(int ADimension)
71 { FDimension = ADimension; }
72 //******************************************************************************
73 void COperation::set(TOperation AOperationType, int ADimension)
74 {
75  FOperation = AOperationType;
76  FSubOperation = SUB_OPERATION_NONE;
77  FDimension = ADimension;
78 }
79 //******************************************************************************
80 void COperation::set(TOperation AOperationType,
81  TSubOperation ASubOperationType, int ADimension)
82 {
83  FOperation = AOperationType;
84  FSubOperation = ASubOperationType;
85  FDimension = ADimension;
86 }
87 //******************************************************************************
89 {
90  FOperation = AOperation.FOperation;
91  FSubOperation = AOperation.FSubOperation;
92  FDimension = AOperation.FDimension;
93  return *this;
94 }
95 //******************************************************************************
96 ostream& operator<<(ostream& AStream, const COperation& AOperation)
97 {
98  AStream<<AOperation.FOperation <<" "
99  <<AOperation.FSubOperation<<" "
100  <<AOperation.FDimension;
101  return AStream;
102 }
103 //******************************************************************************
104 istream& operator>>(istream& AStream, COperation& AOperation)
105 {
106  int op, subOp;
107 
108  AStream>>op>>subOp>>AOperation.FDimension;
109  AOperation.FOperation = (TOperation) op;
110  AOperation.FSubOperation = (TSubOperation) subOp;
111  return AStream;
112 }
113 //******************************************************************************