diff --git a/include/LDParse/Model.hpp b/include/LDParse/Model.hpp --- a/include/LDParse/Model.hpp +++ b/include/LDParse/Model.hpp @@ -59,6 +59,14 @@ Model(std::string name, std::string srcLoc, SrcType srcType, ColorTable& colorTable, const std::shared_ptr subModelNames = nullptr, std::shared_ptr subModels = nullptr); std::shared_ptr getSubFileCache() const { return mSubModels; } + const std::string& name() const { return mName; } + boost::logic::tribool certify() const { return mCertify; } + BFCStatus winding() const { return mWinding; } + const std::vector& stepEnds() const { return mStepEnds; } + const std::unordered_map& localColors() const { return mLocalColors; } + const LDMesh& mesh() const { return mData; } + const std::vector>& children() const { return mChildren; } + size_t defaultColor() const { return mColor; } const std::string& getPath() const { return mSrcLoc; } }; } diff --git a/LDParse/Model.cpp b/LDParse/Model.cpp --- a/LDParse/Model.cpp +++ b/LDParse/Model.cpp @@ -12,7 +12,7 @@ namespace LDParse { const std::shared_ptr subModelNames, std::shared_ptr subModels) : mName(name), mSrcLoc(srcLoc), mSrcType(srcType), mSubModelNames(subModelNames), mSubModels((subModels == nullptr) ? std::shared_ptr((mSrcType == MPDRootT) ? CacheType::makeRoot() : nullptr) : subModels), - mColorTable(colorTable), mCertify(boost::logic::indeterminate), mWinding(BFCOff) + mColorTable(colorTable), mColor(16), mCertify(boost::logic::indeterminate), mWinding(BFCOff) { mStepEnds.clear(); mLocalColors.clear(); mLocalComplements.clear(); } } + +diff --git a/include/LDParse/ModelBuilder/ModelBuilderDefs.hpp b/include/LDParse/ModelBuilder/ModelBuilderDefs.hpp --- a/include/LDParse/ModelBuilder/ModelBuilderDefs.hpp +++ b/include/LDParse/ModelBuilder/ModelBuilderDefs.hpp @@ -65,6 +65,8 @@ template void recordTo(Model * model){ metaCallback.retarget(model); inclCallback.retarget(model); + lineCallback.retarget(model); + optLineCallback.retarget(model); triCallback.retarget(model); quadCallback.retarget(model); if(root){ @@ -79,9 +81,9 @@ std::unordered_set mInvertNext; std::unordered_set mClipping; - using ModelParser = Parser; + using ModelParser = Parser, std::reference_wrapper, std::reference_wrapper, + std::reference_wrapper, std::reference_wrapper, std::reference_wrapper, std::reference_wrapper, + std::reference_wrapper, ErrF >; ModelParser mParser; public: ModelBuilder(ErrF &errF);