DisjointUniformSampler Node1 DisjointUniformSampler - m_totalwidth + ~DisjointUniformSampler() + DisjointUniformSampler() + DisjointUniformSampler() + _getRanges() + _setRanges() + _map_unit_to_val() + shoot() Node2 UniformSampler + m_low + m_high + UniformSampler() + UniformSampler() + ~UniformSampler() + shoot() Node2->Node1 Node3 Sampler + m_val + m_random + Sampler() + ~Sampler() + shoot() Node3->Node2 Node4 std::vector< std::pair < float, float > > + elements Node4->Node1 -m_ranges Node5 std::vector< float > + elements Node5->Node1 -m_divisions