Revision 0695bf91 utility/vector.h

View differences:

utility/vector.h
125 125
    {
126 126
        Vector ret;
127 127

  
128
         //the cross product is only valid for vectors with 3 dimensions,
129
         //with the exception of higher dimensional stuff that is beyond the intended scope of this library
128
        // The cross product is only valid for vectors with 3 dimensions,
129
        // with the exception of higher dimensional stuff that is beyond the intended scope of this library
130 130
        if(N != 3)
131 131
            return ret;
132 132

  
......
136 136
        return ret;
137 137
    }
138 138

  
139
    Vector scale(double scalar)
139
    Vector scale(double scalar) const
140 140
    {
141 141
        Vector ret;
142 142
        for(int i = 0; i < N; i++)
......
144 144
        return ret;
145 145
    }
146 146

  
147
    Vector invert()
147
    Vector invert() const
148 148
    {
149 149
        Vector ret;
150 150
        for(int i = 0; i < N; i++)
......
164 164
        return p_vec[n];
165 165
    }
166 166

  
167
    double operator [](int n) const
168
    {
169
        return p_vec[n];
170
    }
171

  
167 172
    double& operator ()(int n)
168 173
    {
169 174
        return p_vec[n];
170 175
    }
171 176

  
172
    Vector operator + (Vector v)
177
    double operator ()(int n) const
178
    {
179
        return p_vec[n];
180
    }
181

  
182
    Vector operator + (Vector v) const
173 183
    {
174 184
        Vector ret;
175 185
        for(int i = 0; i < N; i++)
......
177 187
        return ret;
178 188
    }
179 189

  
180
    Vector operator - (Vector v)
190
    Vector operator - (Vector v) const
181 191
    {
182 192
        Vector ret;
183 193
        for(int i = 0; i < N; i++)
......
185 195
        return ret;
186 196
    }
187 197

  
188
    Vector operator * (double scalar)
198
    Vector operator * (double scalar) const
189 199
    {
190 200
        return scale(scalar);
191 201
    }
192 202

  
193
    Vector operator / (double scalar)
203
    Vector operator / (double scalar) const
194 204
    {
195 205
        Vector ret;
196 206
        for(int i = 0; i < N; i++)
......
213 223
    double& x() { return p_vec[0]; }
214 224
    double& y() { return p_vec[1]; }
215 225
    double& z() { return p_vec[2]; }
226
    double x() const { return p_vec[0]; }
227
    double y() const { return p_vec[1]; }
228
    double z() const { return p_vec[2]; }
216 229

  
217 230

  
218 231
private:

Also available in: Unified diff