1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

Compare commits

...

6 Commits

Author SHA1 Message Date
dpasukhi
b3ba303a7e 0033095: Data Exchange, Step Import - Wrong PMI values when loading a *.stp file in m
Fixed problem with dimension tolerance values (upper/lower)
 - Update supported type for tolerance measure unit, now we can handle base class
2022-08-11 10:46:13 +03:00
sshutina
aecb5aa2b0 0031786: Data Exchange - After the importing STEP file the free shape is empty
- Fixed the exception
 - Added the test
2021-09-06 17:32:39 +03:00
kgv
518567c50e 0031794: Visualization - Highlighting of AIS_Shape works incorrectly when AddChild() used
PrsMgr_PresentationManager::Display(), PrsMgr_PresentationManager::Color(),
and SelectMgr_SelectionManager::Activate() now skip children in Erased state.
2021-05-27 17:21:26 +03:00
kgv
c2af290ede 0032162: Visualization - move AIS_DisplayStatus from AIS_GlobalStatus to PrsMgr_PresentableObject
AIS_DisplayStatus has been renamed to PrsMgr_DisplayStatus
and moved from AIS_GlobalStatus class field to PrsMgr_PresentableObject.

0032167: Visualization, AIS_InteractiveContext - setObjectStatus sets wrong status when AIS_DS_Erased

AIS_InteractiveContext::setObjectStatus() Fixed setting unexpected Displayed status to Erased objects.
2021-05-27 17:21:02 +03:00
alex
ba382e61db temporary patch to avoid deactivate selection on children after the parent's hiding 2019-10-15 14:59:45 +03:00
nds
05ac0c7d75 0030922: Visualization - OpenGl_Text wrong local transformation if text has not own attach point
(cherry picked from commit d149bbcbaf7d237425b574a1977acb07db299bea)
(cherry picked from commit 95a4927b5b2b9310de6ebe36f0fe6523cebe52c6)
(cherry picked from commit f414985732fb8084363d543e65fc4d7232e22488)
2019-10-10 08:49:23 +03:00
26 changed files with 345 additions and 160 deletions

View File

@@ -17,12 +17,9 @@
#ifndef _AIS_DisplayStatus_HeaderFile #ifndef _AIS_DisplayStatus_HeaderFile
#define _AIS_DisplayStatus_HeaderFile #define _AIS_DisplayStatus_HeaderFile
#include <PrsMgr_DisplayStatus.hxx>
//! To give the display status of an Interactive Object. //! To give the display status of an Interactive Object.
enum AIS_DisplayStatus typedef PrsMgr_DisplayStatus AIS_DisplayStatus;
{
AIS_DS_Displayed, //!< the Interactive Object is displayed in the main viewer
AIS_DS_Erased, //!< the Interactive Object is hidden in main viewer
AIS_DS_None //!< the Interactive Object is nowhere displayed
};
#endif // _AIS_DisplayStatus_HeaderFile #endif // _AIS_DisplayStatus_HeaderFile

View File

@@ -23,7 +23,6 @@
IMPLEMENT_STANDARD_RTTIEXT(AIS_GlobalStatus, Standard_Transient) IMPLEMENT_STANDARD_RTTIEXT(AIS_GlobalStatus, Standard_Transient)
AIS_GlobalStatus::AIS_GlobalStatus(): AIS_GlobalStatus::AIS_GlobalStatus():
myStatus(AIS_DS_None),
myDispMode(AIS_WireFrame), myDispMode(AIS_WireFrame),
myLayerIndex(0), myLayerIndex(0),
myIsHilit(Standard_False), myIsHilit(Standard_False),
@@ -31,18 +30,15 @@ mySubInt(Standard_False)
{ {
} }
AIS_GlobalStatus::AIS_GlobalStatus(const AIS_DisplayStatus DS, AIS_GlobalStatus::AIS_GlobalStatus (const Standard_Integer theDMode,
const Standard_Integer DMode, const Standard_Integer theSMode,
const Standard_Integer SMode, const Standard_Integer theLayer):
const Standard_Boolean /*ishilighted*/, myDispMode (theDMode),
const Standard_Integer Layer): myLayerIndex (theLayer),
myStatus(DS), myIsHilit (Standard_False),
myDispMode(DMode), mySubInt (Standard_False)
myLayerIndex(Layer),
myIsHilit(Standard_False),
mySubInt(Standard_False)
{ {
mySelModes.Append(SMode); mySelModes.Append (theSMode);
} }
void AIS_GlobalStatus::RemoveSelectionMode(const Standard_Integer aMode) void AIS_GlobalStatus::RemoveSelectionMode(const Standard_Integer aMode)

View File

@@ -43,9 +43,9 @@ public:
Standard_EXPORT AIS_GlobalStatus(); Standard_EXPORT AIS_GlobalStatus();
Standard_EXPORT AIS_GlobalStatus(const AIS_DisplayStatus aStat, const Standard_Integer aDispMode, const Standard_Integer aSelMode, const Standard_Boolean ishilighted = Standard_False, const Standard_Integer aLayerIndex = 0); Standard_EXPORT AIS_GlobalStatus (const Standard_Integer theDispMode,
const Standard_Integer theSelMode,
void SetGraphicStatus (const AIS_DisplayStatus theStatus) { myStatus = theStatus; } const Standard_Integer theLayerIndex = 0);
void AddSelectionMode (const Standard_Integer theMode) { if (!IsSModeIn (theMode)) mySelModes.Append (theMode); } void AddSelectionMode (const Standard_Integer theMode) { if (!IsSModeIn (theMode)) mySelModes.Append (theMode); }
@@ -74,9 +74,7 @@ public:
Standard_EXPORT void RemoveSelectionMode (const Standard_Integer aMode); Standard_EXPORT void RemoveSelectionMode (const Standard_Integer aMode);
Standard_EXPORT void ClearSelectionModes(); Standard_EXPORT void ClearSelectionModes();
AIS_DisplayStatus GraphicStatus() const { return myStatus; }
//! keeps the active selection modes of the object //! keeps the active selection modes of the object
//! in the main viewer. //! in the main viewer.
const TColStd_ListOfInteger& SelectionModes() const { return mySelModes; } const TColStd_ListOfInteger& SelectionModes() const { return mySelModes; }
@@ -95,7 +93,6 @@ private:
TColStd_ListOfInteger mySelModes; TColStd_ListOfInteger mySelModes;
Handle(Prs3d_Drawer) myHiStyle; Handle(Prs3d_Drawer) myHiStyle;
AIS_DisplayStatus myStatus;
Standard_Integer myDispMode; Standard_Integer myDispMode;
Standard_Integer myLayerIndex; Standard_Integer myLayerIndex;
Standard_Boolean myIsHilit; Standard_Boolean myIsHilit;

View File

