CStenoseResult.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #include "CStenoseResult.h"
  2. #include <cstdlib>
  3. CStenoseResult::CStenoseResult()
  4. {
  5. result = new stenose::StenoseResult;
  6. resultNB = new stenose::StenoseNBResult;
  7. Initialize();
  8. }
  9. CStenoseResult::~CStenoseResult()
  10. {
  11. if ( resultNB->m_pPoints )
  12. {
  13. delete[] result->m_pPoints;
  14. }
  15. if ( resultNB->m_pPoints )
  16. {
  17. delete[] result->m_pPoints;
  18. }
  19. delete result;
  20. delete resultNB;
  21. }
  22. void CStenoseResult::Initialize()
  23. {
  24. result->m_dblEllipse = 0.0;
  25. result->m_dblStenose = 0.0;
  26. result->m_dblRatio = 0.0;
  27. result->m_dwPoints = 0;
  28. result->m_pPoints = NULL;
  29. resultNB->m_dblSurface = 0.0;
  30. resultNB->m_dblVesselArea = 0.0;
  31. resultNB->m_dblRatio = 0.0;
  32. resultNB->m_dblDensity = 0.0;
  33. resultNB->m_dwMean = 0;
  34. resultNB->m_dwPoints = 0;
  35. resultNB->m_pPoints = NULL;
  36. }
  37. bool CStenoseResult::fill( stenose::StenoseResult* res )
  38. {
  39. if ( res )
  40. {
  41. if ( res->m_pPoints )
  42. {
  43. // delete[] res->m_pPoints;
  44. }
  45. int n = result->m_dwPoints;
  46. res->m_dblEllipse = result->m_dblEllipse;
  47. res->m_dblStenose = result->m_dblStenose;
  48. res->m_dblRatio = result->m_dblRatio;
  49. res->m_pPoints = new stenose::Point[ n ];
  50. res->m_dwPoints = n;
  51. if ( !res->m_pPoints )
  52. {
  53. return false;
  54. }
  55. int i;
  56. for ( i = 0; i < n; i++ )
  57. {
  58. res->m_pPoints[ i ] = result->m_pPoints[ i ];
  59. }
  60. return true;
  61. }
  62. return false;
  63. }
  64. bool CStenoseResult::allocate_vectors( long n_points )
  65. {
  66. if ( !n_points )
  67. {
  68. return false;
  69. }
  70. result->m_dwPoints = n_points;
  71. result->m_pPoints = new stenose::Point[ n_points ];
  72. if ( !result->m_pPoints )
  73. {
  74. return false;
  75. }
  76. return true;
  77. }
  78. bool CStenoseResult::fillNB( stenose::StenoseNBResult* res )
  79. {
  80. if ( res )
  81. {
  82. res->m_dblSurface = resultNB->m_dblSurface;
  83. res->m_dblVesselArea = resultNB->m_dblVesselArea;
  84. res->m_dblRatio = resultNB->m_dblRatio;
  85. res->m_dblDensity = resultNB->m_dblDensity;
  86. res->m_dwMean = resultNB->m_dwMean;
  87. int n = resultNB->m_dwPoints;
  88. res->m_pPoints = new stenose::Point[ n ];
  89. res->m_dwPoints = n;
  90. if ( !res->m_pPoints )
  91. {
  92. return false;
  93. }
  94. int i;
  95. for ( i = 0; i < n; i++ )
  96. {
  97. res->m_pPoints[ i ] = resultNB->m_pPoints[ i ];
  98. }
  99. return true;
  100. }
  101. return false;
  102. }