mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-12-12 21:52:32 +00:00
b9cff7aae0
This gives the resultant point the correct sign. Though the projective divide would take care of the sign, this makes reading the point a little less confusing (still need to sort out automatic blade reversals for the likes of e31).
29 lines
870 B
Objective-C
29 lines
870 B
Objective-C
#ifndef __multivector_h
|
|
#define __multivector_h
|
|
#include <Object.h>
|
|
|
|
@class Algebra;
|
|
@class BasisLayout;
|
|
|
|
@interface MultiVector : Object
|
|
{
|
|
double *components;
|
|
Algebra *algebra;
|
|
BasisLayout *layout;
|
|
int num_components;
|
|
}
|
|
+(MultiVector *) new:(Algebra *) algebra;
|
|
// NOTE: values must have the same layout as algebra
|
|
+(MultiVector *) new:(Algebra *) algebra values:(double *) values;
|
|
+(MultiVector *) new:(Algebra *) algebra group:(BasisGroup *) group;
|
|
// NOTE: values must have the same layout as group
|
|
+(MultiVector *) new:(Algebra *) algebra group:(BasisGroup *) group values:(double *) values;
|
|
+(MultiVector *) copy:(MultiVector *) src;
|
|
-(MultiVector *) product:(MultiVector *) rhs;
|
|
-(MultiVector *) wedge:(MultiVector *) rhs;
|
|
-(MultiVector *) dot:(MultiVector *) rhs;
|
|
-(MultiVector *) dual;
|
|
-(MultiVector *) reverse;
|
|
@end
|
|
|
|
#endif//__multivector_h
|