projects
/
ctsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r635: no message
[ctsim.git]
/
include
/
projections.h
diff --git
a/include/projections.h
b/include/projections.h
index 3b7e78fcf5d0c60f26b4e25e72788ea6ec059b59..b86f448a9edd091f7c45248c5d4b355c1c6b9a6b 100644
(file)
--- a/
include/projections.h
+++ b/
include/projections.h
@@
-9,7
+9,7
@@
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: projections.h,v 1.3
1 2001/03/11 12:37:34
kevin Exp $
+** $Id: projections.h,v 1.3
2 2001/03/13 04:44:25
kevin Exp $
**
**
** This program is free software; you can redistribute it and/or modify
**
**
** This program is free software; you can redistribute it and/or modify
@@
-47,11
+47,6
@@
public:
double m_dTheta; // perpendicular angle to origin
double m_dRaysum;
double m_dTheta; // perpendicular angle to origin
double m_dRaysum;
- bool lessThanT (ParallelRaysumCoordinate& rCompare)
- {return m_dT < rCompare.m_dT; }
- bool lessThanTheta (ParallelRaysumCoordinate& rCompare)
- {return m_dTheta < rCompare.m_dTheta; }
-
static bool compareByTheta (ParallelRaysumCoordinate* a, ParallelRaysumCoordinate* b)
{ return a->m_dTheta == b->m_dTheta ? b->m_dT > a->m_dT : b->m_dTheta > a->m_dTheta; }
static bool compareByTheta (ParallelRaysumCoordinate* a, ParallelRaysumCoordinate* b)
{ return a->m_dTheta == b->m_dTheta ? b->m_dT > a->m_dT : b->m_dTheta > a->m_dTheta; }
@@
-63,7
+58,14
@@
public:
class ParallelRaysums {
public:
class ParallelRaysums {
public:
- ParallelRaysums (Projections* pProjections);
+
+ enum {
+ THETA_RANGE_UNCONSTRAINED = 0,
+ THETA_RANGE_NORMALIZE_TO_TWOPI,
+ THETA_RANGE_FOLD_TO_PI,
+ };
+
+ ParallelRaysums (Projections* pProjections, int iThetaRange);
~ParallelRaysums ();
typedef std::vector<ParallelRaysumCoordinate*> CoordinateContainer;
~ParallelRaysums ();
typedef std::vector<ParallelRaysumCoordinate*> CoordinateContainer;
@@
-74,7
+76,7
@@
public:
void getLimits (double* dMinT, double* dMaxT, double* dMinTheta, double* dMaxTheta) const;
CoordinateContainer& getSortedByT();
CoordinateContainer& getSortedByTheta();
void getLimits (double* dMinT, double* dMaxT, double* dMinTheta, double* dMaxTheta) const;
CoordinateContainer& getSortedByT();
CoordinateContainer& getSortedByTheta();
- double interpolate (double* pdX, double* pdY, int n, double dXValue);
+ double interpolate (double* pdX, double* pdY, int n, double dXValue
, int* iLastFloor = NULL
);
void getThetaAndRaysumsForT (int iT, double* pdTheta, double* pdRaysum);
void getDetPositions (double* pdDetPos);
void getThetaAndRaysumsForT (int iT, double* pdTheta, double* pdRaysum);
void getDetPositions (double* pdDetPos);
@@
-85,6
+87,7
@@
private:
int m_iNumCoordinates;
int m_iNumView;
int m_iNumDet;
int m_iNumCoordinates;
int m_iNumView;
int m_iNumDet;
+ int m_iThetaRange;
};
};