83 lines
3.6 KiB
C++
83 lines
3.6 KiB
C++
/***********************************************************************************************************************
|
|
*
|
|
* Copyright (c) 2010 - 2025 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_not_implemented_node_count(0),
|
|
m_not_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_not_implemented_node_count;
|
|
int m_not_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);
|
|
|
|
void traverseRootBaseData(const A3DEntity* pEntity);
|
|
void traverseMiscReferenceOnTopology(const A3DMiscReferenceOnTopology* pEntityReference);
|
|
void traverseMiscReferenceOnCsysItem(const A3DMiscReferenceOnCsysItem* pEntityReference);
|
|
void traverseMiscReferenceOnTessData(const A3DMiscEntityReference* pEntityReference);
|
|
void traverseMiscReferenceOnBRep(
|
|
const A3DEntity* pEntity,
|
|
const A3DEEntityType eType,
|
|
const A3DUns32* puiAdditionalIndexes,
|
|
const A3DUns32 uiAdditionalIndexesSize);
|
|
|
|
void traverseEntityReference(const A3DEntity* pEntityReference);
|
|
void traverseDrawingBlock(const A3DDrawingBlockBasic* pEntityReference);
|
|
void traverseFeatureStatus(const A3DFRMFeatureConnector& sFeature);
|
|
void traverseFeatureData(const A3DFRMFeatureConnector& sFeature);
|
|
|
|
void traverseIndexes(const A3DUns32 uiSize, const A3DUns32* puiIndexes);
|
|
void DumpIndexesBy3(const char* name, const A3DUns32 uiAdditionalIndexesSize,
|
|
const A3DUns32* puiAdditionalIndexes);
|
|
void DumpIndexesBy4(const char* name, const A3DUns32 uiAdditionalIndexesSize,
|
|
const A3DUns32* puiAdditionalIndexes);
|
|
|
|
};
|
|
|
|
#endif // __HTREEDUMP_H__
|