Initial snark14m import
[snark14.git] / src / snark / GeometricBehaviour.h
1 /*
2  ***********************************************************
3  $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4  $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/GeometricBehaviour.h $
5  $LastChangedRevision: 81 $
6  $Date: 2014-07-02 11:07:09 -0400 (Wed, 02 Jul 2014) $
7  $Author: olangthaler $
8  ***********************************************************
9  */
10
11 #ifndef GEOMETRICBEHAVIOUR_H_
12 #define GEOMETRICBEHAVIOUR_H_
13
14 #include "blkdta.h"
15
16 /**
17  * Class to hold all functions related to the geometric behaviour. Can be used for the strategy pattern.
18  */
19 class GeometricBehaviour
20 {
21
22 public:
23         GeometricBehaviour();
24         virtual ~GeometricBehaviour();
25
26         static GeometricBehaviour* getInstance();
27
28         virtual void getRayTrace(INTEGER np, INTEGER nr, INTEGER* list,
29         REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx = 0,
30         REAL * _sory = 0, REAL * _cf = 0, REAL * _sf = 0) = 0;
31
32         virtual INTEGER getArea() = 0;
33
34         INTEGER getArrayIndex(INTEGER row, INTEGER column);
35
36         void getPixelPosition(INTEGER arrayIndex, INTEGER* row, INTEGER* column);
37
38 }
39 ;
40 #endif /* GEOMETRICBEHAVIOUR_H_ */