예제 #1
0
 inline
 Box3d
 Box3d::interpolated(Interval x, Interval y, Interval z) const {
     IntervalVector3d intervalVector(
         x * this->x().width(),
         y * this->y().width(),
         z * this->z().width()
     );
     return minVertex() + intervalVector;
 }
예제 #2
0
interval_map_t makeIntervalMap (DataFrame incl) {

    CharacterVector incl_chroms = incl["chrom"] ;
    IntegerVector incl_starts   = incl["start"] ;
    IntegerVector incl_ends     = incl["end"] ;

    int nr = incl.nrows() ;
    interval_map_t interval_map ;

    for(int i=0; i<nr; ++i) {
        std::string chrom = as<std::string>(incl_chroms[i]) ;

        if (!interval_map.count(chrom))
            interval_map[chrom] = intervalVector() ;

        interval_map[chrom].push_back(interval_t(incl_starts[i], incl_ends[i], i)) ;
    }

    return interval_map ;
}