#pragma once #include "ThirdPartyHeadersBegin.h" #include #include #include #include "ThirdPartyHeadersEnd.h" #include "SZLOrderedPartitionedZoneHeaderWriter.h" #include "IJKPartitionTree.h" #include "IJKZoneInfo.h" #include "PartitionTecUtilDecorator.h" #include "ZoneWriterAbstract.h" namespace tecplot { namespace ___3933 { class ___1352; class ZoneInfoCache; class ItemSetIterator; class SZLOrderedPartitionedZoneWriter : public ___4709 { public: SZLOrderedPartitionedZoneWriter( ItemSetIterator& varIter, ___4636 zone, ___4636 ___341, std::vector<___372> const& ___4564, ___372 ___4499, ___37& ___36, ZoneInfoCache& zoneInfoCache); virtual ~SZLOrderedPartitionedZoneWriter(); protected: typedef std::map<___2090::SubzoneOffset_t, std::vector<___2479> > SubzoneMinMaxMap; void applyCellMinMaxesToNeighborNodeSubzones( ___2090::___2980 ___2977, std::vector<___1352> const& fieldDatas, std::vector >& partitionInfos, ___1863 const& partitionTree); void getPartitionExtentsWithGhostNodes( ___2090::___2980 ___2977, ___1844 &partitionMinIJK, ___1844 &partitionMaxIJK); void trimGhostNodes(___1844 &partitionMaxIJK); void getPartitionExtentsWithoutGhostNodes( ___2090::___2980 ___2977, ___1844 &partitionMinIJK, ___1844 &partitionMaxIJK); void retrieveNodalFieldDataPtrsForPartition( ___37& partitionTecUtilDecorator, ___2090::___2980 ___2977, std::vector<___1352> &nodalFieldDatas); void throwIfBadIntersectionRange( ___1855 const& intersectionRange, ___2090::___2980 ___2977, ___2090::___2980 neighborPartition); void getCellMinMaxes( std::vector<___2479>& cellMinMaxes, ___2227 ___462, ___1844 const& dimensions, std::vector<___1352> const& fieldDatas); virtual uint64_t zoneConnectivityFileSize(bool ___2002); virtual uint64_t zoneDataFileSize(bool ___2002); virtual uint64_t zoneHeaderFileSize(bool ___2002); virtual ___372 writeZoneConnectivity(FileWriterInterface& szpltFile); virtual ___372 writeZoneData(FileWriterInterface& szpltFile); virtual ___372 writeZoneHeader(FileWriterInterface& szpltFile); SZLOrderedPartitionedZoneHeaderWriter m_headerWriter; ZoneInfoCache& ___2680; PartitionTecUtilDecorator m_partitionTecUtil; ___2240 m_partitionFileNums; UInt64Array m_partitionHeaderFilePositions; UInt64Array m_partitionMinNodeNumbers; UInt64Array m_partitionMaxNodeNumbers; VarZoneMinMaxArray m_varPartitionMinMaxes; std::map<___4636, boost::shared_ptr<___4709> > m_partitionWriters; private: void exchangeGhostInfo( std::vector >& partitionInfos, std::vector<___1864> const& ___2981); void applyCellMinMaxesToNeighborsInRange( std::vector<___1864> const& neighborItems, ___2090::___2980 ___2977, ___1855 const& partitionRange, ___1844 const& partitionOffsetIJK, ___1844 const& partitionDimensionsIJK, std::vector<___1352> const& fieldDatas, std::vector >& partitionInfos); void createPartitionWriters(); }; }}