2025.6.1
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
@@ -34,7 +34,7 @@ A3DStatus A3DModelFileConnector::Traverse(A3DVisitorContainer* psVisitor, bool b
|
||||
{
|
||||
psVisitor->SetCurrentPoFather(NULL);
|
||||
A3DProductOccurrenceConnector sTreeConnector(m_sModelFileData.m_ppPOccurrences[uI]);
|
||||
if (sTreeConnector.TraversePO(m_sModelFileData.m_ppPOccurrences[uI], psVisitor, bVisitPrototype) != A3D_SUCCESS)
|
||||
if (sTreeConnector.TraversePO(psVisitor, bVisitPrototype) != A3D_SUCCESS)
|
||||
return A3D_ERROR;
|
||||
}
|
||||
psVisitor->visitLeave(*this);
|
||||
@@ -42,291 +42,38 @@ A3DStatus A3DModelFileConnector::Traverse(A3DVisitorContainer* psVisitor, bool b
|
||||
}
|
||||
|
||||
// Traversing the assembly Structure
|
||||
A3DStatus A3DProductOccurrenceConnector::TraversePO(const A3DAsmProductOccurrence* pOccurrence,
|
||||
A3DVisitorContainer* psVisitor,
|
||||
bool bVisitPrototype)
|
||||
A3DStatus A3DProductOccurrenceConnector::TraversePO(A3DVisitorContainer* psVisitor, bool bVisitPrototype)
|
||||
{
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
CHECK_RET(psVisitor->visitEnter(*this));
|
||||
|
||||
//Traverse AnnotationEntity
|
||||
A3DUns32 uI;
|
||||
#ifdef CONNECT_PMI
|
||||
A3DUns32 uNbAnnotationEntity = m_sProductOccurrenceData.m_uiAnnotationsSize;
|
||||
for (uI = 0; uI < uNbAnnotationEntity; uI++)
|
||||
if (m_sProductOccurrenceData.m_pPrototype != nullptr || m_sProductOccurrenceData.m_pExternalData != nullptr)
|
||||
{
|
||||
A3DMkpAnnotationEntityConnector sAnnotationEntityConnector(m_sProductOccurrenceData.m_ppAnnotations[uI]);
|
||||
sAnnotationEntityConnector.TraverseAnnotationEntity(psVisitor);
|
||||
}
|
||||
if (!uNbAnnotationEntity && m_sProductOccurrenceData.m_pPrototype != NULL)
|
||||
{
|
||||
A3DAsmProductOccurrence* pProductPrototype = m_sProductOccurrenceData.m_pPrototype;
|
||||
while (pProductPrototype)
|
||||
{
|
||||
A3DAsmProductOccurrenceData sProductPrototypeData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmProductOccurrenceData, sProductPrototypeData);
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(pProductPrototype, &sProductPrototypeData));
|
||||
uNbAnnotationEntity = sProductPrototypeData.m_uiAnnotationsSize;
|
||||
for (uI = 0; uI < uNbAnnotationEntity; uI++)
|
||||
{
|
||||
A3DMkpAnnotationEntityConnector sAnnotationEntityConnector(sProductPrototypeData.m_ppAnnotations[uI]);
|
||||
sAnnotationEntityConnector.TraverseAnnotationEntity(psVisitor);
|
||||
}
|
||||
|
||||
pProductPrototype = sProductPrototypeData.m_pPrototype;
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(NULL, &sProductPrototypeData));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
A3DAsmProductOccurrence* pPo = m_sProductOccurrenceData.m_pPrototype ?
|
||||
m_sProductOccurrenceData.m_pPrototype : m_sProductOccurrenceData.m_pExternalData;
|
||||
|
||||
#ifdef CONNECT_VIEWS
|
||||
A3DUns32 uNbView = m_sProductOccurrenceData.m_uiViewsSize;
|
||||
if (!uNbView && m_sProductOccurrenceData.m_pPrototype != NULL)
|
||||
{
|
||||
A3DAsmProductOccurrence* pProductPrototype = m_sProductOccurrenceData.m_pPrototype;
|
||||
while (pProductPrototype)
|
||||
{
|
||||
A3DAsmProductOccurrenceData sProductPrototypeData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmProductOccurrenceData, sProductPrototypeData);
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(pProductPrototype, &sProductPrototypeData));
|
||||
uNbView = sProductPrototypeData.m_uiViewsSize;
|
||||
for (uI = 0; uI < uNbView; uI++)
|
||||
{
|
||||
A3DMkpViewConnector sMkpViewConnector(sProductPrototypeData.m_ppViews[uI]);
|
||||
sMkpViewConnector.TraverseView(psVisitor);
|
||||
}
|
||||
pProductPrototype = sProductPrototypeData.m_pPrototype;
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(NULL, &sProductPrototypeData));
|
||||
}
|
||||
A3DProductOccurrenceConnector oPoConnector(pPo);
|
||||
oPoConnector.TraversePO(psVisitor, bVisitPrototype);
|
||||
}
|
||||
else if (uNbView)
|
||||
else
|
||||
{
|
||||
for (uI = 0; uI < uNbView; uI++)
|
||||
for (A3DUns32 i = 0; i < m_sProductOccurrenceData.m_uiPOccurrencesSize; i++)
|
||||
{
|
||||
A3DMkpViewConnector sMkpViewConnector(m_sProductOccurrenceData.m_ppViews[uI]);
|
||||
sMkpViewConnector.TraverseView(psVisitor);
|
||||
}
|
||||
}
|
||||
A3DAsmProductOccurrence* pPo = m_sProductOccurrenceData.m_ppPOccurrences[i];
|
||||
A3DProductOccurrenceConnector oPoConnector(pPo);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONNECT_FEATURE
|
||||
|
||||
A3DUns32 uNbFeatureBasedEntity = m_sProductOccurrenceData.m_uiFeatureBasedEntitiesSize;
|
||||
if (!uNbFeatureBasedEntity && m_sProductOccurrenceData.m_pPrototype != NULL)
|
||||
{
|
||||
A3DAsmProductOccurrence* pProductPrototype = m_sProductOccurrenceData.m_pPrototype;
|
||||
while (pProductPrototype)
|
||||
{
|
||||
A3DAsmProductOccurrenceData sProductPrototypeData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmProductOccurrenceData, sProductPrototypeData);
|
||||
CHECK_RET(A3DAsmProductOccurrenceGet(pProductPrototype, &sProductPrototypeData));
|
||||
uNbFeatureBasedEntity = sProductPrototypeData.m_uiFeatureBasedEntitiesSize;
|
||||
for (uI = 0; uI < uNbFeatureBasedEntity; uI++)
|
||||
{
|
||||
A3DFRMTreeConnector sConnector(sProductPrototypeData.m_ppFeatureBasedEntities[uI]);
|
||||
sConnector.TraverseFeatureTree(psVisitor);
|
||||
}
|
||||
pProductPrototype = sProductPrototypeData.m_pPrototype;
|
||||
CHECK_RET(A3DAsmProductOccurrenceGet(NULL, &sProductPrototypeData));
|
||||
oPoConnector.TraversePO(psVisitor, bVisitPrototype);
|
||||
}
|
||||
}
|
||||
else if (uNbFeatureBasedEntity)
|
||||
{
|
||||
for (uI = 0; uI < uNbFeatureBasedEntity; uI++)
|
||||
|
||||
for (A3DUns32 i = 0; i < m_sProductOccurrenceData.m_uiFeatureBasedEntitiesSize; i++)
|
||||
{
|
||||
A3DFRMTreeConnector sConnector(m_sProductOccurrenceData.m_ppFeatureBasedEntities[uI]);
|
||||
A3DFRMTreeConnector sConnector(m_sProductOccurrenceData.m_ppFeatureBasedEntities[i]);
|
||||
sConnector.TraverseFeatureTree(psVisitor);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
A3DAsmPartDefinition* pPart = NULL;
|
||||
if (!bVisitPrototype)
|
||||
{
|
||||
CHECK_RET(GetPart(pPart));
|
||||
}
|
||||
else
|
||||
{
|
||||
pPart = m_sProductOccurrenceData.m_pPart;
|
||||
}
|
||||
if (pPart)
|
||||
{
|
||||
void * pEntityInMap = psVisitor->FindInMap(pPart);
|
||||
psVisitor->SetInMap(pPart, pPart);
|
||||
A3DPartConnector sPartConnector(pPart);
|
||||
psVisitor->SetCurrentPoFather(pOccurrence);
|
||||
sPartConnector.SetProductOccurenceFather(pOccurrence);
|
||||
|
||||
// if we haven't found the part in the map or if we traverse the instance
|
||||
if (pEntityInMap == NULL || psVisitor->TraverseInstances())
|
||||
{
|
||||
CHECK_RET(sPartConnector.TraversePart(psVisitor));
|
||||
}
|
||||
psVisitor->SetCurrentPoFather(NULL);
|
||||
}
|
||||
std::vector<A3DAsmProductOccurrence*> apSons;
|
||||
if (!bVisitPrototype)
|
||||
{
|
||||
CollectSons(apSons);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_sProductOccurrenceData.m_pPrototype)
|
||||
{
|
||||
if (psVisitor->FindInMap(m_sProductOccurrenceData.m_pPrototype) == NULL)
|
||||
{
|
||||
psVisitor->SetInMap(m_sProductOccurrenceData.m_pPrototype, m_sProductOccurrenceData.m_pPrototype);
|
||||
A3DProductOccurrenceConnector sPrototypeConnector(m_sProductOccurrenceData.m_pPrototype);
|
||||
sPrototypeConnector.SetPrototypeType(true);
|
||||
sPrototypeConnector.TraversePO(m_sProductOccurrenceData.m_pPrototype, psVisitor, bVisitPrototype);
|
||||
}
|
||||
}
|
||||
if (m_sProductOccurrenceData.m_pExternalData)
|
||||
{
|
||||
if (psVisitor->FindInMap(m_sProductOccurrenceData.m_pExternalData) == NULL)
|
||||
{
|
||||
psVisitor->SetInMap(m_sProductOccurrenceData.m_pExternalData, m_sProductOccurrenceData.m_pExternalData);
|
||||
A3DProductOccurrenceConnector sExternalConnector(m_sProductOccurrenceData.m_pExternalData);
|
||||
sExternalConnector.SetExternalType(true);
|
||||
sExternalConnector.TraversePO(m_sProductOccurrenceData.m_pExternalData, psVisitor, bVisitPrototype);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
unsigned int uSize = m_sProductOccurrenceData.m_uiPOccurrencesSize;
|
||||
for (uI = 0; uI < uSize; uI++)
|
||||
{
|
||||
apSons.push_back(m_sProductOccurrenceData.m_ppPOccurrences[uI]);
|
||||
}
|
||||
}
|
||||
|
||||
for (uI = 0; uI < apSons.size(); uI++)
|
||||
{
|
||||
A3DProductOccurrenceConnector sPoConnector(apSons[uI]);
|
||||
sPoConnector.SetProductOccurrenceFather(this->GetA3DEntity());
|
||||
psVisitor->SetCurrentPoFather(pOccurrence);
|
||||
CHECK_RET(sPoConnector.TraversePO(apSons[uI], psVisitor, bVisitPrototype));
|
||||
psVisitor->SetCurrentPoFather(NULL);
|
||||
}
|
||||
CHECK_RET(psVisitor->visitLeave(*this));
|
||||
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DStatus A3DProductOccurrenceConnector::CollectSons(
|
||||
std::vector<A3DAsmProductOccurrence*>& apSons) const
|
||||
{
|
||||
//Get Children or children on Prototype's ....Prototype's
|
||||
A3DAsmProductOccurrence* pPrototype = m_sProductOccurrenceData.m_pPrototype;
|
||||
A3DAsmProductOccurrence** ppPo = m_sProductOccurrenceData.m_ppPOccurrences;
|
||||
unsigned int uSize = m_sProductOccurrenceData.m_uiPOccurrencesSize;
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
|
||||
while (uSize == 0 && pPrototype)
|
||||
{
|
||||
A3DAsmProductOccurrenceData sPrototypeData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmProductOccurrenceData, sPrototypeData);
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(pPrototype, &sPrototypeData));
|
||||
pPrototype = sPrototypeData.m_pPrototype;
|
||||
|
||||
uSize = sPrototypeData.m_uiPOccurrencesSize;
|
||||
ppPo = sPrototypeData.m_ppPOccurrences;
|
||||
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(NULL, &sPrototypeData));
|
||||
}
|
||||
|
||||
unsigned uI;
|
||||
for (uI = 0; uI < uSize; uI++)
|
||||
apSons.push_back(ppPo[uI]);
|
||||
|
||||
//Get Children on Externals
|
||||
if (m_sProductOccurrenceData.m_pExternalData)
|
||||
{
|
||||
if (apSons.size() == 0)
|
||||
{
|
||||
A3DProductOccurrenceConnector sExternalConnector(m_sProductOccurrenceData.m_pExternalData);
|
||||
CHECK_RET(sExternalConnector.CollectSons(apSons));
|
||||
}
|
||||
else
|
||||
apSons.push_back(m_sProductOccurrenceData.m_pExternalData);
|
||||
}
|
||||
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DStatus A3DProductOccurrenceConnector::GetPart(
|
||||
A3DAsmPartDefinition*& pPart) const
|
||||
{
|
||||
pPart = NULL;
|
||||
A3DStatus iRet = A3D_SUCCESS;;
|
||||
if (m_sProductOccurrenceData.m_pPart)
|
||||
{
|
||||
pPart = m_sProductOccurrenceData.m_pPart;
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DAsmProductOccurrence* pProductPrototype = m_sProductOccurrenceData.m_pPrototype;
|
||||
while (pProductPrototype)
|
||||
{
|
||||
A3DAsmProductOccurrenceData sProductPrototypeData;
|
||||
A3D_INITIALIZE_DATA(A3DAsmProductOccurrenceData, sProductPrototypeData);
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(pProductPrototype, &sProductPrototypeData));
|
||||
if (sProductPrototypeData.m_pPart)
|
||||
{
|
||||
pPart = sProductPrototypeData.m_pPart;
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(NULL, &sProductPrototypeData));
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
else
|
||||
pProductPrototype = sProductPrototypeData.m_pPrototype;
|
||||
CHECK_RET_CALL_A3D_FCTION(A3DAsmProductOccurrenceGet,(NULL, &sProductPrototypeData));
|
||||
}
|
||||
|
||||
if (m_sProductOccurrenceData.m_uiPOccurrencesSize == 0)
|
||||
{
|
||||
if (m_sProductOccurrenceData.m_pExternalData)
|
||||
{
|
||||
A3DProductOccurrenceConnector sExternalconnector(m_sProductOccurrenceData.m_pExternalData);
|
||||
CHECK_RET(sExternalconnector.GetPart(pPart));
|
||||
}
|
||||
}
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DStatus A3DPartConnector::TraversePart(A3DVisitorContainer* psVisitor) const
|
||||
{
|
||||
A3DStatus iRet = A3D_SUCCESS;
|
||||
|
||||
CHECK_RET(psVisitor->visitEnter(*this));
|
||||
|
||||
//Traverse AnnotationEntity
|
||||
A3DUns32 uI;
|
||||
#ifdef CONNECT_PMI
|
||||
A3DUns32 uNbAnnotationEntity = m_sPartData.m_uiAnnotationsSize;
|
||||
for (uI = 0; uI < uNbAnnotationEntity; uI++)
|
||||
{
|
||||
A3DMkpAnnotationEntityConnector sAnnotationEntityConnector(m_sPartData.m_ppAnnotations[uI]);
|
||||
sAnnotationEntityConnector.TraverseAnnotationEntity(psVisitor);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONNECT_VIEWS
|
||||
A3DUns32 uNbView = m_sPartData.m_uiViewsSize;
|
||||
for (uI = 0; uI < uNbView; uI++)
|
||||
{
|
||||
A3DMkpViewConnector sMkpViewConnector(m_sPartData.m_ppViews[uI]);
|
||||
sMkpViewConnector.TraverseView(psVisitor);
|
||||
}
|
||||
#endif
|
||||
|
||||
//Traverse RI
|
||||
for (uI = 0; uI < m_sPartData.m_uiRepItemsSize; uI++)
|
||||
{
|
||||
A3DRiConnector sRiConnector(m_sPartData.m_ppRepItems[uI]);
|
||||
sRiConnector.TraverseRi(psVisitor);
|
||||
}
|
||||
|
||||
CHECK_RET(psVisitor->visitLeave(*this));
|
||||
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -496,7 +243,6 @@ A3DStatus A3DRiPolyWireConnector::TraverseRiPolyWire(A3DVisitorContainer* psVisi
|
||||
return iRet;
|
||||
}
|
||||
|
||||
|
||||
// A3DFRMParameter
|
||||
A3DStatus A3DFRMFeatureConnector::TraverseFeature(A3DVisitorContainer* psVisitor) const
|
||||
{
|
||||
@@ -550,7 +296,6 @@ A3DStatus A3DFRMParameterConnector::TraverseParameter(A3DVisitorContainer* psVis
|
||||
return iRet;
|
||||
}
|
||||
|
||||
|
||||
// FeatureTree
|
||||
A3DStatus A3DFRMTreeConnector::TraverseFeatureTree(A3DVisitorContainer* psVisitor) const
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
@@ -16,13 +16,12 @@
|
||||
#include "Connector.h"
|
||||
|
||||
//######################################################################################################################
|
||||
|
||||
class A3DVisitorContainer;
|
||||
class A3DModelFileConnector : public A3DConnector
|
||||
|
||||
class A3DModelFileConnector: public A3DConnector
|
||||
{
|
||||
public:
|
||||
|
||||
A3DModelFileConnector(const A3DAsmModelFile* pModelFile) : A3DConnector(pModelFile)
|
||||
A3DModelFileConnector(const A3DAsmModelFile* pModelFile): A3DConnector(pModelFile)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DAsmModelFileData, m_sModelFileData);
|
||||
A3DAsmModelFileGet(pModelFile, &m_sModelFileData);
|
||||
@@ -33,12 +32,11 @@ public:
|
||||
A3DStatus Traverse(A3DVisitorContainer* psVisitor, bool bVisitPrototype = false);
|
||||
|
||||
public:
|
||||
|
||||
A3DAsmModelFileData m_sModelFileData;
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DProductOccurrenceConnector : public A3DConnector
|
||||
class A3DProductOccurrenceConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DModelFileConnector;
|
||||
const A3DAsmProductOccurrence* m_pFather;
|
||||
@@ -47,9 +45,8 @@ class A3DProductOccurrenceConnector : public A3DConnector
|
||||
bool m_bIsExternal;
|
||||
|
||||
private:
|
||||
|
||||
A3DProductOccurrenceConnector(const A3DAsmProductOccurrence* pProductOccurrence)
|
||||
: A3DConnector(pProductOccurrence)
|
||||
A3DProductOccurrenceConnector(const A3DAsmProductOccurrence* pProductOccurrence):
|
||||
A3DConnector(pProductOccurrence)
|
||||
{
|
||||
m_pFather = NULL;
|
||||
m_bIsInstanciated = false;
|
||||
@@ -59,16 +56,13 @@ private:
|
||||
m_bIsExternal = false;
|
||||
}
|
||||
|
||||
~A3DProductOccurrenceConnector() { A3DAsmProductOccurrenceGet(NULL, &m_sProductOccurrenceData); }
|
||||
~A3DProductOccurrenceConnector() { A3DAsmProductOccurrenceGet(NULL, &m_sProductOccurrenceData); }
|
||||
|
||||
A3DStatus TraversePO(const A3DAsmProductOccurrence* pOccurrence, A3DVisitorContainer* psVisitor, bool bVisitPrototype = false);
|
||||
A3DStatus TraversePO(A3DVisitorContainer* psVisitor, bool bVisitPrototype = false);
|
||||
|
||||
void SetProductOccurrenceFather(const A3DAsmProductOccurrence* pFather) { m_pFather = pFather; }
|
||||
|
||||
public:
|
||||
A3DStatus GetPart(A3DAsmPartDefinition*& pPart) const;
|
||||
A3DStatus CollectSons(std::vector<A3DAsmProductOccurrence*>& apSons) const;
|
||||
|
||||
A3DAsmProductOccurrenceData m_sProductOccurrenceData;
|
||||
const A3DAsmProductOccurrence* GetProductOccurrenceFather() { return m_pFather; }
|
||||
void SetIsInstanciated(bool bIsInstanciated) { m_bIsInstanciated = bIsInstanciated; }
|
||||
@@ -80,47 +74,13 @@ public:
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DPartConnector : public A3DConnector
|
||||
class A3DRiConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DProductOccurrenceConnector;
|
||||
const A3DAsmProductOccurrence* m_pFather;
|
||||
bool m_bIsInstanciated;
|
||||
|
||||
private:
|
||||
|
||||
A3DPartConnector(const A3DAsmPartDefinition *pPart) : A3DConnector(pPart)
|
||||
{
|
||||
m_pFather = NULL;
|
||||
m_bIsInstanciated = false;
|
||||
A3D_INITIALIZE_DATA(A3DAsmPartDefinitionData, m_sPartData);
|
||||
A3DAsmPartDefinitionGet(pPart, &m_sPartData);
|
||||
}
|
||||
|
||||
~A3DPartConnector()
|
||||
{
|
||||
A3DAsmPartDefinitionGet(NULL, &m_sPartData);
|
||||
}
|
||||
|
||||
void SetProductOccurenceFather(const A3DAsmProductOccurrence* pFather) { m_pFather = pFather; }
|
||||
|
||||
public:
|
||||
A3DStatus TraversePart(A3DVisitorContainer* psVisitor) const;
|
||||
A3DAsmPartDefinitionData m_sPartData;
|
||||
const A3DAsmProductOccurrence* GetProductOccurenceFather() { return m_pFather; }
|
||||
void SetIsInstanciated(bool bIsInstanciated) { m_bIsInstanciated = bIsInstanciated; }
|
||||
bool IsInstanciated() { return m_bIsInstanciated; }
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DRiConnector : public A3DConnector
|
||||
{
|
||||
friend class A3DPartConnector;
|
||||
friend class A3DRiSetConnector;
|
||||
bool m_bIsInstanciated;
|
||||
|
||||
public:
|
||||
|
||||
A3DRiConnector(const A3DRiRepresentationItem *pRi) : A3DConnector(pRi)
|
||||
A3DRiConnector(const A3DRiRepresentationItem *pRi): A3DConnector(pRi)
|
||||
{
|
||||
m_bIsInstanciated = false;
|
||||
A3D_INITIALIZE_DATA(A3DRiRepresentationItemData, m_sRiData);
|
||||
@@ -132,22 +92,23 @@ public:
|
||||
A3DRiRepresentationItemGet(NULL, &m_sRiData);
|
||||
}
|
||||
|
||||
A3DStatus TraverseRi(A3DVisitorContainer* psVisitor);
|
||||
A3DStatus TraverseRi(A3DVisitorContainer* psVisitor);
|
||||
|
||||
public:
|
||||
|
||||
A3DRiRepresentationItemData m_sRiData;
|
||||
void SetIsInstanciated(bool bIsInstanciated) { m_bIsInstanciated = bIsInstanciated; }
|
||||
bool IsInstanciated() { return m_bIsInstanciated; }
|
||||
bool IsInstanciated() { return m_bIsInstanciated; }
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DRiBrepModelConnector : public A3DConnector
|
||||
class A3DRiBrepModelConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DRiConnector;
|
||||
public:
|
||||
|
||||
A3DRiBrepModelConnector(const A3DRiBrepModel *pRi) : m_pRiBrepModel(pRi), A3DConnector(pRi)
|
||||
public:
|
||||
A3DRiBrepModelConnector(const A3DRiBrepModel *pRi):
|
||||
m_pRiBrepModel(pRi),
|
||||
A3DConnector(pRi)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DRiBrepModelData, m_sRiBrepModelData);
|
||||
A3DRiBrepModelGet(m_pRiBrepModel, &m_sRiBrepModelData);
|
||||
@@ -166,12 +127,12 @@ public:
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DRiSetConnector : public A3DConnector
|
||||
class A3DRiSetConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DRiConnector;
|
||||
private:
|
||||
|
||||
A3DRiSetConnector(const A3DRiSet *pRi) : A3DConnector(pRi)
|
||||
private:
|
||||
A3DRiSetConnector(const A3DRiSet *pRi): A3DConnector(pRi)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DRiSetData, m_sRiSetData);
|
||||
A3DRiSetGet(pRi, &m_sRiSetData);
|
||||
@@ -182,20 +143,19 @@ private:
|
||||
A3DRiSetGet(NULL, &m_sRiSetData);
|
||||
}
|
||||
|
||||
A3DStatus TraverseRiSet(A3DVisitorContainer* psVisitor);
|
||||
A3DStatus TraverseRiSet(A3DVisitorContainer* psVisitor);
|
||||
|
||||
public:
|
||||
|
||||
A3DRiSetData m_sRiSetData;
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DPolyRiBrepModelConnector : public A3DConnector
|
||||
class A3DPolyRiBrepModelConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DRiConnector;
|
||||
private:
|
||||
|
||||
A3DPolyRiBrepModelConnector(const A3DRiPolyBrepModel* pRi) : A3DConnector(pRi)
|
||||
private:
|
||||
A3DPolyRiBrepModelConnector(const A3DRiPolyBrepModel* pRi): A3DConnector(pRi)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DRiPolyBrepModelData, m_sRiPolyBrepModelData);
|
||||
A3DRiPolyBrepModelGet(pRi, &m_sRiPolyBrepModelData);
|
||||
@@ -212,12 +172,12 @@ public:
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DRiCurveConnector : public A3DConnector
|
||||
class A3DRiCurveConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DRiConnector;
|
||||
private:
|
||||
|
||||
A3DRiCurveConnector(const A3DRiCurve* pRi) : A3DConnector(pRi)
|
||||
private:
|
||||
A3DRiCurveConnector(const A3DRiCurve* pRi): A3DConnector(pRi)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DRiCurveData, m_sRiCurveData);
|
||||
A3DRiCurveGet(pRi, &m_sRiCurveData);
|
||||
@@ -231,17 +191,16 @@ private:
|
||||
A3DStatus TraverseRiCurve(A3DVisitorContainer* psVisitor);
|
||||
|
||||
public:
|
||||
|
||||
A3DRiCurveData m_sRiCurveData;
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DRiPolyWireConnector : public A3DConnector
|
||||
class A3DRiPolyWireConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DRiConnector;
|
||||
private:
|
||||
|
||||
A3DRiPolyWireConnector(const A3DRiPolyWire* pRi) : A3DConnector(pRi)
|
||||
private:
|
||||
A3DRiPolyWireConnector(const A3DRiPolyWire* pRi): A3DConnector(pRi)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DRiPolyWireData, m_sRiPolyWireData);
|
||||
A3DRiPolyWireGet(pRi, &m_sRiPolyWireData);
|
||||
@@ -255,18 +214,17 @@ private:
|
||||
A3DStatus TraverseRiPolyWire(A3DVisitorContainer* psVisitor);
|
||||
|
||||
public:
|
||||
|
||||
A3DRiPolyWireData m_sRiPolyWireData;
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DFRMParameterConnector : public A3DConnector
|
||||
class A3DFRMParameterConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DFRMTreeConnector;
|
||||
friend class A3DFRMFeatureConnector;
|
||||
private:
|
||||
|
||||
A3DFRMParameterConnector(const A3DFRMParameter *pParameter) : A3DConnector(pParameter)
|
||||
private:
|
||||
A3DFRMParameterConnector(const A3DFRMParameter *pParameter): A3DConnector(pParameter)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DFRMParameterData, m_sData);
|
||||
A3DFRMParameterGet(pParameter, &m_sData);
|
||||
@@ -277,22 +235,19 @@ private:
|
||||
A3DFRMParameterGet(NULL, &m_sData);
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
A3DFRMParameterData m_sData;
|
||||
|
||||
A3DStatus TraverseParameter(A3DVisitorContainer* psVisitor) const;
|
||||
A3DStatus TraverseParameter(A3DVisitorContainer* psVisitor) const;
|
||||
};
|
||||
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DFRMLinkedItemConnector : public A3DConnector
|
||||
class A3DFRMLinkedItemConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DFRMFeatureConnector;
|
||||
private:
|
||||
|
||||
A3DFRMLinkedItemConnector(const A3DFRMLinkedItem *pLinkedItem) : A3DConnector(pLinkedItem)
|
||||
private:
|
||||
A3DFRMLinkedItemConnector(const A3DFRMLinkedItem *pLinkedItem): A3DConnector(pLinkedItem)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DFRMLinkedItemData, m_sData);
|
||||
A3DFRMLinkedItemGet(pLinkedItem, &m_sData);
|
||||
@@ -303,22 +258,19 @@ private:
|
||||
A3DFRMLinkedItemGet(NULL, &m_sData);
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
A3DFRMLinkedItemData m_sData;
|
||||
|
||||
A3DStatus TraverseConnection(A3DVisitorContainer* psVisitor) const;
|
||||
A3DStatus TraverseConnection(A3DVisitorContainer* psVisitor) const;
|
||||
};
|
||||
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DFRMFeatureConnector : public A3DConnector
|
||||
class A3DFRMFeatureConnector: public A3DConnector
|
||||
{
|
||||
friend class A3DFRMParameterConnector;
|
||||
private:
|
||||
|
||||
A3DFRMFeatureConnector(const A3DFRMFeature *pFeature) : A3DConnector(pFeature)
|
||||
private:
|
||||
A3DFRMFeatureConnector(const A3DFRMFeature *pFeature): A3DConnector(pFeature)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DFRMFeatureData, m_sData);
|
||||
A3DFRMFeatureGet(pFeature, &m_sData);
|
||||
@@ -329,22 +281,19 @@ private:
|
||||
A3DFRMFeatureGet(NULL, &m_sData);
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
A3DFRMFeatureData m_sData;
|
||||
A3DStatus TraverseFeature(A3DVisitorContainer* psVisitor) const;
|
||||
|
||||
|
||||
A3DStatus TraverseFeature(A3DVisitorContainer* psVisitor) const;
|
||||
};
|
||||
|
||||
//######################################################################################################################
|
||||
class A3DFRMTreeConnector : public A3DConnector
|
||||
{
|
||||
friend class A3DProductOccurrenceConnector;
|
||||
protected:
|
||||
|
||||
A3DFRMTreeConnector(const A3DFRMTree *pTree) : A3DConnector(pTree)
|
||||
protected:
|
||||
A3DFRMTreeConnector(const A3DFRMTree *pTree): A3DConnector(pTree)
|
||||
{
|
||||
A3D_INITIALIZE_DATA(A3DFRMTreeData, m_sTreeData);
|
||||
A3DFRMTreeGet(pTree, &m_sTreeData);
|
||||
@@ -355,10 +304,10 @@ protected:
|
||||
A3DFRMTreeGet(NULL, &m_sTreeData);
|
||||
}
|
||||
|
||||
A3DStatus TraverseFeatureTree(A3DVisitorContainer* psVisitor) const;
|
||||
A3DStatus TraverseFeatureTree(A3DVisitorContainer* psVisitor) const;
|
||||
|
||||
public:
|
||||
|
||||
A3DFRMTreeData m_sTreeData;
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif // A3D_TREE_CONNECTOR
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
@@ -115,8 +115,6 @@ A3DStatus A3DVisitorContainer::visitEnter(const A3DProductOccurrenceConnector& s
|
||||
return iRet;
|
||||
}
|
||||
|
||||
A3DStatus A3DVisitorContainer::visitEnter(const A3DPartConnector& sConnector)
|
||||
VISITENTER
|
||||
A3DStatus A3DVisitorContainer::visitEnter(const A3DRiConnector& sConnector)
|
||||
VISITENTER
|
||||
A3DStatus A3DVisitorContainer::visitEnter(const A3DRiBrepModelConnector& sConnector)
|
||||
@@ -151,8 +149,6 @@ A3DStatus A3DVisitorContainer::visitLeave(const A3DProductOccurrenceConnector& s
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DStatus A3DVisitorContainer::visitLeave(const A3DPartConnector& sConnector)
|
||||
VISITLEAVE
|
||||
A3DStatus A3DVisitorContainer::visitLeave(const A3DRiConnector& sConnector)
|
||||
VISITLEAVE
|
||||
A3DStatus A3DVisitorContainer::visitLeave(const A3DRiBrepModelConnector& sConnector)
|
||||
@@ -451,7 +447,7 @@ void* A3DVisitorContainer::FindInMap(const A3DEntity* pA3DEntity)
|
||||
|
||||
void A3DVisitorContainer::SetInMap(const A3DEntity* pA3DEntity, void* pYourEntity)
|
||||
{
|
||||
m_apA3DEntityYourEntityMap.insert(std::pair<const A3DEntity*, void*>(pA3DEntity, pYourEntity));
|
||||
m_apA3DEntityYourEntityMap.emplace(pA3DEntity, pYourEntity);
|
||||
}
|
||||
|
||||
A3DVisitor* A3DVisitorContainer::GetVisitorByName( std::string strName )
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
@@ -101,15 +101,11 @@ public:
|
||||
virtual A3DStatus visitLeave(const A3DModelFileConnector& sConnector);
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DProductOccurrenceConnector& sConnector);
|
||||
virtual A3DStatus visitLeave(const A3DProductOccurrenceConnector& sConnector);
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DPartConnector& sConnector);
|
||||
virtual A3DStatus visitLeave(const A3DPartConnector& sConnector);
|
||||
virtual A3DStatus visitLeave(const A3DProductOccurrenceConnector& sConnector);
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DRiConnector& sConnector);
|
||||
virtual A3DStatus visitLeave(const A3DRiConnector& sConnector);
|
||||
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DRiBrepModelConnector& sConnector);
|
||||
virtual A3DStatus visitLeave(const A3DRiBrepModelConnector& sConnector);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
@@ -41,16 +41,6 @@ A3DStatus A3DTreeVisitor::visitLeave(const A3DRiConnector& /*sConnector*/)
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DStatus A3DTreeVisitor::visitEnter(const A3DPartConnector& /*sConnector*/)
|
||||
{
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DStatus A3DTreeVisitor::visitLeave(const A3DPartConnector& /*sConnector*/)
|
||||
{
|
||||
return A3D_SUCCESS;
|
||||
}
|
||||
|
||||
A3DStatus A3DTreeVisitor::visitEnter(const A3DProductOccurrenceConnector& sConnector)
|
||||
{
|
||||
if(m_uOption&NODE_INSTANCES)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
@@ -44,9 +44,6 @@ public:
|
||||
virtual A3DStatus visitEnter(const A3DRiConnector& sConnector);
|
||||
virtual A3DStatus visitLeave(const A3DRiConnector& sConnector);
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DPartConnector& sConnector );
|
||||
virtual A3DStatus visitLeave(const A3DPartConnector& sConnector);
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DProductOccurrenceConnector& sConnector);
|
||||
virtual A3DStatus visitLeave(const A3DProductOccurrenceConnector& sConnector);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* 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
|
||||
@@ -99,9 +99,6 @@ public :
|
||||
virtual A3DStatus visitEnter(const A3DProductOccurrenceConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DProductOccurrenceConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DPartConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DPartConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
virtual A3DStatus visitEnter(const A3DRiConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
virtual A3DStatus visitLeave(const A3DRiConnector& /*sConnector*/) { return A3D_SUCCESS; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user