@@ -229,7 +229,7 @@ void AIS_InteractiveContext::DisplayedObjects (AIS_ListOfInteractive& theListOfI
{ {
for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next()) for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next())
{ {
if (anObjIter.Value()->GraphicStatus() == AIS_DS_Displayed) if (anObjIter.Key()->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
theListOfIO.Append (anObjIter.Key()); theListOfIO.Append (anObjIter.Key());
} }
@@ -244,7 +244,7 @@ void AIS_InteractiveContext::DisplayedObjects (const AIS_KindOfInteractive theKi
const Standard_Integer theSign, const Standard_Integer theSign,
AIS_ListOfInteractive& theListOfIO) const AIS_ListOfInteractive& theListOfIO) const
{ {
ObjectsByDisplayStatus (theKind, theSign, AIS_DS_Displayed, theListOfIO); ObjectsByDisplayStatus (theKind, theSign, PrsMgr_DisplayStatus_Displayed, theListOfIO);
} }
//======================================================================= //=======================================================================
@@ -253,7 +253,7 @@ void AIS_InteractiveContext::DisplayedObjects (const AIS_KindOfInteractive theKi
//======================================================================= //=======================================================================
void AIS_InteractiveContext::ErasedObjects (AIS_ListOfInteractive& theListOfIO) const void AIS_InteractiveContext::ErasedObjects (AIS_ListOfInteractive& theListOfIO) const
{ {
ObjectsByDisplayStatus (AIS_DS_Erased, theListOfIO); ObjectsByDisplayStatus (PrsMgr_DisplayStatus_Erased, theListOfIO);
} }
//======================================================================= //=======================================================================
@@ -264,19 +264,19 @@ void AIS_InteractiveContext::ErasedObjects (const AIS_KindOfInteractive theKind,
const Standard_Integer theSign, const Standard_Integer theSign,
AIS_ListOfInteractive& theListOfIO) const AIS_ListOfInteractive& theListOfIO) const
{ {
ObjectsByDisplayStatus (theKind, theSign, AIS_DS_Erased, theListOfIO); ObjectsByDisplayStatus (theKind, theSign, PrsMgr_DisplayStatus_Erased, theListOfIO);
} }
//======================================================================= //=======================================================================
//function : ObjectsByDisplayStatus //function : ObjectsByDisplayStatus
//purpose : //purpose :
//======================================================================= //=======================================================================
void AIS_InteractiveContext::ObjectsByDisplayStatus (const AIS_DisplayStatus theStatus, void AIS_InteractiveContext::ObjectsByDisplayStatus (const PrsMgr_DisplayStatus theStatus,
AIS_ListOfInteractive& theListOfIO) const AIS_ListOfInteractive& theListOfIO) const
{ {
for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next()) for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next())
{ {
if (anObjIter.Value()->GraphicStatus() == theStatus) if (anObjIter.Key()->DisplayStatus() == theStatus)
{ {
theListOfIO.Append (anObjIter.Key()); theListOfIO.Append (anObjIter.Key());
} }
@@ -289,13 +289,13 @@ void AIS_InteractiveContext::ObjectsByDisplayStatus (const AIS_DisplayStatus the
//======================================================================= //=======================================================================
void AIS_InteractiveContext::ObjectsByDisplayStatus (const AIS_KindOfInteractive theKind, void AIS_InteractiveContext::ObjectsByDisplayStatus (const AIS_KindOfInteractive theKind,
const Standard_Integer theSign, const Standard_Integer theSign,
const AIS_DisplayStatus theStatus, const PrsMgr_DisplayStatus theStatus,
AIS_ListOfInteractive& theListOfIO) const AIS_ListOfInteractive& theListOfIO) const
{ {
for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next()) for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next())
{ {
if (theStatus != AIS_DS_None if (theStatus != PrsMgr_DisplayStatus_None
&& anObjIter.Value()->GraphicStatus() != theStatus) && anObjIter.Key()->DisplayStatus() != theStatus)
{ {
continue; continue;
} }
@@ -352,14 +352,14 @@ void AIS_InteractiveContext::ObjectsInside (AIS_ListOfInteractive& theListO
void AIS_InteractiveContext::ObjectsForView (AIS_ListOfInteractive& theListOfIO, void AIS_InteractiveContext::ObjectsForView (AIS_ListOfInteractive& theListOfIO,
const Handle(V3d_View)& theView, const Handle(V3d_View)& theView,
const Standard_Boolean theIsVisibleInView, const Standard_Boolean theIsVisibleInView,
const AIS_DisplayStatus theStatus) const const PrsMgr_DisplayStatus theStatus) const
{ {
Handle(Graphic3d_CView) aViewImpl = theView->View(); Handle(Graphic3d_CView) aViewImpl = theView->View();
const Standard_Integer aViewId = aViewImpl->Identification(); const Standard_Integer aViewId = aViewImpl->Identification();
for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next()) for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next())
{ {
if (theStatus != AIS_DS_None if (theStatus != PrsMgr_DisplayStatus_None
&& anObjIter.Value()->GraphicStatus() != theStatus) && anObjIter.Key()->DisplayStatus() != theStatus)
{ {
theListOfIO.Append (anObjIter.Key()); theListOfIO.Append (anObjIter.Key());
continue; continue;
@@ -426,14 +426,14 @@ void AIS_InteractiveContext::Display (const Handle(AIS_InteractiveObject)& theIO
const Standard_Integer theDispMode, const Standard_Integer theDispMode,
const Standard_Integer theSelectionMode, const Standard_Integer theSelectionMode,
const Standard_Boolean theToUpdateViewer, const Standard_Boolean theToUpdateViewer,
const AIS_DisplayStatus theDispStatus) const PrsMgr_DisplayStatus theDispStatus)
{ {
if (theIObj.IsNull()) if (theIObj.IsNull())
{ {
return; return;
} }
if (theDispStatus == AIS_DS_Erased) if (theDispStatus == PrsMgr_DisplayStatus_Erased)
{ {
Erase (theIObj, theToUpdateViewer); Erase (theIObj, theToUpdateViewer);
Load (theIObj, theSelectionMode); Load (theIObj, theSelectionMode);
@@ -447,7 +447,7 @@ void AIS_InteractiveContext::Display (const Handle(AIS_InteractiveObject)& theIO
setContextToObject (theIObj); setContextToObject (theIObj);
if (!myObjects.IsBound (theIObj)) if (!myObjects.IsBound (theIObj))
{ {
setObjectStatus (theIObj, AIS_DS_Displayed, theDispMode, theSelectionMode); setObjectStatus (theIObj, PrsMgr_DisplayStatus_Displayed, theDispMode, theSelectionMode);
myMainVwr->StructureManager()->RegisterObject (theIObj); myMainVwr->StructureManager()->RegisterObject (theIObj);
myMainPM->Display(theIObj, theDispMode); myMainPM->Display(theIObj, theDispMode);
if (theSelectionMode != -1) if (theSelectionMode != -1)
@@ -479,8 +479,8 @@ void AIS_InteractiveContext::Display (const Handle(AIS_InteractiveObject)& theIO
aStatus->SetDisplayMode (theDispMode); aStatus->SetDisplayMode (theDispMode);
theIObj->SetDisplayStatus (PrsMgr_DisplayStatus_Displayed);
myMainPM->Display (theIObj, theDispMode); myMainPM->Display (theIObj, theDispMode);
aStatus->SetGraphicStatus (AIS_DS_Displayed);
if (aStatus->IsHilighted()) if (aStatus->IsHilighted())
{ {
highlightGlobal (theIObj, aStatus->HilightStyle(), theDispMode); highlightGlobal (theIObj, aStatus->HilightStyle(), theDispMode);
@@ -524,7 +524,7 @@ void AIS_InteractiveContext::Load (const Handle(AIS_InteractiveObject)& theIObj,
{ {
Standard_Integer aDispMode, aHiMod, aSelModeDef; Standard_Integer aDispMode, aHiMod, aSelModeDef;
GetDefModes (theIObj, aDispMode, aHiMod, aSelModeDef); GetDefModes (theIObj, aDispMode, aHiMod, aSelModeDef);
setObjectStatus (theIObj, AIS_DS_Erased, aDispMode, theSelMode != -1 ? theSelMode : aSelModeDef); setObjectStatus (theIObj, PrsMgr_DisplayStatus_Erased, aDispMode, theSelMode != -1 ? theSelMode : aSelModeDef);
myMainVwr->StructureManager()->RegisterObject (theIObj); myMainVwr->StructureManager()->RegisterObject (theIObj);
} }
@@ -568,7 +568,7 @@ void AIS_InteractiveContext::EraseAll (const Standard_Boolean theToUpdateViewer)
{ {
for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next()) for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next())
{ {
if (anObjIter.Value()->GraphicStatus() == AIS_DS_Displayed) if (anObjIter.Key()->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
Erase (anObjIter.Key(), Standard_False); Erase (anObjIter.Key(), Standard_False);
} }
@@ -588,8 +588,8 @@ void AIS_InteractiveContext::DisplayAll (const Standard_Boolean theToUpdateViewe
{ {
for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next()) for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjIter (myObjects); anObjIter.More(); anObjIter.Next())
{ {
const AIS_DisplayStatus aStatus = anObjIter.Value()->GraphicStatus(); const PrsMgr_DisplayStatus aStatus = anObjIter.Key()->DisplayStatus();
if (aStatus == AIS_DS_Erased) if (aStatus == PrsMgr_DisplayStatus_Erased)
{ {
Display (anObjIter.Key(), Standard_False); Display (anObjIter.Key(), Standard_False);
} }
@@ -643,14 +643,14 @@ void AIS_InteractiveContext::EraseSelected (const Standard_Boolean theToUpdateVi
//function : DisplayStatus //function : DisplayStatus
//purpose : //purpose :
//======================================================================= //=======================================================================
AIS_DisplayStatus AIS_InteractiveContext::DisplayStatus (const Handle(AIS_InteractiveObject)& theIObj) const PrsMgr_DisplayStatus AIS_InteractiveContext::DisplayStatus (const Handle(AIS_InteractiveObject)& theIObj) const
{ {
if (theIObj.IsNull()) if (theIObj.IsNull())
{ {
return AIS_DS_None; return PrsMgr_DisplayStatus_None;
} }
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj);
return aStatus != NULL ? (*aStatus)->GraphicStatus() : AIS_DS_None; return aStatus != NULL ? theIObj->DisplayStatus() : PrsMgr_DisplayStatus_None;
} }
//======================================================================= //=======================================================================
@@ -713,7 +713,7 @@ void AIS_InteractiveContext::HilightWithColor(const Handle(AIS_InteractiveObject
const Handle(AIS_GlobalStatus)& aStatus = myObjects (theObj); const Handle(AIS_GlobalStatus)& aStatus = myObjects (theObj);
aStatus->SetHilightStatus (Standard_True); aStatus->SetHilightStatus (Standard_True);
if (aStatus->GraphicStatus() == AIS_DS_Displayed) if (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
highlightGlobal (theObj, theStyle, aStatus->DisplayMode()); highlightGlobal (theObj, theStyle, aStatus->DisplayMode());
aStatus->SetHilightStyle (theStyle); aStatus->SetHilightStyle (theStyle);
@@ -727,21 +727,26 @@ void AIS_InteractiveContext::HilightWithColor(const Handle(AIS_InteractiveObject
//function : Unhilight //function : Unhilight
//purpose : //purpose :
//======================================================================= //=======================================================================
void AIS_InteractiveContext::Unhilight(const Handle(AIS_InteractiveObject)& anIObj, const Standard_Boolean updateviewer) void AIS_InteractiveContext::Unhilight (const Handle(AIS_InteractiveObject)& theObj,
const Standard_Boolean theToUpdateViewer)
{ {
if(anIObj.IsNull()) return; Handle(AIS_GlobalStatus)* aStatus = !theObj.IsNull() ? myObjects.ChangeSeek (theObj) : NULL;
if(!myObjects.IsBound(anIObj)) return; if (aStatus == NULL)
const Handle(AIS_GlobalStatus)& aStatus = myObjects(anIObj);
aStatus->SetHilightStatus (Standard_False);
aStatus->SetHilightStyle (Handle(Prs3d_Drawer)());
if (aStatus->GraphicStatus() == AIS_DS_Displayed)
{ {
unhighlightGlobal (anIObj); return;
} }
if(updateviewer) myMainVwr->Update(); (*aStatus)->SetHilightStatus (Standard_False);
(*aStatus)->SetHilightStyle (Handle(Prs3d_Drawer)());
if (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{
unhighlightGlobal (theObj);
}
if (theToUpdateViewer)
{
myMainVwr->Update();
}
} }
//======================================================================= //=======================================================================
@@ -845,7 +850,7 @@ Standard_Boolean AIS_InteractiveContext::IsDisplayed(const Handle(AIS_Interactiv
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theObj);
return aStatus != NULL return aStatus != NULL
&& (*aStatus)->GraphicStatus() == AIS_DS_Displayed; && theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed;
} }
//======================================================================= //=======================================================================
@@ -862,7 +867,7 @@ Standard_Boolean AIS_InteractiveContext::IsDisplayed (const Handle(AIS_Interacti
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj);
return aStatus != NULL return aStatus != NULL
&& (*aStatus)->GraphicStatus() == AIS_DS_Displayed && theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed
&& (*aStatus)->DisplayMode() == theMode; && (*aStatus)->DisplayMode() == theMode;
} }
@@ -879,8 +884,8 @@ Standard_Integer AIS_InteractiveContext::DisplayPriority (const Handle(AIS_Inter
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj);
if (aStatus != NULL if (aStatus != NULL
&& ((*aStatus)->GraphicStatus() == AIS_DS_Displayed && (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed
|| (*aStatus)->GraphicStatus() == AIS_DS_Erased)) || theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Erased))
{ {
Standard_Integer aDispMode = theIObj->HasDisplayMode() Standard_Integer aDispMode = theIObj->HasDisplayMode()
? theIObj->DisplayMode() ? theIObj->DisplayMode()
@@ -907,8 +912,8 @@ void AIS_InteractiveContext::SetDisplayPriority (const Handle(AIS_InteractiveObj
setContextToObject (theIObj); setContextToObject (theIObj);
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj);
if (aStatus != NULL if (aStatus != NULL
&& ((*aStatus)->GraphicStatus() == AIS_DS_Displayed && (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed
|| (*aStatus)->GraphicStatus() == AIS_DS_Erased)) || theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Erased))
{ {
Standard_Integer aDisplayMode = theIObj->HasDisplayMode() Standard_Integer aDisplayMode = theIObj->HasDisplayMode()
? theIObj->DisplayMode() ? theIObj->DisplayMode()
@@ -949,7 +954,7 @@ void AIS_InteractiveContext::Redisplay (const AIS_KindOfInteractive theKOI,
} }
Redisplay (anObj, Standard_False); Redisplay (anObj, Standard_False);
isRedisplayed = anObjIter.Value()->GraphicStatus() == AIS_DS_Displayed isRedisplayed = anObjIter.Key()->DisplayStatus() == PrsMgr_DisplayStatus_Displayed
|| isRedisplayed; || isRedisplayed;
} }
@@ -982,7 +987,7 @@ void AIS_InteractiveContext::RecomputePrsOnly (const Handle(AIS_InteractiveObjec
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj);
if (aStatus != NULL if (aStatus != NULL
&& (*aStatus)->GraphicStatus() == AIS_DS_Displayed) && theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
myMainVwr->Update(); myMainVwr->Update();
} }
@@ -1002,7 +1007,7 @@ void AIS_InteractiveContext::RecomputeSelectionOnly (const Handle(AIS_Interactiv
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIO); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIO);
if (aStatus == NULL if (aStatus == NULL
|| (*aStatus)->GraphicStatus() != AIS_DS_Displayed) || theIO->DisplayStatus() != PrsMgr_DisplayStatus_Displayed)
{ {
return; return;
} }
@@ -1035,7 +1040,7 @@ void AIS_InteractiveContext::Update (const Handle(AIS_InteractiveObject)& theIOb
{ {
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj);
if (aStatus != NULL if (aStatus != NULL
&& (*aStatus)->GraphicStatus() == AIS_DS_Displayed) && theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
myMainVwr->Update(); myMainVwr->Update();
} }
@@ -1237,7 +1242,7 @@ void AIS_InteractiveContext::SetDisplayMode(const Standard_Integer theMode,
Handle(AIS_GlobalStatus) aStatus = anObjIter.Value(); Handle(AIS_GlobalStatus) aStatus = anObjIter.Value();
aStatus->SetDisplayMode (theMode); aStatus->SetDisplayMode (theMode);
if (aStatus->GraphicStatus() == AIS_DS_Displayed) if (anObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
myMainPM->Display (anObj, theMode); myMainPM->Display (anObj, theMode);
if (!myLastPicked.IsNull() && myLastPicked->IsSameSelectable (anObj)) if (!myLastPicked.IsNull() && myLastPicked->IsSameSelectable (anObj))
@@ -1281,7 +1286,7 @@ void AIS_InteractiveContext::SetDisplayMode (const Handle(AIS_InteractiveObject)
} }
Handle(AIS_GlobalStatus) aStatus = myObjects (theIObj); Handle(AIS_GlobalStatus) aStatus = myObjects (theIObj);
if (aStatus->GraphicStatus() != AIS_DS_Displayed) if (theIObj->DisplayStatus() != PrsMgr_DisplayStatus_Displayed)
{ {
aStatus->SetDisplayMode (theMode); aStatus->SetDisplayMode (theMode);
theIObj->SetDisplayMode (theMode); theIObj->SetDisplayMode (theMode);
@@ -1346,7 +1351,7 @@ void AIS_InteractiveContext::UnsetDisplayMode (const Handle(AIS_InteractiveObjec
const Handle(AIS_GlobalStatus)& aStatus = myObjects (theIObj); const Handle(AIS_GlobalStatus)& aStatus = myObjects (theIObj);
aStatus->SetDisplayMode (myDefaultDrawer->DisplayMode()); aStatus->SetDisplayMode (myDefaultDrawer->DisplayMode());
if (aStatus->GraphicStatus() == AIS_DS_Displayed) if (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
if (myMainPM->IsHighlighted (theIObj, anOldMode)) if (myMainPM->IsHighlighted (theIObj, anOldMode))
{ {
@@ -1896,14 +1901,14 @@ void AIS_InteractiveContext::Status (const Handle(AIS_InteractiveObject)& theIOb
theStatus += "\t ____________________________________________"; theStatus += "\t ____________________________________________";
theStatus += "\t| Known at Neutral Point:\n\tDisplayStatus:"; theStatus += "\t| Known at Neutral Point:\n\tDisplayStatus:";
const Handle(AIS_GlobalStatus)& aStatus = myObjects (theIObj); const Handle(AIS_GlobalStatus)& aStatus = myObjects (theIObj);
switch (aStatus->GraphicStatus()) switch (theIObj->DisplayStatus())
{ {
case AIS_DS_Displayed: case PrsMgr_DisplayStatus_Displayed:
{ {
theStatus += "\t| -->Displayed\n"; theStatus += "\t| -->Displayed\n";
break; break;
} }
case AIS_DS_Erased: case PrsMgr_DisplayStatus_Erased:
{ {
theStatus += "\t| -->Erased\n"; theStatus += "\t| -->Erased\n";
break; break;
@@ -1962,7 +1967,7 @@ void AIS_InteractiveContext::EraseGlobal (const Handle(AIS_InteractiveObject)& t
Handle(AIS_GlobalStatus) aStatus; Handle(AIS_GlobalStatus) aStatus;
if (theIObj.IsNull() if (theIObj.IsNull()
|| !myObjects.Find (theIObj, aStatus) || !myObjects.Find (theIObj, aStatus)
|| aStatus->GraphicStatus() == AIS_DS_Erased) || theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Erased)
{ {
return; return;
} }
@@ -1991,7 +1996,7 @@ void AIS_InteractiveContext::EraseGlobal (const Handle(AIS_InteractiveObject)& t
mgrSelector->Deactivate (theIObj, aSelModeIter.Value()); mgrSelector->Deactivate (theIObj, aSelModeIter.Value());
} }
aStatus->ClearSelectionModes(); aStatus->ClearSelectionModes();
aStatus->SetGraphicStatus (AIS_DS_Erased); theIObj->SetDisplayStatus (PrsMgr_DisplayStatus_Erased);
if (theToUpdateviewer) if (theToUpdateviewer)
{ {
@@ -2077,7 +2082,7 @@ void AIS_InteractiveContext::ClearGlobal (const Handle(AIS_InteractiveObject)& t
const Handle(SelectMgr_SelectableObject)& anObj = theIObj; // to avoid ambiguity const Handle(SelectMgr_SelectableObject)& anObj = theIObj; // to avoid ambiguity
mgrSelector->Remove (anObj); mgrSelector->Remove (anObj);
setObjectStatus (theIObj, AIS_DS_None, -1, -1); setObjectStatus (theIObj, PrsMgr_DisplayStatus_None, -1, -1);
myMainVwr->StructureManager()->UnregisterObject (theIObj); myMainVwr->StructureManager()->UnregisterObject (theIObj);
for (V3d_ListOfViewIterator aDefViewIter (myMainVwr->DefinedViewIterator()); aDefViewIter.More(); aDefViewIter.Next()) for (V3d_ListOfViewIterator aDefViewIter (myMainVwr->DefinedViewIterator()); aDefViewIter.More(); aDefViewIter.Next())
@@ -2094,7 +2099,8 @@ void AIS_InteractiveContext::ClearGlobal (const Handle(AIS_InteractiveObject)& t
} }
} }
if (theToUpdateviewer && aStatus->GraphicStatus() == AIS_DS_Displayed) if (theToUpdateviewer
&& theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
myMainVwr->Update(); myMainVwr->Update();
} }
@@ -2108,14 +2114,13 @@ void AIS_InteractiveContext::ClearGlobalPrs (const Handle(AIS_InteractiveObject)
const Standard_Integer theMode, const Standard_Integer theMode,
const Standard_Boolean theToUpdateViewer) const Standard_Boolean theToUpdateViewer)
{ {
if (theIObj.IsNull() const Handle(AIS_GlobalStatus)* aStatus = !theIObj.IsNull() ? myObjects.Seek (theIObj) : NULL;
|| !myObjects.IsBound (theIObj)) if (aStatus == NULL)
{ {
return; return;
} }
const Handle(AIS_GlobalStatus)& aStatus = myObjects (theIObj); if ((*aStatus)->DisplayMode() == theMode)
if (aStatus->DisplayMode() == theMode)
{ {
const Standard_Integer aDispMode = theIObj->HasHilightMode() ? theIObj->HilightMode() : 0; const Standard_Integer aDispMode = theIObj->HasHilightMode() ? theIObj->HilightMode() : 0;
if (aDispMode == theMode if (aDispMode == theMode
@@ -2127,7 +2132,7 @@ void AIS_InteractiveContext::ClearGlobalPrs (const Handle(AIS_InteractiveObject)
myMainPM->Erase (theIObj, theMode); myMainPM->Erase (theIObj, theMode);
} }
if (aStatus->GraphicStatus() == AIS_DS_Displayed if (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed
&& theToUpdateViewer) && theToUpdateViewer)
{ {
myMainVwr->Update(); myMainVwr->Update();
@@ -2562,28 +2567,34 @@ gp_Pnt AIS_InteractiveContext::GravityPoint (const Handle(V3d_View)& theView) co
{ {
return theView->GravityPoint(); return theView->GravityPoint();
} }
//======================================================================= //=======================================================================
//function : setObjectStatus //function : setObjectStatus
//purpose : //purpose :
//======================================================================= //=======================================================================
void AIS_InteractiveContext::setObjectStatus (const Handle(AIS_InteractiveObject)& theIObj, void AIS_InteractiveContext::setObjectStatus (const Handle(AIS_InteractiveObject)& theIObj,
const AIS_DisplayStatus theStatus, const PrsMgr_DisplayStatus theStatus,
const Standard_Integer theDispMode, const Standard_Integer theDispMode,
const Standard_Integer theSelectionMode) const Standard_Integer theSelectionMode)
{ {
if (theStatus != AIS_DS_None) theIObj->SetDisplayStatus (theStatus);
if (theStatus != PrsMgr_DisplayStatus_None)
{ {
Handle(AIS_GlobalStatus) aStatus = new AIS_GlobalStatus (AIS_DS_Displayed, theDispMode, theSelectionMode); Handle(AIS_GlobalStatus) aStatus = new AIS_GlobalStatus (theDispMode, theSelectionMode);
myObjects.Bind (theIObj, aStatus); myObjects.Bind (theIObj, aStatus);
} }
else else
{
myObjects.UnBind (theIObj); myObjects.UnBind (theIObj);
}
for (PrsMgr_ListOfPresentableObjectsIter aPrsIter (theIObj->Children()); aPrsIter.More(); aPrsIter.Next()) for (PrsMgr_ListOfPresentableObjectsIter aPrsIter (theIObj->Children()); aPrsIter.More(); aPrsIter.Next())
{ {
Handle(AIS_InteractiveObject) aChild (Handle(AIS_InteractiveObject)::DownCast (aPrsIter.Value())); Handle(AIS_InteractiveObject) aChild (Handle(AIS_InteractiveObject)::DownCast (aPrsIter.Value()));
if (aChild.IsNull()) if (aChild.IsNull())
{
continue; continue;
}
setObjectStatus (aChild, theStatus, theDispMode, theSelectionMode); setObjectStatus (aChild, theStatus, theDispMode, theSelectionMode);
} }

View File

@@ -82,7 +82,7 @@ public: //! @name object display management
//! - AIS_DS_Erased hidden in main viewer //! - AIS_DS_Erased hidden in main viewer
//! - AIS_DS_Temporary temporarily displayed //! - AIS_DS_Temporary temporarily displayed
//! - AIS_DS_None nowhere displayed. //! - AIS_DS_None nowhere displayed.
Standard_EXPORT AIS_DisplayStatus DisplayStatus (const Handle(AIS_InteractiveObject)& anIobj) const; Standard_EXPORT PrsMgr_DisplayStatus DisplayStatus (const Handle(AIS_InteractiveObject)& anIobj) const;
//! Returns the status of the Interactive Context for the view of the Interactive Object. //! Returns the status of the Interactive Context for the view of the Interactive Object.
Standard_EXPORT void Status (const Handle(AIS_InteractiveObject)& anObj, TCollection_ExtendedString& astatus) const; Standard_EXPORT void Status (const Handle(AIS_InteractiveObject)& anObj, TCollection_ExtendedString& astatus) const;
@@ -110,7 +110,7 @@ public: //! @name object display management
const Standard_Integer theDispMode, const Standard_Integer theDispMode,
const Standard_Integer theSelectionMode, const Standard_Integer theSelectionMode,
const Standard_Boolean theToUpdateViewer, const Standard_Boolean theToUpdateViewer,
const AIS_DisplayStatus theDispStatus = AIS_DS_None); const PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None);
//! Allows you to load the Interactive Object with a given selection mode, //! Allows you to load the Interactive Object with a given selection mode,
//! and/or with the desired decomposition option, whether the object is visualized or not. //! and/or with the desired decomposition option, whether the object is visualized or not.
@@ -123,7 +123,7 @@ public: //! @name object display management
const Standard_Integer theSelectionMode, const Standard_Integer theSelectionMode,
const Standard_Boolean theToUpdateViewer, const Standard_Boolean theToUpdateViewer,
const Standard_Boolean theToAllowDecomposition, const Standard_Boolean theToAllowDecomposition,
const AIS_DisplayStatus theDispStatus = AIS_DS_None) const PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None)
{ {
(void )theToAllowDecomposition; (void )theToAllowDecomposition;
Display (theIObj, theDispMode, theSelectionMode, theToUpdateViewer, theDispStatus); Display (theIObj, theDispMode, theSelectionMode, theToUpdateViewer, theDispStatus);
@@ -805,11 +805,14 @@ public: //! @name common properties
//! Returns the list theListOfIO of objects with indicated display status particular Type WhichKind and Signature WhichSignature. //! Returns the list theListOfIO of objects with indicated display status particular Type WhichKind and Signature WhichSignature.
//! By Default, WhichSignature equals 1. This means that there is a check on type only. //! By Default, WhichSignature equals 1. This means that there is a check on type only.
Standard_EXPORT void ObjectsByDisplayStatus (const AIS_DisplayStatus theStatus, AIS_ListOfInteractive& theListOfIO) const; Standard_EXPORT void ObjectsByDisplayStatus (const PrsMgr_DisplayStatus theStatus, AIS_ListOfInteractive& theListOfIO) const;
//! gives the list of objects with indicated display status //! gives the list of objects with indicated display status
//! Type and signature by Default, <WhichSignature> = -1 means control only on <WhichKind>. //! Type and signature by Default, <WhichSignature> = -1 means control only on <WhichKind>.
Standard_EXPORT void ObjectsByDisplayStatus (const AIS_KindOfInteractive WhichKind, const Standard_Integer WhichSignature, const AIS_DisplayStatus theStatus, AIS_ListOfInteractive& theListOfIO) const; Standard_EXPORT void ObjectsByDisplayStatus (const AIS_KindOfInteractive WhichKind,
const Standard_Integer WhichSignature,
const PrsMgr_DisplayStatus theStatus,
AIS_ListOfInteractive& theListOfIO) const;
//! fills <aListOfIO> with objects of a particular Type and Signature with no consideration of display status. //! fills <aListOfIO> with objects of a particular Type and Signature with no consideration of display status.
//! by Default, <WhichSignature> = -1 means control only on <WhichKind>. //! by Default, <WhichSignature> = -1 means control only on <WhichKind>.
@@ -823,7 +826,10 @@ public: //! @name common properties
Standard_EXPORT void Disconnect (const Handle(AIS_InteractiveObject)& theAssembly, const Handle(AIS_InteractiveObject)& theObjToDisconnect = NULL); Standard_EXPORT void Disconnect (const Handle(AIS_InteractiveObject)& theAssembly, const Handle(AIS_InteractiveObject)& theObjToDisconnect = NULL);
//! Query objects visible or hidden in specified view due to affinity mask. //! Query objects visible or hidden in specified view due to affinity mask.
Standard_EXPORT void ObjectsForView (AIS_ListOfInteractive& theListOfIO, const Handle(V3d_View)& theView, const Standard_Boolean theIsVisibleInView, const AIS_DisplayStatus theStatus = AIS_DS_None) const; Standard_EXPORT void ObjectsForView (AIS_ListOfInteractive& theListOfIO,
const Handle(V3d_View)& theView,
const Standard_Boolean theIsVisibleInView,
const PrsMgr_DisplayStatus theStatus = PrsMgr_DisplayStatus_None) const;
//! Clears all the structures which don't belong to objects displayed at neutral point //! Clears all the structures which don't belong to objects displayed at neutral point
//! only effective when no Local Context is opened... //! only effective when no Local Context is opened...
@@ -1390,7 +1396,7 @@ protected: //! @name internal methods
//! @param theObj [in] the object to change status //! @param theObj [in] the object to change status
//! @param theStatus status, if NULL, unbind object //! @param theStatus status, if NULL, unbind object
Standard_EXPORT void setObjectStatus (const Handle(AIS_InteractiveObject)& theIObj, Standard_EXPORT void setObjectStatus (const Handle(AIS_InteractiveObject)& theIObj,
const AIS_DisplayStatus theStatus, const PrsMgr_DisplayStatus theStatus,
const Standard_Integer theDispyMode, const Standard_Integer theDispyMode,
const Standard_Integer theSelectionMode); const Standard_Integer theSelectionMode);

View File

@@ -247,8 +247,10 @@ void AIS_InteractiveContext::turnOnSubintensity (const Handle(AIS_InteractiveObj
for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjsIter (myObjects); anObjsIter.More(); anObjsIter.Next()) for (AIS_DataMapIteratorOfDataMapOfIOStatus anObjsIter (myObjects); anObjsIter.More(); anObjsIter.Next())
{ {
const Handle(AIS_GlobalStatus)& aStatus = anObjsIter.Value(); const Handle(AIS_GlobalStatus)& aStatus = anObjsIter.Value();
if (aStatus->GraphicStatus() != AIS_DS_Displayed && theIsDisplayedOnly) if (theObject->DisplayStatus() != PrsMgr_DisplayStatus_Displayed && theIsDisplayedOnly)
{
continue; continue;
}
aStatus->SubIntensityOn(); aStatus->SubIntensityOn();
myMainPM->Color (anObjsIter.Key(), aSubStyle, theDispMode != -1 ? theDispMode : aStatus->DisplayMode()); myMainPM->Color (anObjsIter.Key(), aSubStyle, theDispMode != -1 ? theDispMode : aStatus->DisplayMode());
@@ -258,10 +260,14 @@ void AIS_InteractiveContext::turnOnSubintensity (const Handle(AIS_InteractiveObj
{ {
Handle(AIS_GlobalStatus) aStatus; Handle(AIS_GlobalStatus) aStatus;
if (!myObjects.Find (theObject, aStatus)) if (!myObjects.Find (theObject, aStatus))
{
return; return;
}
if (aStatus->GraphicStatus() != AIS_DS_Displayed && theIsDisplayedOnly) if (theObject->DisplayStatus() != PrsMgr_DisplayStatus_Displayed && theIsDisplayedOnly)
{
return; return;
}
aStatus->SubIntensityOn(); aStatus->SubIntensityOn();
myMainPM->Color (theObject, aSubStyle, theDispMode != -1 ? theDispMode : aStatus->DisplayMode()); myMainPM->Color (theObject, aSubStyle, theDispMode != -1 ? theDispMode : aStatus->DisplayMode());

View File

@@ -66,7 +66,7 @@ void AIS_InteractiveContext::SetSelectionModeActive (const Handle(AIS_Interactiv
|| (theMode == -1 || (theMode == -1
&& theActiveFilter == AIS_SelectionModesConcurrency_Single)) && theActiveFilter == AIS_SelectionModesConcurrency_Single))
{ {
if ((*aStat)->GraphicStatus() == AIS_DS_Displayed if (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed
|| theIsForce) || theIsForce)
{ {
if (theMode == -1) if (theMode == -1)
@@ -103,7 +103,7 @@ void AIS_InteractiveContext::SetSelectionModeActive (const Handle(AIS_Interactiv
return; return;
} }
if ((*aStat)->GraphicStatus() == AIS_DS_Displayed if (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed
|| theIsForce) || theIsForce)
{ {
switch (theActiveFilter) switch (theActiveFilter)
@@ -247,7 +247,7 @@ void AIS_InteractiveContext::SubIntensityOff (const Handle(AIS_InteractiveObject
(*aStatus)->SubIntensityOff(); (*aStatus)->SubIntensityOff();
Standard_Boolean toUpdateMain = Standard_False; Standard_Boolean toUpdateMain = Standard_False;
if ((*aStatus)->GraphicStatus() == AIS_DS_Displayed) if (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
myMainPM->Unhighlight (theObj); myMainPM->Unhighlight (theObj);
toUpdateMain = Standard_True; toUpdateMain = Standard_True;

View File

@@ -53,12 +53,11 @@ void AIS_InteractiveContext::SetPolygonOffsets(
setContextToObject (anObj); setContextToObject (anObj);
anObj->SetPolygonOffsets( aMode, aFactor, aUnits ); anObj->SetPolygonOffsets( aMode, aFactor, aUnits );
if ( updateviewer ) { const Handle(AIS_GlobalStatus)* aStatus = updateviewer ? myObjects.Seek (anObj) : NULL;
if( myObjects.IsBound( anObj ) ) { if (aStatus != NULL
Handle(AIS_GlobalStatus) STATUS = myObjects(anObj); && anObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
if ( STATUS->GraphicStatus() == AIS_DS_Displayed ) {
myMainVwr->Update(); myMainVwr->Update();
}
} }
} }

View File

@@ -83,6 +83,15 @@ void AIS_InteractiveObject::SetContext (const Handle(AIS_InteractiveContext)& th
} }
} }
//=======================================================================
//function : SetDisplayStatus
//purpose :
//=======================================================================
void AIS_InteractiveObject::SetDisplayStatus (PrsMgr_DisplayStatus theStatus)
{
myDisplayStatus = theStatus;
}
//======================================================================= //=======================================================================
//function : HasPresentation //function : HasPresentation
//purpose : //purpose :

View File

@@ -126,6 +126,9 @@ protected:
//! may have a presentation dependant of the view of Display. //! may have a presentation dependant of the view of Display.
Standard_EXPORT AIS_InteractiveObject(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d = PrsMgr_TOP_AllView); Standard_EXPORT AIS_InteractiveObject(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d = PrsMgr_TOP_AllView);
//! Set presentation display status.
Standard_EXPORT void SetDisplayStatus (PrsMgr_DisplayStatus theStatus);
protected: protected:
AIS_InteractiveContext* myCTXPtr; //!< pointer to Interactive Context, where object is currently displayed; @sa SetContext() AIS_InteractiveContext* myCTXPtr; //!< pointer to Interactive Context, where object is currently displayed; @sa SetContext()

View File

@@ -41,6 +41,7 @@ AIS_TextLabel::AIS_TextLabel()
myFont ("Courier"), myFont ("Courier"),
myFontAspect (Font_FA_Regular), myFontAspect (Font_FA_Regular),
myHasOrientation3D (Standard_False), myHasOrientation3D (Standard_False),
myHasOwnAnchorPoint (Standard_True),
myHasFlipping (Standard_False) myHasFlipping (Standard_False)
{ {
myDrawer->SetTextAspect (new Prs3d_TextAspect()); myDrawer->SetTextAspect (new Prs3d_TextAspect());
@@ -308,7 +309,12 @@ void AIS_TextLabel::Compute (const Handle(PrsMgr_PresentationManager3d)& /*thePr
gp_Ax2 anOrientation = myOrientation3D; gp_Ax2 anOrientation = myOrientation3D;
anOrientation.SetLocation (aPosition); anOrientation.SetLocation (aPosition);
Prs3d_Text::Draw (Prs3d_Root::CurrentGroup (thePrs), anAsp, myText, myOrientation3D, !myHasFlipping);
Standard_Boolean aHasOwnAnchor = HasOwnAnchorPoint();
if (myHasFlipping)
aHasOwnAnchor = Standard_False; // always not using own anchor if flipping
Prs3d_Text::Draw (Prs3d_Root::CurrentGroup (thePrs), anAsp, myText, myOrientation3D, aHasOwnAnchor);
if (myHasFlipping && isInit) if (myHasFlipping && isInit)
{ {
Prs3d_Root::CurrentGroup (thePrs)->SetFlippingOptions (Standard_False, gp_Ax2()); Prs3d_Root::CurrentGroup (thePrs)->SetFlippingOptions (Standard_False, gp_Ax2());

View File

@@ -90,6 +90,12 @@ public:
Standard_EXPORT Standard_Boolean HasFlipping() const; Standard_EXPORT Standard_Boolean HasFlipping() const;
//! Returns flag if text uses position as point of attach
Standard_Boolean HasOwnAnchorPoint() const { return myHasOwnAnchorPoint; }
//! Set flag if text uses position as point of attach
void SetOwnAnchorPoint (const Standard_Boolean theOwnAnchorPoint) { myHasOwnAnchorPoint = theOwnAnchorPoint; }
//! Define the display type of the text. //! Define the display type of the text.
//! //!
//! TODT_NORMAL Default display. Text only. //! TODT_NORMAL Default display. Text only.
@@ -121,6 +127,7 @@ protected:
Font_FontAspect myFontAspect; Font_FontAspect myFontAspect;
gp_Ax2 myOrientation3D; gp_Ax2 myOrientation3D;
Standard_Boolean myHasOrientation3D; Standard_Boolean myHasOrientation3D;
Standard_Boolean myHasOwnAnchorPoint;
Standard_Boolean myHasFlipping; Standard_Boolean myHasFlipping;
public: public:

View File

@@ -426,6 +426,12 @@ void OpenGl_Text::setupMatrix (const Handle(OpenGl_Context)& theCtx,
{ {
OpenGl_Mat4d aCurrentWorldViewMat; OpenGl_Mat4d aCurrentWorldViewMat;
aCurrentWorldViewMat.Convert (theCtx->WorldViewState.Current()); aCurrentWorldViewMat.Convert (theCtx->WorldViewState.Current());
// apply local transformation
OpenGl_Mat4d aModelWorld;
aModelWorld.Convert (theCtx->ModelWorldState.Current());
aCurrentWorldViewMat = aCurrentWorldViewMat * aModelWorld;
theCtx->WorldViewState.SetCurrent<Standard_Real> (aCurrentWorldViewMat * aModViewMat); theCtx->WorldViewState.SetCurrent<Standard_Real> (aCurrentWorldViewMat * aModViewMat);
} }
else else

View File

@@ -1,3 +1,4 @@
PrsMgr_DisplayStatus.hxx
PrsMgr_ListOfPresentableObjects.hxx PrsMgr_ListOfPresentableObjects.hxx
PrsMgr_ListOfPresentations.hxx PrsMgr_ListOfPresentations.hxx
PrsMgr_PresentableObject.cxx PrsMgr_PresentableObject.cxx

View File

@@ -0,0 +1,32 @@
// Created on: 1996-12-11
// Created by: Robert COUBLANC
// Copyright (c) 1996-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _PrsMgr_DisplayStatus_HeaderFile
#define _PrsMgr_DisplayStatus_HeaderFile
//! To give the display status of an Interactive Object.
enum PrsMgr_DisplayStatus
{
PrsMgr_DisplayStatus_Displayed, //!< the Interactive Object is displayed in the main viewer
PrsMgr_DisplayStatus_Erased, //!< the Interactive Object is hidden in main viewer
PrsMgr_DisplayStatus_None, //!< the Interactive Object is nowhere displayed
// old aliases
AIS_DS_Displayed = PrsMgr_DisplayStatus_Displayed,
AIS_DS_Erased = PrsMgr_DisplayStatus_Erased,
AIS_DS_None = PrsMgr_DisplayStatus_None
};
#endif // _PrsMgr_DisplayStatus_HeaderFile

View File

@@ -48,6 +48,7 @@ PrsMgr_PresentableObject::PrsMgr_PresentableObject (const PrsMgr_TypeOfPresentat
: myParent (NULL), : myParent (NULL),
myDrawer (new Prs3d_Drawer()), myDrawer (new Prs3d_Drawer()),
myTypeOfPresentation3d (theType), myTypeOfPresentation3d (theType),
myDisplayStatus (PrsMgr_DisplayStatus_None),
// //
myCurrentFacingModel (Aspect_TOFM_BOTH_SIDE), myCurrentFacingModel (Aspect_TOFM_BOTH_SIDE),
myOwnWidth (0.0f), myOwnWidth (0.0f),

View File

@@ -28,6 +28,7 @@
#include <PrsMgr_ListOfPresentableObjects.hxx> #include <PrsMgr_ListOfPresentableObjects.hxx>
#include <PrsMgr_Presentation.hxx> #include <PrsMgr_Presentation.hxx>
#include <PrsMgr_Presentations.hxx> #include <PrsMgr_Presentations.hxx>
#include <PrsMgr_DisplayStatus.hxx>
#include <PrsMgr_TypeOfPresentation3d.hxx> #include <PrsMgr_TypeOfPresentation3d.hxx>
#include <TColStd_ListOfInteger.hxx> #include <TColStd_ListOfInteger.hxx>
@@ -161,6 +162,9 @@ public:
//! Set type of presentation. //! Set type of presentation.
Standard_EXPORT void SetTypeOfPresentation (const PrsMgr_TypeOfPresentation3d theType); Standard_EXPORT void SetTypeOfPresentation (const PrsMgr_TypeOfPresentation3d theType);
//! Return presentation display status; PrsMgr_DisplayStatus_None by default.
PrsMgr_DisplayStatus DisplayStatus() const { return myDisplayStatus; }
public: //! @name presentation attributes public: //! @name presentation attributes
//! Returns the attributes settings. //! Returns the attributes settings.
@@ -570,6 +574,7 @@ protected:
PrsMgr_ListOfPresentableObjects myChildren; //!< list of children PrsMgr_ListOfPresentableObjects myChildren; //!< list of children
gp_GTrsf myInvTransformation; //!< inversion of absolute transformation (combined parents + local transformations) gp_GTrsf myInvTransformation; //!< inversion of absolute transformation (combined parents + local transformations)
PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d; //!< presentation type PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d; //!< presentation type
PrsMgr_DisplayStatus myDisplayStatus; //!< presentation display status
Aspect_TypeOfFacingModel myCurrentFacingModel; //!< current facing model Aspect_TypeOfFacingModel myCurrentFacingModel; //!< current facing model
Standard_ShortReal myOwnWidth; //!< custom width value Standard_ShortReal myOwnWidth; //!< custom width value

View File

@@ -73,7 +73,11 @@ void PrsMgr_PresentationManager::Display (const Handle(PrsMgr_PresentableObject)
{ {
for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next()) for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next())
{ {
Display(anIter.Value(), theMode); const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value();
if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
Display(anIter.Value(), theMode);
}
} }
} }
} }
@@ -157,7 +161,12 @@ void PrsMgr_PresentationManager::SetVisibility (const Handle(PrsMgr_PresentableO
{ {
for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next()) for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next())
{ {
SetVisibility(anIter.Value(), theMode, theValue); const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value();
if (!theValue
|| aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
SetVisibility (anIter.Value(), theMode, theValue);
}
} }
} }
if (!thePrsObj->HasOwnPresentations()) if (!thePrsObj->HasOwnPresentations())
@@ -614,7 +623,11 @@ void PrsMgr_PresentationManager::Color (const Handle(PrsMgr_PresentableObject)&
{ {
for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next()) for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next())
{ {
Color(anIter.Value(), theStyle, theMode, NULL, theImmediateStructLayerId); const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value();
if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
Color (aChild, theStyle, theMode, NULL, theImmediateStructLayerId);
}
} }
} }
if (!thePrsObj->HasOwnPresentations()) if (!thePrsObj->HasOwnPresentations())

View File

@@ -3320,17 +3320,17 @@ static void setDimObjectToXCAF(const Handle(Standard_Transient)& theEnt,
if (anUnit.IsNull()) continue; if (anUnit.IsNull()) continue;
if (!(anUnit.CaseNum(anUnit.Value()) == 1)) continue; if (!(anUnit.CaseNum(anUnit.Value()) == 1)) continue;
Handle(StepBasic_NamedUnit) NU = anUnit.NamedUnit(); Handle(StepBasic_NamedUnit) NU = anUnit.NamedUnit();
STEPConstruct_UnitContext anUnitCtx; STEPConstruct_UnitContext anUnitCtxUpperBound;
anUnitCtx.ComputeFactors(NU); anUnitCtxUpperBound.ComputeFactors(NU);
if (aMWU->IsKind(STANDARD_TYPE(StepBasic_LengthMeasureWithUnit)) || if (aMWU->IsKind(STANDARD_TYPE(StepBasic_PlaneAngleMeasureWithUnit)) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnitAndQRI)))
{
aVal = aVal * anUnitCtx.LengthFactor();
}
else if (aMWU->IsKind(STANDARD_TYPE(StepBasic_PlaneAngleMeasureWithUnit)) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndPlaneAngleMeasureWithUnitAndQRI))) aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndPlaneAngleMeasureWithUnitAndQRI)))
{ {
convertAngleValue(anUnitCtx, aVal); convertAngleValue(anUnitCtxUpperBound, aVal);
}
else if ((aMWU->IsKind(STANDARD_TYPE(StepBasic_MeasureWithUnit)) && anUnitCtxUpperBound.LengthFactor() > 0.) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnitAndQRI)))
{
aVal = aVal * anUnitCtxUpperBound.LengthFactor();
} }
aDim3 = aVal; aDim3 = aVal;
@@ -3356,16 +3356,17 @@ static void setDimObjectToXCAF(const Handle(Standard_Transient)& theEnt,
if (anUnit.IsNull()) continue; if (anUnit.IsNull()) continue;
if (!(anUnit.CaseNum(anUnit.Value()) == 1)) continue; if (!(anUnit.CaseNum(anUnit.Value()) == 1)) continue;
NU = anUnit.NamedUnit(); NU = anUnit.NamedUnit();
anUnitCtx.ComputeFactors(NU); STEPConstruct_UnitContext anUnitCtxLowerBound;
if (aMWU->IsKind(STANDARD_TYPE(StepBasic_LengthMeasureWithUnit)) || anUnitCtxLowerBound.ComputeFactors(NU);
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnitAndQRI))) if (aMWU->IsKind(STANDARD_TYPE(StepBasic_PlaneAngleMeasureWithUnit)) ||
{
aVal = aVal * anUnitCtx.LengthFactor();
}
else if (aMWU->IsKind(STANDARD_TYPE(StepBasic_PlaneAngleMeasureWithUnit)) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndPlaneAngleMeasureWithUnitAndQRI))) aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndPlaneAngleMeasureWithUnitAndQRI)))
{ {
convertAngleValue(anUnitCtx, aVal); convertAngleValue(anUnitCtxLowerBound, aVal);
}
else if ((aMWU->IsKind(STANDARD_TYPE(StepBasic_MeasureWithUnit)) && anUnitCtxLowerBound.LengthFactor() > 0.) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnitAndQRI)))
{
aVal = aVal * anUnitCtxLowerBound.LengthFactor();
} }
aDim2 = Abs(aVal); aDim2 = Abs(aVal);
} }
@@ -4354,8 +4355,10 @@ Standard_Boolean STEPCAFControl_Reader::ReadViews(const Handle(XSControl_WorkSes
for (; anIter.More(); anIter.Next()) { for (; anIter.More(); anIter.Next()) {
if (anIter.Value()->IsKind(STANDARD_TYPE(StepRepr_MappedItem))) { if (anIter.Value()->IsKind(STANDARD_TYPE(StepRepr_MappedItem))) {
Handle(StepRepr_MappedItem) anItem = Handle(StepRepr_MappedItem)::DownCast(anIter.Value()); Handle(StepRepr_MappedItem) anItem = Handle(StepRepr_MappedItem)::DownCast(anIter.Value());
Handle(StepRepr_Representation) aRepr = anItem->MappingSource()->MappedRepresentation(); if (Handle(StepRepr_Representation) aRepr = anItem->MappingSource()->MappedRepresentation())
collectViewShapes(theWS, theDoc, aRepr, aShapes); {
collectViewShapes(theWS, theDoc, aRepr, aShapes);
}
} }
else if (anIter.Value()->IsKind(STANDARD_TYPE(StepVisual_AnnotationOccurrence)) || else if (anIter.Value()->IsKind(STANDARD_TYPE(StepVisual_AnnotationOccurrence)) ||
anIter.Value()->IsKind(STANDARD_TYPE(StepVisual_DraughtingCallout))) { anIter.Value()->IsKind(STANDARD_TYPE(StepVisual_DraughtingCallout))) {

View File

@@ -112,7 +112,11 @@ void SelectMgr_SelectionManager::Activate (const Handle(SelectMgr_SelectableObje
for (PrsMgr_ListOfPresentableObjectsIter anChildIter (theObject->Children()); anChildIter.More(); anChildIter.Next()) for (PrsMgr_ListOfPresentableObjectsIter anChildIter (theObject->Children()); anChildIter.More(); anChildIter.Next())
{ {
Activate (Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value()), theMode); Handle(SelectMgr_SelectableObject) aChild = Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value());
if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
Activate (aChild, theMode);
}
} }
if (!theObject->HasOwnPresentations()) if (!theObject->HasOwnPresentations())
return; return;
@@ -185,9 +189,12 @@ void SelectMgr_SelectionManager::Activate (const Handle(SelectMgr_SelectableObje
void SelectMgr_SelectionManager::Deactivate (const Handle(SelectMgr_SelectableObject)& theObject, void SelectMgr_SelectionManager::Deactivate (const Handle(SelectMgr_SelectableObject)& theObject,
const Standard_Integer theMode) const Standard_Integer theMode)
{ {
for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next()) if (theObject->ToPropagateVisualState())
{ {
Deactivate (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theMode); for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter(theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
{
Deactivate(Handle(SelectMgr_SelectableObject)::DownCast(anChildrenIter.Value()), theMode);
}
} }
if (!theObject->HasOwnPresentations()) if (!theObject->HasOwnPresentations())
{ {

View File

@@ -2542,6 +2542,15 @@ static int VDrawText (Draw_Interpretor& theDI,
{ {
aTextPrs->SetFlipping (Standard_True); aTextPrs->SetFlipping (Standard_True);
} }
else if (aParam == "-ownanchor")
{
if (++anArgIt >= theArgsNb)
{
std::cout << "Error: wrong number of values for parameter '" << aParam.ToCString() << "'.\n";
return 1;
}
aTextPrs->SetOwnAnchorPoint (Draw::Atoi (theArgVec[anArgIt]) == 1);
}
else if (aParam == "-disptype" else if (aParam == "-disptype"
|| aParam == "-displaytype") || aParam == "-displaytype")
{ {
@@ -6459,6 +6468,7 @@ void ViewerTest::ObjectCommands(Draw_Interpretor& theCommands)
"\n\t\t: [-noupdate]" "\n\t\t: [-noupdate]"
"\n\t\t: [-plane NormX NormY NormZ DirX DirY DirZ]" "\n\t\t: [-plane NormX NormY NormZ DirX DirY DirZ]"
"\n\t\t: [-flipping]" "\n\t\t: [-flipping]"
"\n\t\t: [-ownanchor {0|1}=1]"
"\n\t\t: Display text label at specified position.", "\n\t\t: Display text label at specified position.",
__FILE__, VDrawText, group); __FILE__, VDrawText, group);

15
tests/bugs/step/bug31786 Normal file
View File

@@ -0,0 +1,15 @@
puts "======="
puts "0031786: Data Exchange - After the importing STEP file the free shape is empty"
puts "======="
puts ""
pload ALL
ReadStep D [locate_data_file bug31786_InternalUseOnly_714-236074-105_NXMBD_A_PNL_SIDE_ENCL_AC_DC_242.stp]
XGetOneShape result D
vinit
vdisplay result
vfit
vdump $imagedir/${casename}.png

33
tests/bugs/step/bug33095 Normal file
View File

@@ -0,0 +1,33 @@
puts "======="
puts "0033095: Data Exchange, Step Import - Wrong PMI values when loading a *.stp file in m"
puts "======="
pload OCAF
catch { Close D_mm }
catch { Close D_m }
# Read file in mm
param xstep.cascade.unit MM
ReadStep D_mm [locate_data_file bug33095_cad_with_pmi.stp]
set plusMinusTol_mm [XGetDimensionPlusMinusTol D_mm 0:1:4:77]
# Read file in m
param xstep.cascade.unit M
ReadStep D_m [locate_data_file bug33095_cad_with_pmi.stp]
set plusMinusTol_m [XGetDimensionPlusMinusTol D_m 0:1:4:77]
# Checking
regexp {lower +([-0-9.+eE]+) +upper +([-0-9.+eE]+)} $plusMinusTol_m full lower_m upper_m
regexp {lower +([-0-9.+eE]+) +upper +([-0-9.+eE]+)} $plusMinusTol_mm full lower_mm upper_mm
set lower_m_to_mm [expr {$lower_m * 1000}]
set upper_m_to_mm [expr {$upper_m * 1000}]
if {[expr {abs($lower_m_to_mm - $lower_mm)}] > 1e-2} {
puts "Error: incorrect scaling lower toleranse value"
}
if {[expr {abs($upper_m_to_mm - $upper_mm)}] > 1e-2} {
puts "Error: incorrect scaling upper toleranse value"
}
param xstep.cascade.unit MM

22
tests/bugs/vis/bug31794 Normal file
View File

@@ -0,0 +1,22 @@
puts "============"
puts "0031794: Visualization - Highlighting of AIS_Shape works incorrectly when AddChild() used"
puts "============"
puts ""
pload MODELING VISUALIZATION
vinit View1
box b 10 10 10
box p1 -100 -100 0 200 200 0 -preview
box p2 100 -100 0 200 200 0 -preview
vdisplay b -dispMode 1
vdisplay p1 p2 -dispMode 1 -highMode 1
vfit
vselmode b 0 0
verase p1
vchild b -add p1
vchild b -add p2
vselmode b 0 1
vmoveto 100 200
if {[vreadpixel 100 200 -rgb -name] != "BLACK"} { puts "Error" }
vdump ${imagedir}/${casename}.png

View File

@@ -12,45 +12,45 @@ set ref_data {
0:1:1:2:2 Shape.5 0:1:1:2:2 Shape.5
0:1:4:1 GeomTolerance.5.1 ( N "Feature Control Frame (4)" T 12 TV 0, V 0.254 ) 0:1:4:1 GeomTolerance.5.1 ( N "Feature Control Frame (4)" T 12 TV 0, V 0.254 )
0:1:1:2:7 Shape.10 0:1:1:2:7 Shape.10
0:1:4:6 Dimension.10.1 ( N "linear distance" T 2, V 20.827999999999996, VL 2.54, VU 2.54, P 0 ) 0:1:4:6 Dimension.10.1 ( N "linear distance" T 2, V 20.827999999999996, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:1:2:19 Shape.22 0:1:1:2:19 Shape.22
0:1:4:39 Dimension.22.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:39 Dimension.22.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:35 GeomTolerance.22.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:35 GeomTolerance.22.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:36 Datum.22.1.1 ( N "Feature Control Frame (40)" ) 0:1:4:36 Datum.22.1.1 ( N "Feature Control Frame (40)" )
0:1:4:37 Datum.22.1.2 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:37 Datum.22.1.2 ( N "Feature Control Frame (40)", M 15 )
0:1:4:38 Datum.22.1.3 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:38 Datum.22.1.3 ( N "Feature Control Frame (40)", M 15 )
0:1:1:2:20 Shape.23 0:1:1:2:20 Shape.23
0:1:4:39 Dimension.23.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:39 Dimension.23.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:35 GeomTolerance.23.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:35 GeomTolerance.23.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:36 Datum.23.1.1 ( N "Feature Control Frame (40)" ) 0:1:4:36 Datum.23.1.1 ( N "Feature Control Frame (40)" )
0:1:4:37 Datum.23.1.2 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:37 Datum.23.1.2 ( N "Feature Control Frame (40)", M 15 )
0:1:4:38 Datum.23.1.3 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:38 Datum.23.1.3 ( N "Feature Control Frame (40)", M 15 )
0:1:1:2:21 Shape.24 0:1:1:2:21 Shape.24
0:1:4:39 Dimension.24.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:39 Dimension.24.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:35 GeomTolerance.24.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:35 GeomTolerance.24.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:36 Datum.24.1.1 ( N "Feature Control Frame (40)" ) 0:1:4:36 Datum.24.1.1 ( N "Feature Control Frame (40)" )
0:1:4:37 Datum.24.1.2 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:37 Datum.24.1.2 ( N "Feature Control Frame (40)", M 15 )
0:1:4:38 Datum.24.1.3 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:38 Datum.24.1.3 ( N "Feature Control Frame (40)", M 15 )
0:1:1:2:22 Shape.25 0:1:1:2:22 Shape.25
0:1:4:39 Dimension.25.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:39 Dimension.25.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:35 GeomTolerance.25.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:35 GeomTolerance.25.1 ( N "Feature Control Frame (40)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:36 Datum.25.1.1 ( N "Feature Control Frame (40)" ) 0:1:4:36 Datum.25.1.1 ( N "Feature Control Frame (40)" )
0:1:4:37 Datum.25.1.2 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:37 Datum.25.1.2 ( N "Feature Control Frame (40)", M 15 )
0:1:4:38 Datum.25.1.3 ( N "Feature Control Frame (40)", M 15 ) 0:1:4:38 Datum.25.1.3 ( N "Feature Control Frame (40)", M 15 )
0:1:1:2:28 Shape.31 0:1:1:2:28 Shape.31
0:1:4:6 Dimension.31.1 ( N "linear distance" T 2, V 20.827999999999996, VL 2.54, VU 2.54, P 0 ) 0:1:4:6 Dimension.31.1 ( N "linear distance" T 2, V 20.827999999999996, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:2 GeomTolerance.31.1 ( N "Feature Control Frame (24)" T 12 TV 0, V 0.76200000000000001 ) 0:1:4:2 GeomTolerance.31.1 ( N "Feature Control Frame (24)" T 12 TV 0, V 0.76200000000000001 )
0:1:4:3 Datum.31.1.1 ( N "Feature Control Frame (24)" ) 0:1:4:3 Datum.31.1.1 ( N "Feature Control Frame (24)" )
0:1:4:4 Datum.31.1.2 ( N "Feature Control Frame (24)" ) 0:1:4:4 Datum.31.1.2 ( N "Feature Control Frame (24)" )
0:1:4:5 Datum.31.1.3 ( N "Feature Control Frame (24)" ) 0:1:4:5 Datum.31.1.3 ( N "Feature Control Frame (24)" )
0:1:1:2:39 Shape.42 0:1:1:2:39 Shape.42
0:1:4:14 Dimension.42.1 ( N "diameter" T 15, V 50.799999999999997, VL 2.54, VU 2.54, P 0 ) 0:1:4:14 Dimension.42.1 ( N "diameter" T 15, V 50.799999999999997, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:15 GeomTolerance.42.1 ( N "Feature Control Frame (16)" T 10 TV 1, V 1.524 ) 0:1:4:15 GeomTolerance.42.1 ( N "Feature Control Frame (16)" T 10 TV 1, V 1.524 )
0:1:4:16 Datum.42.1.1 ( N "Feature Control Frame (16)" ) 0:1:4:16 Datum.42.1.1 ( N "Feature Control Frame (16)" )
0:1:4:17 Datum.42.1.2 ( N "Feature Control Frame (16)" ) 0:1:4:17 Datum.42.1.2 ( N "Feature Control Frame (16)" )
0:1:4:18 Datum.42.1.3 ( N "Feature Control Frame (16)" ) 0:1:4:18 Datum.42.1.3 ( N "Feature Control Frame (16)" )
0:1:1:2:40 Shape.43 0:1:1:2:40 Shape.43
0:1:4:14 Dimension.43.1 ( N "diameter" T 15, V 50.799999999999997, VL 2.54, VU 2.54, P 0 ) 0:1:4:14 Dimension.43.1 ( N "diameter" T 15, V 50.799999999999997, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:15 GeomTolerance.43.1 ( N "Feature Control Frame (16)" T 10 TV 1, V 1.524 ) 0:1:4:15 GeomTolerance.43.1 ( N "Feature Control Frame (16)" T 10 TV 1, V 1.524 )
0:1:4:16 Datum.43.1.1 ( N "Feature Control Frame (16)" ) 0:1:4:16 Datum.43.1.1 ( N "Feature Control Frame (16)" )
0:1:4:17 Datum.43.1.2 ( N "Feature Control Frame (16)" ) 0:1:4:17 Datum.43.1.2 ( N "Feature Control Frame (16)" )
@@ -58,7 +58,7 @@ set ref_data {
0:1:1:2:48 Shape.51 0:1:1:2:48 Shape.51
0:1:4:30 Dimension.51.1 ( N "linear distance" T 2, V 19.049999999999997, P 0 ) 0:1:4:30 Dimension.51.1 ( N "linear distance" T 2, V 19.049999999999997, P 0 )
0:1:1:2:49 Shape.52 0:1:1:2:49 Shape.52
0:1:4:19 Dimension.52.1 ( N "diameter" T 15, V 38.099999999999994, VL 2.54, VU 2.54, P 0 ) 0:1:4:19 Dimension.52.1 ( N "diameter" T 15, V 38.099999999999994, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:20 GeomTolerance.52.1 ( N "Feature Control Frame (18)" T 10 TV 1, V 2.032 ) 0:1:4:20 GeomTolerance.52.1 ( N "Feature Control Frame (18)" T 10 TV 1, V 2.032 )
0:1:4:21 Datum.52.1.1 ( N "Feature Control Frame (18)" ) 0:1:4:21 Datum.52.1.1 ( N "Feature Control Frame (18)" )
0:1:4:22 Datum.52.1.2 ( N "Feature Control Frame (18)" ) 0:1:4:22 Datum.52.1.2 ( N "Feature Control Frame (18)" )
@@ -68,7 +68,7 @@ set ref_data {
0:1:4:27 Datum.52.2.2 ( N "Feature Control Frame (20)" ) 0:1:4:27 Datum.52.2.2 ( N "Feature Control Frame (20)" )
0:1:4:28 Datum.52.2.3 ( N "Feature Control Frame (20)" ) 0:1:4:28 Datum.52.2.3 ( N "Feature Control Frame (20)" )
0:1:1:2:50 Shape.53 0:1:1:2:50 Shape.53
0:1:4:19 Dimension.53.1 ( N "diameter" T 15, V 38.099999999999994, VL 2.54, VU 2.54, P 0 ) 0:1:4:19 Dimension.53.1 ( N "diameter" T 15, V 38.099999999999994, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:24 Dimension.53.2 ( N "linear distance" T 2, V 38.099999999999994, P 0 ) 0:1:4:24 Dimension.53.2 ( N "linear distance" T 2, V 38.099999999999994, P 0 )
0:1:4:20 GeomTolerance.53.1 ( N "Feature Control Frame (18)" T 10 TV 1, V 2.032 ) 0:1:4:20 GeomTolerance.53.1 ( N "Feature Control Frame (18)" T 10 TV 1, V 2.032 )
0:1:4:21 Datum.53.1.1 ( N "Feature Control Frame (18)" ) 0:1:4:21 Datum.53.1.1 ( N "Feature Control Frame (18)" )
@@ -79,49 +79,49 @@ set ref_data {
0:1:4:27 Datum.53.2.2 ( N "Feature Control Frame (20)" ) 0:1:4:27 Datum.53.2.2 ( N "Feature Control Frame (20)" )
0:1:4:28 Datum.53.2.3 ( N "Feature Control Frame (20)" ) 0:1:4:28 Datum.53.2.3 ( N "Feature Control Frame (20)" )
0:1:1:2:51 Shape.54 0:1:1:2:51 Shape.54
0:1:4:29 Dimension.54.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.54.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.54.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.54.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.54.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.54.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.54.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.54.1.2 ( N "Feature Control Frame (36)" )
0:1:4:34 Datum.54.1.3 ( N "Feature Control Frame (36)" ) 0:1:4:34 Datum.54.1.3 ( N "Feature Control Frame (36)" )
0:1:1:2:52 Shape.55 0:1:1:2:52 Shape.55
0:1:4:29 Dimension.55.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.55.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.55.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.55.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.55.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.55.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.55.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.55.1.2 ( N "Feature Control Frame (36)" )
0:1:4:34 Datum.55.1.3 ( N "Feature Control Frame (36)" ) 0:1:4:34 Datum.55.1.3 ( N "Feature Control Frame (36)" )
0:1:1:2:53 Shape.56 0:1:1:2:53 Shape.56
0:1:4:29 Dimension.56.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.56.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.56.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.56.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.56.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.56.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.56.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.56.1.2 ( N "Feature Control Frame (36)" )
0:1:4:34 Datum.56.1.3 ( N "Feature Control Frame (36)" ) 0:1:4:34 Datum.56.1.3 ( N "Feature Control Frame (36)" )
0:1:1:2:54 Shape.57 0:1:1:2:54 Shape.57
0:1:4:29 Dimension.57.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.57.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.57.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.57.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.57.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.57.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.57.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.57.1.2 ( N "Feature Control Frame (36)" )
0:1:4:34 Datum.57.1.3 ( N "Feature Control Frame (36)" ) 0:1:4:34 Datum.57.1.3 ( N "Feature Control Frame (36)" )
0:1:1:2:55 Shape.58 0:1:1:2:55 Shape.58
0:1:4:29 Dimension.58.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.58.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.58.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.58.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.58.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.58.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.58.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.58.1.2 ( N "Feature Control Frame (36)" )
0:1:4:34 Datum.58.1.3 ( N "Feature Control Frame (36)" ) 0:1:4:34 Datum.58.1.3 ( N "Feature Control Frame (36)" )
0:1:1:2:56 Shape.59 0:1:1:2:56 Shape.59
0:1:4:29 Dimension.59.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.59.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.59.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.59.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.59.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.59.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.59.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.59.1.2 ( N "Feature Control Frame (36)" )
0:1:4:34 Datum.59.1.3 ( N "Feature Control Frame (36)" ) 0:1:4:34 Datum.59.1.3 ( N "Feature Control Frame (36)" )
0:1:1:2:57 Shape.60 0:1:1:2:57 Shape.60
0:1:4:29 Dimension.60.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.60.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.60.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.60.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.60.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.60.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.60.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.60.1.2 ( N "Feature Control Frame (36)" )
0:1:4:34 Datum.60.1.3 ( N "Feature Control Frame (36)" ) 0:1:4:34 Datum.60.1.3 ( N "Feature Control Frame (36)" )
0:1:1:2:58 Shape.61 0:1:1:2:58 Shape.61
0:1:4:29 Dimension.61.1 ( N "diameter" T 15, V 15.875, VL 2.54, VU 2.54, P 0 ) 0:1:4:29 Dimension.61.1 ( N "diameter" T 15, V 15.875, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:31 GeomTolerance.61.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 ) 0:1:4:31 GeomTolerance.61.1 ( N "Feature Control Frame (36)" T 10 TV 1, V 1.27, MR 1 )
0:1:4:32 Datum.61.1.1 ( N "Feature Control Frame (36)" ) 0:1:4:32 Datum.61.1.1 ( N "Feature Control Frame (36)" )
0:1:4:33 Datum.61.1.2 ( N "Feature Control Frame (36)" ) 0:1:4:33 Datum.61.1.2 ( N "Feature Control Frame (36)" )
@@ -137,28 +137,28 @@ set ref_data {
0:1:1:2:129 Shape.132 0:1:1:2:129 Shape.132
0:1:4:1 GeomTolerance.132.1 ( N "Feature Control Frame (4)" T 12 TV 0, V 0.254 ) 0:1:4:1 GeomTolerance.132.1 ( N "Feature Control Frame (4)" T 12 TV 0, V 0.254 )
0:1:1:2:134 Shape.137 0:1:1:2:134 Shape.137
0:1:4:40 Dimension.137.1 ( N "diameter" T 15, V 27.050999999999998, VL 2.54, VU 2.54, P 0 ) 0:1:4:40 Dimension.137.1 ( N "diameter" T 15, V 27.050999999999998, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:41 GeomTolerance.137.1 ( N "Feature Control Frame (30)" T 9 TV 1, V 0.254 ) 0:1:4:41 GeomTolerance.137.1 ( N "Feature Control Frame (30)" T 9 TV 1, V 0.254 )
0:1:4:42 Datum.137.1.1 ( N "Feature Control Frame (30)" ) 0:1:4:42 Datum.137.1.1 ( N "Feature Control Frame (30)" )
0:1:1:2:135 Shape.138 0:1:1:2:135 Shape.138
0:1:4:40 Dimension.138.1 ( N "diameter" T 15, V 27.050999999999998, VL 2.54, VU 2.54, P 0 ) 0:1:4:40 Dimension.138.1 ( N "diameter" T 15, V 27.050999999999998, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:41 GeomTolerance.138.1 ( N "Feature Control Frame (30)" T 9 TV 1, V 0.254 ) 0:1:4:41 GeomTolerance.138.1 ( N "Feature Control Frame (30)" T 9 TV 1, V 0.254 )
0:1:4:42 Datum.138.1.1 ( N "Feature Control Frame (30)" ) 0:1:4:42 Datum.138.1.1 ( N "Feature Control Frame (30)" )
0:1:1:2:153 Shape.156 0:1:1:2:153 Shape.156
0:1:4:7 Dimension.156.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:7 Dimension.156.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:9 GeomTolerance.156.1 ( N "Feature Control Frame (10)" T 9 TV 1, V 0.254 ) 0:1:4:9 GeomTolerance.156.1 ( N "Feature Control Frame (10)" T 9 TV 1, V 0.254 )
0:1:4:10 Datum.156.1.1 ( N "Feature Control Frame (10)" ) 0:1:4:10 Datum.156.1.1 ( N "Feature Control Frame (10)" )
0:1:1:2:154 Shape.157 0:1:1:2:154 Shape.157
0:1:4:7 Dimension.157.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:7 Dimension.157.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:9 GeomTolerance.157.1 ( N "Feature Control Frame (10)" T 9 TV 1, V 0.254 ) 0:1:4:9 GeomTolerance.157.1 ( N "Feature Control Frame (10)" T 9 TV 1, V 0.254 )
0:1:4:10 Datum.157.1.1 ( N "Feature Control Frame (10)" ) 0:1:4:10 Datum.157.1.1 ( N "Feature Control Frame (10)" )
0:1:1:2:155 Shape.158 0:1:1:2:155 Shape.158
0:1:4:8 Dimension.158.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:8 Dimension.158.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:11 GeomTolerance.158.1 ( N "Feature Control Frame (11)" T 10 TV 1, V 0.50800000000000001 ) 0:1:4:11 GeomTolerance.158.1 ( N "Feature Control Frame (11)" T 10 TV 1, V 0.50800000000000001 )
0:1:4:12 Datum.158.1.1 ( N "Feature Control Frame (11)" ) 0:1:4:12 Datum.158.1.1 ( N "Feature Control Frame (11)" )
0:1:4:13 Datum.158.1.2 ( N "Feature Control Frame (11)" ) 0:1:4:13 Datum.158.1.2 ( N "Feature Control Frame (11)" )
0:1:1:2:156 Shape.159 0:1:1:2:156 Shape.159
0:1:4:8 Dimension.159.1 ( N "diameter" T 15, V 11.1252, VL 2.54, VU 2.54, P 0 ) 0:1:4:8 Dimension.159.1 ( N "diameter" T 15, V 11.1252, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:4:11 GeomTolerance.159.1 ( N "Feature Control Frame (11)" T 10 TV 1, V 0.50800000000000001 ) 0:1:4:11 GeomTolerance.159.1 ( N "Feature Control Frame (11)" T 10 TV 1, V 0.50800000000000001 )
0:1:4:12 Datum.159.1.1 ( N "Feature Control Frame (11)" ) 0:1:4:12 Datum.159.1.1 ( N "Feature Control Frame (11)" )
0:1:4:13 Datum.159.1.2 ( N "Feature Control Frame (11)" ) 0:1:4:13 Datum.159.1.2 ( N "Feature Control Frame (11)" )

View File

@@ -10,9 +10,9 @@ set ref_data {
NbOfDatumTarget : 2 NbOfDatumTarget : 2
0:1:1:2:2 Shape.5 0:1:1:2:2 Shape.5
0:1:4:14 Dimension.5.1 ( N "linear distance" T 2, V 127, VL 2.54, VU 2.54, P 0 ) 0:1:4:14 Dimension.5.1 ( N "linear distance" T 2, V 127, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:1:2:8 Shape.11 0:1:1:2:8 Shape.11
0:1:4:14 Dimension.11.1 ( N "linear distance" T 2, V 127, VL 2.54, VU 2.54, P 0 ) 0:1:4:14 Dimension.11.1 ( N "linear distance" T 2, V 127, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:1:2:9 Shape.12 0:1:1:2:9 Shape.12
0:1:4:1 GeomTolerance.12.1 ( N "Feature Control Frame (11)" T 13 TV 0, V 0.127 ) 0:1:4:1 GeomTolerance.12.1 ( N "Feature Control Frame (11)" T 13 TV 0, V 0.127 )
0:1:1:2:66 Shape.69 0:1:1:2:66 Shape.69
@@ -57,9 +57,9 @@ set ref_data {
0:1:4:7 GeomTolerance.203.1 ( N "Feature Control Frame (4)" T 2 TV 0, V 0.050799999999999998 ) 0:1:4:7 GeomTolerance.203.1 ( N "Feature Control Frame (4)" T 2 TV 0, V 0.050799999999999998 )
0:1:4:8 Datum.203.1.1 ( N "Feature Control Frame (4)" ) 0:1:4:8 Datum.203.1.1 ( N "Feature Control Frame (4)" )
0:1:1:2:206 Shape.209 0:1:1:2:206 Shape.209
0:1:4:11 Dimension.209.1 ( N "linear distance" T 2, V 254, VL 2.54, VU 2.54, P 0 ) 0:1:4:11 Dimension.209.1 ( N "linear distance" T 2, V 254, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:1:2:207 Shape.210 0:1:1:2:207 Shape.210
0:1:4:11 Dimension.210.1 ( N "linear distance" T 2, V 254, VL 2.54, VU 2.54, P 0 ) 0:1:4:11 Dimension.210.1 ( N "linear distance" T 2, V 254, VL 64.515999999999991, VU 64.515999999999991, P 0 )
0:1:1:3:1 Shape.211 0:1:1:3:1 Shape.211
0:1:4:1 GeomTolerance.211.1 ( N "Feature Control Frame (11)" T 13 TV 0, V 0.127 ) 0:1:4:1 GeomTolerance.211.1 ( N "Feature Control Frame (11)" T 13 TV 0, V 0.127 )
} }