void MapAlignmentTransformer::applyToFeature_(Feature & feature, const TransformationDescription & trafo) { applyToBaseFeature_(feature, trafo); // loop over all convex hulls vector<ConvexHull2D> & convex_hulls = feature.getConvexHulls(); for (vector<ConvexHull2D>::iterator chiter = convex_hulls.begin(); chiter != convex_hulls.end(); ++chiter) { // transform all hull point positions within convex hull ConvexHull2D::PointArrayType points = chiter->getHullPoints(); chiter->clear(); for (ConvexHull2D::PointArrayType::iterator points_iter = points.begin(); points_iter != points.end(); ++points_iter ) { DoubleReal rt = (*points_iter)[Feature::RT]; (*points_iter)[Feature::RT] = trafo.apply(rt); } chiter->setHullPoints(points); } // recurse into subordinates for (vector<Feature>::iterator subiter = feature.getSubordinates().begin(); subiter != feature.getSubordinates().end(); ++subiter) { applyToFeature_(*subiter, trafo); } }
void MapAlignmentTransformer::applyToConsensusFeature_( ConsensusFeature& feature, const TransformationDescription& trafo, bool store_original_rt) { applyToBaseFeature_(feature, trafo, store_original_rt); // apply to grouped features (feature handles): for (ConsensusFeature::HandleSetType::const_iterator it = feature.getFeatures().begin(); it != feature.getFeatures().end(); ++it) { double rt = it->getRT(); it->asMutable().setRT(trafo.apply(rt)); } }
void MapAlignmentTransformer::applyToConsensusFeature_(ConsensusFeature & feature, const TransformationDescription & trafo) { typedef ConsensusFeature::HandleSetType::const_iterator TConstHandleSetIterator; applyToBaseFeature_(feature, trafo); // apply to grouped features (feature handles): for (TConstHandleSetIterator it = feature.getFeatures().begin(); it != feature.getFeatures().end(); ++it) { DoubleReal rt = it->getRT(); it->asMutable().setRT(trafo.apply(rt)); } }