Exemplo n.º 1
0
bool mesh_model_t::check_consistency( const shape_attributes_t& attrs) const
{
    // TODO: finish this...

    if( !attrs.point().has_attribute( g_P_name))
        return false;

    std::size_t num_points = attrs.point().const_array( g_P_name).size();

    arrays::const_array_ref_t<boost::uint32_t> verts_per_face_ref( const_verts_per_face_array());
    unsigned int num_verts = std::accumulate( verts_per_face_ref.begin(), verts_per_face_ref.end(), 0);

    if( num_verts != face_vert_indices_.read().size())
        return false;

    arrays::const_array_ref_t<boost::uint32_t> face_vert_indices_ref( const_face_vert_indices_array());


    arrays::const_array_ref_t<boost::uint32_t>::const_iterator max_it = std::max_element( face_vert_indices_ref.begin(),
                                                                                          face_vert_indices_ref.end());

    if( *max_it >= num_points)
        return false;

    return true;
}
Exemplo n.º 2
0
unsigned int mesh_model_t::num_faces() const
{
    return const_verts_per_face_array().size();
}