28 : mbImpl( impl ), myPcomm( pc ), myId( coupler_id ), myDim(
dim )
40 if( !source_ents.
empty() )
44 for( ; pit != source_ents.
pair_end(); ++pit )
47 if( last_type == this_type )
continue;
50 last_type = this_type;
67 const double rel_iter_tol,
68 const double abs_iter_tol,
69 const double inside_tol )
75 return myLocator->par_locate_points(
myPcomm, targ_ents, rel_iter_tol, abs_iter_tol, inside_tol );
83 const double rel_iter_tol,
84 const double abs_iter_tol,
85 const double inside_tol )
89 return myLocator->par_locate_points(
myPcomm, xyz, num_points, rel_iter_tol, abs_iter_tol, inside_tol );
96 const std::string& interp_tag,
98 std::vector< int >* point_indices,
111 int* points_per_method,
114 std::vector< int >* point_indices,
121 unsigned int pts_total = 0;
122 for(
int i = 0; i < num_methods; i++ )
123 pts_total += ( points_per_method ? points_per_method[i] :
targetEnts.
size() );
125 unsigned int num_indices = ( point_indices ? point_indices->size() :
targetEnts.
size() );
127 if( pts_total != num_indices )
return MB_FAILURE;
132 for(
int i = 0; i < num_methods; i++ )
137 max_tsize = std::max( max_tsize, tmp_tsize );
148 for(
int m = 0; m < num_methods; m++ )
150 int num_points = ( points_per_method ? points_per_method[m] :
targetEnts.
size() );
151 for(
int j = 0; j < num_points; j++ )
153 int idx = ( point_indices ? ( *point_indices )[j]
161 TLob.
vi_wr[4 * tn + 2] = idx;
162 TLob.
vi_wr[4 * tn + 3] = m;
177 for(
unsigned int i = 0; i < TLob.
get_n(); i++ )
179 int lidx = TLob.
vi_rd[4 * i + 1];
182 Tag tag = tags[TLob.
vi_rd[4 * i + 3]];
185 TLinterp.
vi_wr[2 * i + 1] = TLob.
vi_rd[4 * i + 2];
200 std::copy( TLinterp.
vr_rd, TLinterp.
vr_rd + TLinterp.
get_n() * max_tsize, interp_vals );
206 std::vector< double > tmp_vals;
207 std::vector< EntityHandle > tmp_ents;
208 double* tmp_dbl = interp_vals;
209 for(
int i = 0; i < num_methods; i++ )
211 int num_points = ( points_per_method ? points_per_method[i] :
targetEnts.
size() );
217 int tsize = max_tsize, tsize_bytes = 0;
220 tmp_vals.resize( num_points * max_tsize );
221 tmp_dbl = &tmp_vals[0];
222 tmp_ents.resize( num_points );
229 for(
int j = 0; j < num_points; j++ )
233 lidx = ( *point_indices )[j];
239 if( !interp_vals ) tmp_ents[j] =
targetEnts[lidx];
248 result =
mbImpl->
tag_set_data( tags[i], &tmp_ents[0], tmp_ents.size(), &tmp_vals[0] );