Distribution3DRefPtr createVelocityDistribution(void)
{
    //Cone Dist. in a "fountain" pointing up
    ConeDistribution3DRefPtr TheConeDistribution = ConeDistribution3D::create();
    TheConeDistribution->setDirection(Vec3f(0.0,1.0,0.0));
    TheConeDistribution->setMin(15.0);
    TheConeDistribution->setMax(20.0);
    TheConeDistribution->setSpread(2.6);

    return TheConeDistribution;
}
Distribution3DRefPtr createPositionDistribution(void)
{
    ConeDistribution3DRefPtr TheConeDistribution = ConeDistribution3D::create();
    TheConeDistribution->setPosition(Pnt3f(0.0,-40.0,0.0));
    TheConeDistribution->setDirection(Vec3f(0.0,1.0,0.0));
    TheConeDistribution->setSpread(0.4);
    TheConeDistribution->setSurfaceOrVolume(ConeDistribution3D::VOLUME);


    return TheConeDistribution;
}
Distribution3DRefPtr createPositionDistribution(void)
{
    //Cone Distribution
    ConeDistribution3DRefPtr TheConeDistribution = ConeDistribution3D::create();
    TheConeDistribution->setPosition(Pnt3f(0.0,0.0,0.0));
    TheConeDistribution->setDirection(Vec3f(0.0,0.0,1.0));
    TheConeDistribution->setSpread(1.57);
    TheConeDistribution->setMinTheta(0.0);
    TheConeDistribution->setMaxTheta(6.282);
    TheConeDistribution->setMin(0.0);
    TheConeDistribution->setMax(1.0);
    TheConeDistribution->setSurfaceOrVolume(ConeDistribution3D::VOLUME);

    return TheConeDistribution;
}
Distribution3DRefPtr createVelocityDistribution(void)
{
    ConeDistribution3DRefPtr TheConeDistribution = ConeDistribution3D::create();
    TheConeDistribution->setPosition(Pnt3f(0.0,0.0,0.0));
    TheConeDistribution->setDirection(Vec3f(1.0,0.0,0.0));
    TheConeDistribution->setSpread(0.0);
    TheConeDistribution->setMin(30.0); // this is the values for min velocity
    TheConeDistribution->setMax(31.0); // this is the values for max velocity
    TheConeDistribution->setSurfaceOrVolume(ConeDistribution3D::VOLUME);

    return TheConeDistribution;
}
Distribution3DRefPtr createVelocityDistribution(void)
{
    ConeDistribution3DRefPtr TheConeDistribution = ConeDistribution3D::create();
    TheConeDistribution->setPosition(Pnt3f(0.0,0.0,0.0));
    TheConeDistribution->setMax(10.0);
    TheConeDistribution->setMin(6.0);
    TheConeDistribution->setDirection(Vec3f(0.0,1.0,0.0));
    TheConeDistribution->setSpread(0.6);
    TheConeDistribution->setSurfaceOrVolume(ConeDistribution3D::VOLUME);

    return TheConeDistribution;
}
Distribution3DRefPtr createPositionDistribution(void)
{
    //Sphere Distribution
    ConeDistribution3DRefPtr TheConeDistribution = ConeDistribution3D::create();
    TheConeDistribution->setPosition(Pnt3f(0.0,0.0,0.0));
    TheConeDistribution->setDirection(Vec3f(0.0,0.0,1.0));
    TheConeDistribution->setSpread(3.14159);
    TheConeDistribution->setMin(1.4);
    TheConeDistribution->setMax(1.5);
    TheConeDistribution->setSurfaceOrVolume(ConeDistribution3D::VOLUME);

    SphereDistribution3DRefPtr TheSphereDistribution = SphereDistribution3D::create();
    TheSphereDistribution->setCenter(Pnt3f(0.0,0.0,0.0));
    TheSphereDistribution->setInnerRadius(1.0);
    TheSphereDistribution->setOuterRadius(2.0);
    TheSphereDistribution->setMinTheta(0.0);
    TheSphereDistribution->setMaxTheta(6.283185);
    TheSphereDistribution->setMinZ(-1.0);
    TheSphereDistribution->setMaxZ(1.0);
    TheSphereDistribution->setSurfaceOrVolume(SphereDistribution3D::VOLUME);

    return TheSphereDistribution;
}