6 #ifndef __SpatialModel_h 7 #define __SpatialModel_h 12 #include "vtkPlusUsSimulatorExport.h" 15 class vtkModifiedBSPTree;
31 IntersectionDistanceFromStartPointMm = 0;
32 IntersectionIncidenceAngleRad = 0;
49 virtual PlusStatus ReadConfiguration(vtkXMLDataElement* spatialModelElement);
52 void SetModelFile(
const std::string& modelFile);
55 SetMacro(ImagingFrequencyMhz,
double);
57 GetStdStringMacro(Name);
58 SetStdStringMacro(Name);
60 GetStdStringMacro(ObjectCoordinateFrame);
61 SetStdStringMacro(ObjectCoordinateFrame);
63 vtkMatrix4x4* GetModelToObjectTransform();
65 void SetReferenceToObjectTransform(vtkMatrix4x4* referenceToObjectTransform);
73 void GetLineIntersections(std::deque<LineIntersectionInfo>& lineIntersections,
double* scanLineStartPoint_Reference,
double* scanLineEndPoint_Reference);
75 double GetAcousticImpedanceMegarayls();
83 void CalculateIntensity(std::vector<double>& reflectedIntensity,
unsigned int numberOfFilledPixels,
double distanceBetweenScanlineSamplePointsMm,
84 double previousModelAcousticImpedanceMegarayls,
double incidentIntensity,
double& transmittedIntensity,
double incidenceAngleRad);
86 SetMacro(DensityKgPerM3,
double);
87 SetMacro(SoundVelocityMPerSec,
double);
88 SetMacro(AttenuationCoefficientDbPerCmMhz,
double);
89 SetMacro(SurfaceReflectionIntensityDecayDbPerMm,
double);
90 SetMacro(BackscatterDiffuseReflectionCoefficient,
double);
91 SetMacro(SurfaceDiffuseReflectionCoefficient,
double);
92 SetMacro(SurfaceSpecularReflectionCoefficient,
double);
93 SetMacro(TransducerSpatialModelMaxOverlapMm,
double);
96 void SetPolyData(vtkPolyData* polyData);
97 void SetModelLocalizer(vtkModifiedBSPTree* modelLocalizer);
98 void SetModelToObjectTransform(vtkMatrix4x4* modelToObjectTransform);
99 void SetModelToObjectTransform(
double* matrixElements);
102 void UpdatePrecomputedAttenuations(
double intensityTransmittedFractionPerPixelTwoWay,
int numberOfElements);
vtkMatrix4x4 * ReferenceToObjectTransform
double IntersectionDistanceFromStartPointMm
vtkMatrix4x4 * ModelToObjectTransform
double SurfaceReflectionIntensityDecayDbPerMm
double ImagingFrequencyMhz
double SoundVelocityMPerSec
double BackscatterDiffuseReflectionCoefficient
double AttenuationCoefficientDbPerCmMhz
double SurfaceSpecularReflectionCoefficient
std::string ObjectCoordinateFrame
double SurfaceDiffuseReflectionCoefficient
double IntersectionIncidenceAngleRad
double TransducerSpatialModelMaxOverlapMm
vtkModifiedBSPTree * ModelLocalizer
std::vector< double > PrecomputedAttenuations
bool ModelFileNeedsUpdate