本文整理汇总了C++中datacontainerarray::Pointer::pushBack方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::pushBack方法的具体用法?C++ Pointer::pushBack怎么用?C++ Pointer::pushBack使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类datacontainerarray::Pointer
的用法示例。
在下文中一共展示了Pointer::pushBack方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadPHFile
/**
*
* @param FileName
* @param data
* @param nx X Dimension
* @param ny Y Dimension
* @param nz Z Dimension
*/
int ReadPHFile(QString FileName, QVector<int>& data, int& nx, int& ny, int& nz)
{
DataContainerArray::Pointer dca = DataContainerArray::New();
DataContainer::Pointer m = DataContainer::New(); /* FIXME: What Geometry do we need? */
dca->pushBack(m);
FilterManager::Pointer fm = FilterManager::Instance();
AbstractFilter::Pointer reader = fm->getFactoryForFilter("PhReader")->create();
reader->setDataContainerArray(dca);
bool propWasSet = reader->setProperty("InputFile", FileName);
if(propWasSet == false)
{
}
reader->execute();
if (reader->getErrorCondition() < 0)
{
qDebug() << "Error Reading the Ph File '" << FileName << "' Error Code:" << reader->getErrorCondition();
return -1;
}
Int32ArrayType* featureIds = Int32ArrayType::SafePointerDownCast(m->getAttributeMatrix(DREAM3D::Defaults::CellAttributeMatrixName)->getAttributeArray(DREAM3D::CellData::FeatureIds).get());
size_t count = featureIds->getNumberOfTuples();
data.resize(count);
for(size_t i = 0; i < count; ++i)
{
data[i] = featureIds->getValue(i);
}
return 0;
}
示例2: testCase1_Execute
int testCase1_Execute(const QString& name, int scalarType)
{
int err = 0;
int dataArraySize = ARRAY_SIZE * N;
int junkArraySize = 0;
int skipHeaderBytes = 0;
qDebug() << "Testing case 1: " << name << " with num comps " << N;
// Allocate an array, and get the dataArray from that array
boost::shared_array<T> array(new T[dataArraySize]); // This makes sure our allocated array is deleted when we leave
T* dataArray = array.get();
// Write some data into the data array
for(size_t i = 0; i < dataArraySize; ++i)
{
dataArray[i] = static_cast<T>(i);
}
// Create junkArray and set it to NULL because there is no junk in this test case
T* junkArray = NULL;
// Create the file and write to it. If any of the information is wrong, the result will be false
bool result = createAndWriteToFile(dataArray, dataArraySize, junkArray, junkArraySize, Detail::None);
// Test to make sure that the file was created and written to successfully
DREAM3D_REQUIRED(result, == , true)
// Create the data container
VolumeDataContainer::Pointer m = VolumeDataContainer::New();
m->setName(DREAM3D::Defaults::DataContainerName);
DataContainerArray::Pointer dca = DataContainerArray::New();
dca->pushBack(m);
// Create the filter, passing in the skipHeaderBytes
RawBinaryReader::Pointer filt = createRawBinaryReaderFilter(scalarType, N, skipHeaderBytes);
filt->setDataContainerArray(dca);
// Preflight, get the error condition, and check that there are no errors
filt->preflight();
err = filt->getErrorCondition();
DREAM3D_REQUIRED(err, >= , 0)
// Execute the filter, check that there are no errors, and compare the data
filt->execute();
DREAM3D_REQUIRED(err, >= , 0)
IDataArray::Pointer iData = m->getAttributeMatrix(getCellAttributeMatrixName())->getAttributeArray("Test_Array");
T* data = reinterpret_cast<T*>(iData->getVoidPointer(0));
T d, p;
for(size_t i = 0; i < dataArraySize; ++i)
{
d = data[i];
p = dataArray[i];
DREAM3D_REQUIRE_EQUAL(d, p)
}
return err;
}
示例3: testCase6_Execute
void testCase6_Execute(const QString& name, int scalarType)
{
int dataArraySize = 0;
int junkArraySize = ARRAY_SIZE * N;
int skipHeaderBytes = junkArraySize * sizeof(T);
int err = 0;
qDebug() << "Testing case 6: " << name << " with num comps " << N;
// Allocate an array, and get the dataArray from that array
boost::shared_array<T> array(new T[dataArraySize]); // This makes sure our allocated array is deleted when we leave
T* dataArray = array.get();
// Write some data into the data array
for(size_t i = 0; i < dataArraySize; ++i)
{
dataArray[i] = static_cast<T>(i);
}
// Create junkArray
T* junkArray = new T[junkArraySize];
// Write a pattern into junkArray
for(size_t i = 0; i < junkArraySize; ++i)
{
junkArray[i] = (unsigned)0xAB;
}
// Create the file and write to it. If any of the information is wrong, the result will be false
bool result = createAndWriteToFile(dataArray, dataArraySize, junkArray, junkArraySize, Detail::Start);
// Test to make sure that the file was created and written to successfully
DREAM3D_REQUIRED(result, == , true)
// Create the data container
VolumeDataContainer::Pointer m = VolumeDataContainer::New();
m->setName(DREAM3D::Defaults::DataContainerName);
DataContainerArray::Pointer dca = DataContainerArray::New();
dca->pushBack(m);
// Create the filter, passing in the skipHeaderBytes
RawBinaryReader::Pointer filt = createRawBinaryReaderFilter(scalarType, N, skipHeaderBytes);
filt->setDataContainerArray(dca);
// Preflight, get error condition, and check that the "file too small" error has occurred
filt->preflight();
err = filt->getErrorCondition();
DREAM3D_REQUIRED(err, == , RBRT_FILE_TOO_SMALL)
// Execute, get error condition, and check that there are errors
filt->execute();
err = filt->getErrorCondition();
DREAM3D_REQUIRED(err, < , 0)
}
示例4: testCase4_Execute
void testCase4_Execute(const QString& name, int scalarType)
{
int dataArraySize = ARRAY_SIZE * N;
int junkArraySize = 5;
int skipHeaderBytes = junkArraySize * sizeof(T);
int err = 0;
qDebug() << "Testing case 4: " << name << " with num comps " << N;
// Allocate an array, and get the dataArray from that array
boost::shared_array<T> array(new T[dataArraySize]); // This makes sure our allocated array is deleted when we leave
T* dataArray = array.get();
// Write some data into the data array
for(size_t i = 0; i < dataArraySize; ++i)
{
dataArray[i] = static_cast<T>(i);
}
// Create junkArray
T* junkArray = new T[junkArraySize];
// Write a pattern into junkArray
for(size_t i = 0; i < junkArraySize; ++i)
{
junkArray[i] = (unsigned)0xAB;
}
// Create the file and write to it. If any of the information is wrong, the result will be false
bool result = createAndWriteToFile(dataArray, dataArraySize, junkArray, junkArraySize, Detail::Start);
// Test to make sure that the file was created and written to successfully
DREAM3D_REQUIRED(result, == , true)
// Create the data container
VolumeDataContainer::Pointer m = VolumeDataContainer::New();
m->setName(DREAM3D::Defaults::DataContainerName);
DataContainerArray::Pointer dca = DataContainerArray::New();
dca->pushBack(m);
// Create the filter, passing in the skipHeaderBytes
RawBinaryReader::Pointer filt = createRawBinaryReaderFilter(scalarType, N, skipHeaderBytes);
filt->setDataContainerArray(dca);
// Preflight, get error condition, and check that there are no errors
filt->preflight();
err = filt->getErrorCondition();
DREAM3D_REQUIRED(err, >= , 0)
// Execute, get error condition, check that there are no errors, and compare the data
filt->execute();
err = filt->getErrorCondition();
DREAM3D_REQUIRED(err, >= , 0)
IDataArray::Pointer iData = m->getAttributeMatrix(getCellAttributeMatrixName())->getAttributeArray("Test_Array");
T* data = reinterpret_cast<T*>(iData->getVoidPointer(0));
T d, p;
for(size_t i = 0; i < dataArraySize; ++i)
{
d = data[i];
p = dataArray[i];
DREAM3D_REQUIRE_EQUAL(d, p)
}
/*
* SUBTEST: Test when skipHeaderBytes is larger than expected
*/
// Create another data container
VolumeDataContainer::Pointer m2 = VolumeDataContainer::New();
m2->setName(DREAM3D::Defaults::DataContainerName);
DataContainerArray::Pointer dca2 = DataContainerArray::New();
dca2->pushBack(m2);
// Create another filter, passing in the skipHeaderBytes + 1
RawBinaryReader::Pointer filt2 = createRawBinaryReaderFilter(scalarType, N, skipHeaderBytes + 1);
filt2->setDataContainerArray(dca2);
// Preflight, get error condition, and check that there are errors
filt2->preflight();
err = filt2->getErrorCondition();
DREAM3D_REQUIRED(err, < , 0)
// Execute, get error condition, and check that the "file too small" error occurred
filt2->execute();
err = filt2->getErrorCondition();
DREAM3D_REQUIRED(err, == , RBRT_FILE_TOO_SMALL)
}
示例5: main
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
int main(int argc, char** argv)
{
std::cout << "Starting Conversion of H5Voxel to VTK with Feature ID and IPF Colors" << std::endl;
if (argc < 3)
{
std::cout << "This program takes 2 arguments: Input .h5voxel file and output vtk file." << std::endl;
return EXIT_FAILURE;
}
QString iFile = argv[1];
int err = 0;
DataContainerArray::Pointer dca = DataContainerArray::New();
VolumeDataContainer::Pointer m = VolumeDataContainer::New();
dca->pushBack(m);
DataContainerReader::Pointer h5Reader = DataContainerReader::New();
h5Reader->setInputFile(iFile);
h5Reader->setDataContainerArray(dca);
size_t dcDims[3];
float spacing[3];
float origin[3];
h5Reader->execute();
err = h5Reader->getErrorCondition();
if (err < 0)
{
setErrorCondition(err);
// addErrorMessages(h5Reader->getErrorMessages());
return EXIT_FAILURE;
}
m->getDimensions(dcDims);
m->getResolution(spacing);
m->getOrigin(origin);
int64_t dims[3] = {dcDims[0], dcDims[1], dcDims[2]};
/* Sanity check what we are trying to load to make sure it can fit in our address space.
* Note that this does not guarantee the user has enough left, just that the
* size of the volume can fit in the address space of the program
*/
#if (CMP_SIZEOF_SSIZE_T==4)
int64_t max = std::numeric_limits<size_t>::max();
#else
int64_t max = std::numeric_limits<int64_t>::max();
#endif
if (dims[0] * dims[1] * dims[2] > max )
{
err = -1;
std::stringstream s;
s << "The total number of elements '" << (dims[0] * dims[1] * dims[2])
<< "' is greater than this program can hold. Try the 64 bit version.";
setErrorCondition(err);
setErrorMessage(s.str());
return EXIT_FAILURE;
}
if (dims[0] > max || dims[1] > max || dims[2] > max)
{
err = -1;
std::stringstream s;
s << "One of the dimensions is greater than the max index for this sysem. Try the 64 bit version.";
s << " dim[0]=" << dims[0] << " dim[1]=" << dims[1] << " dim[2]=" << dims[2];
setErrorCondition(err);
setErrorMessage(s.str());
return EXIT_FAILURE;
}
/* ************ End Sanity Check *************************** */
std::stringstream ss;
std::cout << "Writing VTK file" << std::endl;
FILE* f = fopen(argv[2], "wb");
WRITE_STRUCTURED_POINTS_HEADER("ASCII", m)
// VoxelIPFColorScalarWriter<VolumeDataContainer> ipfWriter(m.get());
// ipfWriter.m_WriteBinaryFiles = false;
// ipfWriter.writeScalars(f);
int64_t totalPoints = m->getTotalPoints();
int32_t* m_FeatureIds = NULL;
m_FeatureIds = m->getCellDataSizeCheck<int32_t, Int32ArrayType, AbstractFilter>(SIMPL::CellData::FeatureIds, totalPoints, 1, NULL);
if (0 == m_FeatureIds )
{
ss << "Filter " << getNameOfClass() << " requires the data array '" <<
"DREAM3D" << "::" << "CellData" << "::" << "FeatureIds" << "' to already be created prior to execution." << std::endl;
setErrorCondition(-300);
}
WRITE_VTK_GRAIN_IDS_ASCII(m, SIMPL::CellData::FeatureIds, m_FeatureIds)
//.........这里部分代码省略.........