本文整理汇总了C++中PointLayoutPtr::dimName方法的典型用法代码示例。如果您正苦于以下问题:C++ PointLayoutPtr::dimName方法的具体用法?C++ PointLayoutPtr::dimName怎么用?C++ PointLayoutPtr::dimName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PointLayoutPtr
的用法示例。
在下文中一共展示了PointLayoutPtr::dimName方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: prepared
// Build the list of dimensions for the output schema.
// Placing this here allows validation of dimensions before execution begins.
void DbWriter::prepared(PointTableRef table)
{
using namespace Dimension;
PointLayoutPtr layout = table.layout();
if (m_outputDims.empty())
{
for (auto& dimType : layout->dimTypes())
m_dbDims.push_back(XMLDim(dimType, layout->dimName(dimType.m_id)));
return;
}
DimTypeList dims;
for (std::string& s : m_outputDims)
{
DimType dt = layout->findDimType(s);
if (dt.m_id == Id::Unknown)
{
std::ostringstream oss;
oss << "Invalid dimension '" << s << "' specified for "
"'output_dims' option.";
throw pdal_error(oss.str());
}
m_dbDims.push_back(XMLDim(dt, layout->dimName(dt.m_id)));
}
}
示例2: execute
int DeltaKernel::execute()
{
PointTable srcTable;
PointTable candTable;
DimIndexMap dims;
PointViewPtr srcView = loadSet(m_sourceFile, srcTable);
PointViewPtr candView = loadSet(m_candidateFile, candTable);
PointLayoutPtr srcLayout = srcTable.layout();
PointLayoutPtr candLayout = candTable.layout();
Dimension::IdList ids = srcLayout->dims();
for (Dimension::Id dim : ids)
{
std::string name = srcLayout->dimName(dim);
if (!m_allDims)
if (name != "X" && name != "Y" && name != "Z")
continue;
DimIndex d;
d.m_name = name;
d.m_srcId = dim;
dims[name] = d;
}
ids = candLayout->dims();
for (Dimension::Id dim : ids)
{
std::string name = candLayout->dimName(dim);
auto di = dims.find(name);
if (di == dims.end())
continue;
DimIndex& d = di->second;
d.m_candId = dim;
}
// Remove dimensions that aren't in both the source and candidate lists.
for (auto di = dims.begin(); di != dims.end();)
{
DimIndex& d = di->second;
if (d.m_candId == Dimension::Id::Unknown)
dims.erase(di++);
else
++di;
}
// Index the candidate data.
KD3Index index(*candView);
index.build();
MetadataNode root;
if (m_detail)
root = dumpDetail(srcView, candView, index, dims);
else
root = dump(srcView, candView, index, dims);
Utils::toJSON(root, std::cout);
return 0;
}
示例3: writeCSVHeader
void TextWriter::writeCSVHeader(PointTableRef table)
{
const PointLayoutPtr layout(table.layout());
for (auto di = m_dims.begin(); di != m_dims.end(); ++di)
{
if (di != m_dims.begin())
*m_stream << m_delimiter;
if (m_quoteHeader)
*m_stream << "\"" << layout->dimName(*di) << "\"";
else
*m_stream << layout->dimName(*di);
}
*m_stream << m_newline;
}
示例4:
XMLSchema::XMLSchema(const PointLayoutPtr& layout, MetadataNode m,
Orientation orientation) : m_orientation(orientation), m_metadata(m)
{
DimTypeList dimTypes = layout->dimTypes();
for (DimType& d : dimTypes)
m_dims.push_back(XMLDim(d, layout->dimName(d.m_id)));
}
示例5: toMetadata
inline MetadataNode toMetadata(PointTableRef table)
{
const PointLayoutPtr layout(table.layout());
MetadataNode root;
for (const auto& id : layout->dims())
{
MetadataNode dim("dimensions");
dim.add("name", layout->dimName(id));
Dimension::Type::Enum t = layout->dimType(id);
dim.add("type", Dimension::toName(Dimension::base(t)));
dim.add("size", layout->dimSize(id));
root.addList(dim);
}
return root;
}
示例6: loadBpfDimensions
void BpfWriter::loadBpfDimensions(PointLayoutPtr layout)
{
// Verify that we have X, Y and Z and that they're the first three
// dimensions.
Dimension::IdList dims = layout->dims();
std::sort(dims.begin(), dims.end());
if (dims.size() < 3 || dims[0] != Dimension::Id::X ||
dims[1] != Dimension::Id::Y || dims[2] != Dimension::Id::Z)
{
throw pdal_error("Missing one of dimensions X, Y or Z. "
"Can't write BPF.");
}
for (auto id : dims)
{
BpfDimension dim;
dim.m_id = id;
dim.m_label = layout->dimName(id);
m_dims.push_back(dim);
}
}
示例7: loadBpfDimensions
void BpfWriter::loadBpfDimensions(PointLayoutPtr layout)
{
Dimension::IdList dims;
if (m_outputDims.size())
{
for (std::string& s : m_outputDims)
{
Dimension::Id::Enum id = layout->findDim(s);
if (id == Dimension::Id::Unknown)
{
std::ostringstream oss;
oss << "Invalid dimension '" << s << "' specified for "
"'output_dims' option.";
throw pdal_error(oss.str());
}
dims.push_back(id);
}
}
else
dims = layout->dims();
// Verify that we have X, Y and Z and that they're the first three
// dimensions.
std::sort(dims.begin(), dims.end());
if (dims.size() < 3 || dims[0] != Dimension::Id::X ||
dims[1] != Dimension::Id::Y || dims[2] != Dimension::Id::Z)
{
throw pdal_error("Missing one of dimensions X, Y or Z. "
"Can't write BPF.");
}
for (auto id : dims)
{
BpfDimension dim;
dim.m_id = id;
dim.m_label = layout->dimName(id);
m_dims.push_back(dim);
}
}
示例8: prepared
void LasWriter::prepared(PointTableRef table)
{
FlexWriter::validateFilename(table);
PointLayoutPtr layout = table.layout();
// Make sure the dataformatID is set so that we can get the proper
// dimensions being written as part of the standard LAS record.
fillHeader();
// If we've asked for all dimensions, add to extraDims all dimensions
// in the layout that aren't already destined for LAS output.
if (m_extraDims.size() == 1 && m_extraDims[0].m_name == "all")
{
m_extraDims.clear();
Dimension::IdList ids = m_lasHeader.usedDims();
DimTypeList dimTypes = layout->dimTypes();
for (auto& dt : dimTypes)
{
if (!Utils::contains(ids, dt.m_id))
m_extraDims.push_back(
ExtraDim(layout->dimName(dt.m_id), dt.m_type));
}
}
m_extraByteLen = 0;
for (auto& dim : m_extraDims)
{
dim.m_dimType.m_id = table.layout()->findDim(dim.m_name);
if (dim.m_dimType.m_id == Dimension::Id::Unknown)
throwError("Dimension '" + dim.m_name + "' specified in "
"'extra_dim' option not found.");
m_extraByteLen += Dimension::size(dim.m_dimType.m_type);
log()->get(LogLevel::Info) << getName() << ": Writing dimension " <<
dim.m_name <<
"(" << Dimension::interpretationName(dim.m_dimType.m_type) <<
") " << " to LAS extra bytes." << std::endl;
}
}