71 lines
3.2 KiB
C++
71 lines
3.2 KiB
C++
/***********************************************************************************************************************
|
|
*
|
|
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
|
* The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., and considered a trade secret
|
|
* as defined under civil and criminal statutes. Tech Soft 3D shall pursue its civil and criminal remedies in the event
|
|
* of unauthorized use or misappropriation of its trade secrets. Use of this information by anyone other than authorized
|
|
* employees of Tech Soft 3D, Inc. is granted only under a written non-disclosure agreement, expressly prescribing the
|
|
* scope and manner of such use.
|
|
*
|
|
***********************************************************************************************************************/
|
|
#pragma once
|
|
#ifndef __HTREEDUMP_H__
|
|
#define __HTREEDUMP_H__
|
|
|
|
#include "Visitors.h"
|
|
#include "tinyxml.h"
|
|
#include "HXmlReport.h"
|
|
|
|
class HXFeatureTreeReport: public A3DVisitor
|
|
{
|
|
public:
|
|
HXFeatureTreeReport(A3DVisitorContainer* pContainer):
|
|
A3DVisitor("FeatureTreeReport", pContainer),
|
|
m_failed_count(0),
|
|
m_non_implemented_node_count(0),
|
|
m_non_implemented_subnode_count(0),
|
|
m_mandatory_missing_count(0),
|
|
m_hole_mandatory_missing_count(0),
|
|
m_pattern_mandatory_missing_count(0)
|
|
{}
|
|
virtual ~HXFeatureTreeReport() {}
|
|
|
|
inline void SaveFile(const A3DUTF8Char* pcReportPath) { m_sReport.SaveFile(pcReportPath, "FeatureHTML.xsl"); }
|
|
|
|
virtual A3DStatus visitEnter(const A3DFRMTreeConnector& sConnector);
|
|
virtual A3DStatus visitLeave(const A3DFRMTreeConnector& sConnector);
|
|
|
|
virtual A3DStatus visitEnter(const A3DFRMParameterConnector& sConnector);
|
|
virtual A3DStatus visitLeave(const A3DFRMParameterConnector& sConnector);
|
|
|
|
virtual A3DStatus visitEnter(const A3DFRMFeatureConnector& sConnector);
|
|
virtual A3DStatus visitLeave(const A3DFRMFeatureConnector& sConnector);
|
|
|
|
virtual A3DStatus visitEnter(const A3DFRMLinkedItemConnector& sConnector);
|
|
virtual A3DStatus visitLeave(const A3DFRMLinkedItemConnector& sConnector);
|
|
|
|
private:
|
|
int m_failed_count;
|
|
int m_non_implemented_node_count;
|
|
int m_non_implemented_subnode_count;
|
|
int m_mandatory_missing_count;
|
|
int m_hole_mandatory_missing_count;
|
|
int m_pattern_mandatory_missing_count;
|
|
HXmlReport m_sReport;
|
|
std::vector<const A3DEntity*> m_apAlreadyparsedFeatures;
|
|
|
|
bool isAlreadyTreadted(const A3DFRMFeatureConnector& sFeature);
|
|
|
|
HXmlElement* traverseRootBaseData(const A3DEntity* pEntity);
|
|
HXmlElement* traverseReferenceOnTopology(const A3DMiscReferenceOnTopology* pEntityReference);
|
|
HXmlElement* traverseA3DMiscReferenceOnCsysItem(const A3DMiscReferenceOnCsysItem* pEntityReference);
|
|
HXmlElement* traverseA3DMiscReferenceOnTessData(const A3DMiscEntityReference* pEntityReference);
|
|
|
|
void traverseEntityReference(const A3DEntity* pEntityReference);
|
|
void traverseDrawingBlock(const A3DDrawingBlockBasic* pEntityReference);
|
|
void traverseFeatureStatus(const A3DFRMFeatureConnector& sFeature);
|
|
void traverseFeatureData(const A3DFRMFeatureConnector& sFeature);
|
|
};
|
|
|
|
#endif // __HTREEDUMP_H__
|