27 #include "WDataCreatorFiberStar.h"
43 size_t numVertsPerFiber,
52 std::uniform_real_distribution< double > unif( -0.5, 0.5 );
53 std::default_random_engine re;
56 for(
size_t fidx = 0; fidx < numFibers; ++fidx )
58 WVector3d dir( unif( re ), unif( re ), unif( re ) );
59 dir = normalize( dir );
61 WVector3d ray( dir.
x() * ( size.x() / 2.0 ), dir.
y() * ( size.y() / 2.0 ), dir.
z() * ( size.z() / 2.0 ) );
62 ray /= numVertsPerFiber;
64 fibIdx->push_back( fidx * numVertsPerFiber );
65 lengths->push_back( numVertsPerFiber );
67 for(
size_t vidx = 0; vidx < numVertsPerFiber; ++vidx )
71 vertices->push_back( origin.x() + vec.
x() + size.x() / 2.0 );
72 vertices->push_back( origin.y() + vec.
y() + size.y() / 2.0 );
73 vertices->push_back( origin.z() + vec.
z() + size.z() / 2.0 );
75 colors->push_back( color.x() );
76 colors->push_back( color.y() );
77 colors->push_back( color.z() );
78 fibIdxVertexMap->push_back( fidx );
virtual void operator()(int seed, WProgress::SPtr progress, const WColor &color, size_t numFibers, size_t numVertsPerFiber, const WPosition &origin, const WPosition &size, WDataSetFibers::VertexArray vertices, WDataSetFibers::IndexArray fibIdx, WDataSetFibers::LengthArray lengths, WDataSetFibers::IndexArray fibIdxVertexMap, WDataSetFibers::ColorArray colors)
Create the dataset.
WDataCreatorFiberStar()
Default constructor.
virtual ~WDataCreatorFiberStar()
Destructor.
Define the interface which is injected into an WObjectNDIP.
std::shared_ptr< std::vector< size_t > > IndexArray
Index list indexing fibers in VertexArray in terms of vertex numbers.
std::shared_ptr< std::vector< float > > ColorArray
Colors for each vertex in VertexArray.
std::shared_ptr< std::vector< size_t > > LengthArray
Lengths of fibers in terms of vertices.
std::shared_ptr< std::vector< float > > VertexArray
List of vertex coordinates in term of components of vertices.
ValueT & z()
Access z element of vector.
ValueT & y()
Access y element of vector.
ValueT & x()
Access x element of vector.
This is a base class for everything which has a Name,Description,Icon and Properties (=NDIP).
This only is a 3d double vector.
std::shared_ptr< WProgress > SPtr
Shared pointer on a WProgress.