Пример #1
0
typename AstroStickModel< ScalarType >::GradientType AstroStickModel< ScalarType >::GetRandomDirection()
{
    GradientType vec;
    vec[0] = m_RandGen->GetNormalVariate();
    vec[1] = m_RandGen->GetNormalVariate();
    vec[2] = m_RandGen->GetNormalVariate();
    vec.Normalize();
    return vec;
}
Пример #2
0
AstroStickModel< ScalarType >::AstroStickModel()
    : m_Diffusivity(0.001)
    , m_BValue(1000)
    , m_NumSticks(42)
    , m_RandomizeSticks(false)
{
    m_RandGen = ItkRandGenType::New();

    vnl_matrix_fixed<double,3,42>* sticks = itk::PointShell<42, vnl_matrix_fixed<double, 3, 42> >::DistributePointShell();
    for (int i=0; i<m_NumSticks; i++)
    {
        GradientType stick;
        stick[0] = sticks->get(0,i); stick[1] = sticks->get(1,i); stick[2] = sticks->get(2,i);
        stick.Normalize();
        m_Sticks.push_back(stick);
    }
}