本文整理汇总了C++中MultiTag::getFeature方法的典型用法代码示例。如果您正苦于以下问题:C++ MultiTag::getFeature方法的具体用法?C++ MultiTag::getFeature怎么用?C++ MultiTag::getFeature使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MultiTag
的用法示例。
在下文中一共展示了MultiTag::getFeature方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: retrieveFeatureData
DataView retrieveFeatureData(const MultiTag &tag, size_t position_index, size_t feature_index) {
if (tag.featureCount() == 0) {
throw nix::OutOfBounds("There are no features associated with this tag!", 0);
}
if (feature_index >= tag.featureCount()) {
throw nix::OutOfBounds("Feature index out of bounds.", 0);
}
Feature feat = tag.getFeature(feature_index);
DataArray data = feat.data();
if (data == nix::none) {
throw nix::UninitializedEntity();
//return NDArray(nix::DataType::Float,{0});
}
if (feat.linkType() == nix::LinkType::Tagged) {
NDSize offset, count;
getOffsetAndCount(tag, data, position_index, offset, count);
if (!positionAndExtentInData(data, offset, count)) {
throw nix::OutOfBounds("Requested data slice out of the extent of the Feature!", 0);
}
DataView io = DataView(data, count, offset);
return io;
} else if (feat.linkType() == nix::LinkType::Indexed) {
//FIXME does the feature data to have a setdimension in the first dimension for the indexed case?
//For now it will just be a slice across the first dim.
if (position_index > data.dataExtent()[0]){
throw nix::OutOfBounds("Position is larger than the data stored in the feature.", 0);
}
NDSize offset(data.dataExtent().size(), 0);
offset[0] = position_index;
NDSize count(data.dataExtent());
count[0] = 1;
if (!positionAndExtentInData(data, offset, count)) {
throw nix::OutOfBounds("Requested data slice out of the extent of the Feature!", 0);
}
DataView io = DataView(data, count, offset);
return io;
}
// FIXME is this expected behavior? In the untagged case all data is returned
NDSize offset(data.dataExtent().size(), 0);
DataView io = DataView(data, data.dataExtent(), offset);
return io;
}
示例2: getFeatureByPos
boost::optional<Feature> getFeatureByPos(const MultiTag& st, size_t index) {
Feature f = st.getFeature(index);
return f ? boost::optional<Feature>(f) : boost::none;
}
示例3: getFeatureById
boost::optional<Feature> getFeatureById(const MultiTag& st, const std::string& id) {
Feature f = st.getFeature(id);
return f ? boost::optional<Feature>(f) : boost::none;
}