1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

Compare commits

..

1 Commits

31 changed files with 213 additions and 347 deletions

View File

@@ -17,9 +17,12 @@
#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.
typedef PrsMgr_DisplayStatus AIS_DisplayStatus; enum 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,6 +23,7 @@
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),
@@ -30,15 +31,18 @@ mySubInt(Standard_False)
{ {
} }
AIS_GlobalStatus::AIS_GlobalStatus (const Standard_Integer theDMode, AIS_GlobalStatus::AIS_GlobalStatus(const AIS_DisplayStatus DS,
const Standard_Integer theSMode, const Standard_Integer DMode,
const Standard_Integer theLayer): const Standard_Integer SMode,
myDispMode (theDMode), const Standard_Boolean /*ishilighted*/,
myLayerIndex (theLayer), const Standard_Integer Layer):
myIsHilit (Standard_False), myStatus(DS),
mySubInt (Standard_False) myDispMode(DMode),
myLayerIndex(Layer),
myIsHilit(Standard_False),
mySubInt(Standard_False)
{ {
mySelModes.Append (theSMode); mySelModes.Append(SMode);
} }
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 Standard_Integer theDispMode, 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);
const Standard_Integer theSelMode,
const Standard_Integer theLayerIndex = 0); void SetGraphicStatus (const AIS_DisplayStatus theStatus) { myStatus = theStatus; }
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,7 +74,9 @@ 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; }
@@ -93,6 +95,7 @@ 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.Key()->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) if (anObjIter.Value()->GraphicStatus() == AIS_DS_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, PrsMgr_DisplayStatus_Displayed, theListOfIO); ObjectsByDisplayStatus (theKind, theSign, AIS_DS_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 (PrsMgr_DisplayStatus_Erased, theListOfIO); ObjectsByDisplayStatus (AIS_DS_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, PrsMgr_DisplayStatus_Erased, theListOfIO); ObjectsByDisplayStatus (theKind, theSign, AIS_DS_Erased, theListOfIO);
} }
//======================================================================= //=======================================================================
//function : ObjectsByDisplayStatus //function : ObjectsByDisplayStatus
//purpose : //purpose :
//======================================================================= //=======================================================================
void AIS_InteractiveContext::ObjectsByDisplayStatus (const PrsMgr_DisplayStatus theStatus, void AIS_InteractiveContext::ObjectsByDisplayStatus (const AIS_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.Key()->DisplayStatus() == theStatus) if (anObjIter.Value()->GraphicStatus() == theStatus)
{ {
theListOfIO.Append (anObjIter.Key()); theListOfIO.Append (anObjIter.Key());
} }
@@ -289,13 +289,13 @@ void AIS_InteractiveContext::ObjectsByDisplayStatus (const PrsMgr_DisplayStatus
//======================================================================= //=======================================================================
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 PrsMgr_DisplayStatus theStatus, const AIS_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 != PrsMgr_DisplayStatus_None if (theStatus != AIS_DS_None
&& anObjIter.Key()->DisplayStatus() != theStatus) && anObjIter.Value()->GraphicStatus() != 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 PrsMgr_DisplayStatus theStatus) const const AIS_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 != PrsMgr_DisplayStatus_None if (theStatus != AIS_DS_None
&& anObjIter.Key()->DisplayStatus() != theStatus) && anObjIter.Value()->GraphicStatus() != 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 PrsMgr_DisplayStatus theDispStatus) const AIS_DisplayStatus theDispStatus)
{ {
if (theIObj.IsNull()) if (theIObj.IsNull())
{ {
return; return;
} }
if (theDispStatus == PrsMgr_DisplayStatus_Erased) if (theDispStatus == AIS_DS_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, PrsMgr_DisplayStatus_Displayed, theDispMode, theSelectionMode); setObjectStatus (theIObj, AIS_DS_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, PrsMgr_DisplayStatus_Erased, aDispMode, theSelMode != -1 ? theSelMode : aSelModeDef); setObjectStatus (theIObj, AIS_DS_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.Key()->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) if (anObjIter.Value()->GraphicStatus() == AIS_DS_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 PrsMgr_DisplayStatus aStatus = anObjIter.Key()->DisplayStatus(); const AIS_DisplayStatus aStatus = anObjIter.Value()->GraphicStatus();
if (aStatus == PrsMgr_DisplayStatus_Erased) if (aStatus == AIS_DS_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 :
//======================================================================= //=======================================================================
PrsMgr_DisplayStatus AIS_InteractiveContext::DisplayStatus (const Handle(AIS_InteractiveObject)& theIObj) const AIS_DisplayStatus AIS_InteractiveContext::DisplayStatus (const Handle(AIS_InteractiveObject)& theIObj) const
{ {
if (theIObj.IsNull()) if (theIObj.IsNull())
{ {
return PrsMgr_DisplayStatus_None; return AIS_DS_None;
} }
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj); const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek (theIObj);
return aStatus != NULL ? theIObj->DisplayStatus() : PrsMgr_DisplayStatus_None; return aStatus != NULL ? (*aStatus)->GraphicStatus() : AIS_DS_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 (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) if (aStatus->GraphicStatus() == AIS_DS_Displayed)
{ {
highlightGlobal (theObj, theStyle, aStatus->DisplayMode()); highlightGlobal (theObj, theStyle, aStatus->DisplayMode());
aStatus->SetHilightStyle (theStyle); aStatus->SetHilightStyle (theStyle);
@@ -727,26 +727,21 @@ void AIS_InteractiveContext::HilightWithColor(const Handle(AIS_InteractiveObject
//function : Unhilight //function : Unhilight
//purpose : //purpose :
//======================================================================= //=======================================================================
void AIS_InteractiveContext::Unhilight (const Handle(AIS_InteractiveObject)& theObj, void AIS_InteractiveContext::Unhilight(const Handle(AIS_InteractiveObject)& anIObj, const Standard_Boolean updateviewer)
const Standard_Boolean theToUpdateViewer)
{ {
Handle(AIS_GlobalStatus)* aStatus = !theObj.IsNull() ? myObjects.ChangeSeek (theObj) : NULL; if(anIObj.IsNull()) return;
if (aStatus == NULL) if(!myObjects.IsBound(anIObj)) return;
const Handle(AIS_GlobalStatus)& aStatus = myObjects(anIObj);
aStatus->SetHilightStatus (Standard_False);
aStatus->SetHilightStyle (Handle(Prs3d_Drawer)());
if (aStatus->GraphicStatus() == AIS_DS_Displayed)
{ {
return; unhighlightGlobal (anIObj);
} }
(*aStatus)->SetHilightStatus (Standard_False); if(updateviewer) myMainVwr->Update();
(*aStatus)->SetHilightStyle (Handle(Prs3d_Drawer)());
if (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{
unhighlightGlobal (theObj);
}
if (theToUpdateViewer)
{
myMainVwr->Update();
}
} }
//======================================================================= //=======================================================================
@@ -850,7 +845,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
&& theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed; && (*aStatus)->GraphicStatus() == AIS_DS_Displayed;
} }
//======================================================================= //=======================================================================
@@ -867,7 +862,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
&& theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed && (*aStatus)->GraphicStatus() == AIS_DS_Displayed
&& (*aStatus)->DisplayMode() == theMode; && (*aStatus)->DisplayMode() == theMode;
} }
@@ -884,8 +879,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
&& (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed && ((*aStatus)->GraphicStatus() == AIS_DS_Displayed
|| theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Erased)) || (*aStatus)->GraphicStatus() == AIS_DS_Erased))
{ {
Standard_Integer aDispMode = theIObj->HasDisplayMode() Standard_Integer aDispMode = theIObj->HasDisplayMode()
? theIObj->DisplayMode() ? theIObj->DisplayMode()
@@ -912,8 +907,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
&& (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed && ((*aStatus)->GraphicStatus() == AIS_DS_Displayed
|| theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Erased)) || (*aStatus)->GraphicStatus() == AIS_DS_Erased))
{ {
Standard_Integer aDisplayMode = theIObj->HasDisplayMode() Standard_Integer aDisplayMode = theIObj->HasDisplayMode()
? theIObj->DisplayMode() ? theIObj->DisplayMode()
@@ -954,7 +949,7 @@ void AIS_InteractiveContext::Redisplay (const AIS_KindOfInteractive theKOI,
} }
Redisplay (anObj, Standard_False); Redisplay (anObj, Standard_False);
isRedisplayed = anObjIter.Key()->DisplayStatus() == PrsMgr_DisplayStatus_Displayed isRedisplayed = anObjIter.Value()->GraphicStatus() == AIS_DS_Displayed
|| isRedisplayed; || isRedisplayed;
} }
@@ -987,7 +982,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
&& theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) && (*aStatus)->GraphicStatus() == AIS_DS_Displayed)
{ {
myMainVwr->Update(); myMainVwr->Update();
} }
@@ -1007,7 +1002,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
|| theIO->DisplayStatus() != PrsMgr_DisplayStatus_Displayed) || (*aStatus)->GraphicStatus() != AIS_DS_Displayed)
{ {
return; return;
} }
@@ -1040,7 +1035,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
&& theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) && (*aStatus)->GraphicStatus() == AIS_DS_Displayed)
{ {
myMainVwr->Update(); myMainVwr->Update();
} }
@@ -1242,7 +1237,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 (anObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) if (aStatus->GraphicStatus() == AIS_DS_Displayed)
{ {
myMainPM->Display (anObj, theMode); myMainPM->Display (anObj, theMode);
if (!myLastPicked.IsNull() && myLastPicked->IsSameSelectable (anObj)) if (!myLastPicked.IsNull() && myLastPicked->IsSameSelectable (anObj))
@@ -1286,7 +1281,7 @@ void AIS_InteractiveContext::SetDisplayMode (const Handle(AIS_InteractiveObject)
} }
Handle(AIS_GlobalStatus) aStatus = myObjects (theIObj); Handle(AIS_GlobalStatus) aStatus = myObjects (theIObj);
if (theIObj->DisplayStatus() != PrsMgr_DisplayStatus_Displayed) if (aStatus->GraphicStatus() != AIS_DS_Displayed)
{ {
aStatus->SetDisplayMode (theMode); aStatus->SetDisplayMode (theMode);
theIObj->SetDisplayMode (theMode); theIObj->SetDisplayMode (theMode);
@@ -1351,7 +1346,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 (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) if (aStatus->GraphicStatus() == AIS_DS_Displayed)
{ {
if (myMainPM->IsHighlighted (theIObj, anOldMode)) if (myMainPM->IsHighlighted (theIObj, anOldMode))
{ {
@@ -1901,14 +1896,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 (theIObj->DisplayStatus()) switch (aStatus->GraphicStatus())
{ {
case PrsMgr_DisplayStatus_Displayed: case AIS_DS_Displayed:
{ {
theStatus += "\t| -->Displayed\n"; theStatus += "\t| -->Displayed\n";
break; break;
} }
case PrsMgr_DisplayStatus_Erased: case AIS_DS_Erased:
{ {
theStatus += "\t| -->Erased\n"; theStatus += "\t| -->Erased\n";
break; break;
@@ -1967,7 +1962,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)
|| theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Erased) || aStatus->GraphicStatus() == AIS_DS_Erased)
{ {
return; return;
} }
@@ -1996,7 +1991,7 @@ void AIS_InteractiveContext::EraseGlobal (const Handle(AIS_InteractiveObject)& t
mgrSelector->Deactivate (theIObj, aSelModeIter.Value()); mgrSelector->Deactivate (theIObj, aSelModeIter.Value());
} }
aStatus->ClearSelectionModes(); aStatus->ClearSelectionModes();
theIObj->SetDisplayStatus (PrsMgr_DisplayStatus_Erased); aStatus->SetGraphicStatus (AIS_DS_Erased);
if (theToUpdateviewer) if (theToUpdateviewer)
{ {
@@ -2082,7 +2077,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, PrsMgr_DisplayStatus_None, -1, -1); setObjectStatus (theIObj, AIS_DS_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())
@@ -2099,8 +2094,7 @@ void AIS_InteractiveContext::ClearGlobal (const Handle(AIS_InteractiveObject)& t
} }
} }
if (theToUpdateviewer if (theToUpdateviewer && aStatus->GraphicStatus() == AIS_DS_Displayed)
&& theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed)
{ {
myMainVwr->Update(); myMainVwr->Update();
} }
@@ -2114,13 +2108,14 @@ void AIS_InteractiveContext::ClearGlobalPrs (const Handle(AIS_InteractiveObject)
const Standard_Integer theMode, const Standard_Integer theMode,
const Standard_Boolean theToUpdateViewer) const Standard_Boolean theToUpdateViewer)
{ {
const Handle(AIS_GlobalStatus)* aStatus = !theIObj.IsNull() ? myObjects.Seek (theIObj) : NULL; if (theIObj.IsNull()
if (aStatus == NULL) || !myObjects.IsBound (theIObj))
{ {
return; return;
} }
if ((*aStatus)->DisplayMode() == theMode) const Handle(AIS_GlobalStatus)& aStatus = myObjects (theIObj);
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
@@ -2132,7 +2127,7 @@ void AIS_InteractiveContext::ClearGlobalPrs (const Handle(AIS_InteractiveObject)
myMainPM->Erase (theIObj, theMode); myMainPM->Erase (theIObj, theMode);
} }
if (theIObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed if (aStatus->GraphicStatus() == AIS_DS_Displayed
&& theToUpdateViewer) && theToUpdateViewer)
{ {
myMainVwr->Update(); myMainVwr->Update();
@@ -2567,34 +2562,28 @@ 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 PrsMgr_DisplayStatus theStatus, const AIS_DisplayStatus theStatus,
const Standard_Integer theDispMode, const Standard_Integer theDispMode,
const Standard_Integer theSelectionMode) const Standard_Integer theSelectionMode)
{ {
theIObj->SetDisplayStatus (theStatus); if (theStatus != AIS_DS_None)
if (theStatus != PrsMgr_DisplayStatus_None)
{ {
Handle(AIS_GlobalStatus) aStatus = new AIS_GlobalStatus (theDispMode, theSelectionMode); Handle(AIS_GlobalStatus) aStatus = new AIS_GlobalStatus (AIS_DS_Displayed, 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 PrsMgr_DisplayStatus DisplayStatus (const Handle(AIS_InteractiveObject)& anIobj) const; Standard_EXPORT AIS_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 PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None); const AIS_DisplayStatus theDispStatus = AIS_DS_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 PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None) const AIS_DisplayStatus theDispStatus = AIS_DS_None)
{ {
(void )theToAllowDecomposition; (void )theToAllowDecomposition;
Display (theIObj, theDispMode, theSelectionMode, theToUpdateViewer, theDispStatus); Display (theIObj, theDispMode, theSelectionMode, theToUpdateViewer, theDispStatus);
@@ -805,14 +805,11 @@ 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 PrsMgr_DisplayStatus theStatus, AIS_ListOfInteractive& theListOfIO) const; Standard_EXPORT void ObjectsByDisplayStatus (const AIS_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, Standard_EXPORT void ObjectsByDisplayStatus (const AIS_KindOfInteractive WhichKind, const Standard_Integer WhichSignature, const AIS_DisplayStatus theStatus, AIS_ListOfInteractive& theListOfIO) const;
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>.
@@ -826,10 +823,7 @@ 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, Standard_EXPORT void ObjectsForView (AIS_ListOfInteractive& theListOfIO, const Handle(V3d_View)& theView, const Standard_Boolean theIsVisibleInView, const AIS_DisplayStatus theStatus = AIS_DS_None) const;
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...
@@ -1396,7 +1390,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 PrsMgr_DisplayStatus theStatus, const AIS_DisplayStatus theStatus,
const Standard_Integer theDispyMode, const Standard_Integer theDispyMode,
const Standard_Integer theSelectionMode); const Standard_Integer theSelectionMode);

View File

@@ -247,10 +247,8 @@ 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 (theObject->DisplayStatus() != PrsMgr_DisplayStatus_Displayed && theIsDisplayedOnly) if (aStatus->GraphicStatus() != AIS_DS_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());
@@ -260,14 +258,10 @@ 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 (theObject->DisplayStatus() != PrsMgr_DisplayStatus_Displayed && theIsDisplayedOnly) if (aStatus->GraphicStatus() != AIS_DS_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 (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed if ((*aStat)->GraphicStatus() == AIS_DS_Displayed
|| theIsForce) || theIsForce)
{ {
if (theMode == -1) if (theMode == -1)
@@ -103,7 +103,7 @@ void AIS_InteractiveContext::SetSelectionModeActive (const Handle(AIS_Interactiv
return; return;
} }
if (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed if ((*aStat)->GraphicStatus() == AIS_DS_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 (theObj->DisplayStatus() == PrsMgr_DisplayStatus_Displayed) if ((*aStatus)->GraphicStatus() == AIS_DS_Displayed)
{ {
myMainPM->Unhighlight (theObj); myMainPM->Unhighlight (theObj);
toUpdateMain = Standard_True; toUpdateMain = Standard_True;

View File

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

View File

@@ -83,15 +83,6 @@ 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,9 +126,6 @@ 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,7 +41,6 @@ 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());
@@ -309,12 +308,7 @@ 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,12 +90,6 @@ 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.
@@ -127,7 +121,6 @@ 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,12 +426,6 @@ 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,4 +1,3 @@
PrsMgr_DisplayStatus.hxx
PrsMgr_ListOfPresentableObjects.hxx PrsMgr_ListOfPresentableObjects.hxx
PrsMgr_ListOfPresentations.hxx PrsMgr_ListOfPresentations.hxx
PrsMgr_PresentableObject.cxx PrsMgr_PresentableObject.cxx

View File

@@ -1,32 +0,0 @@
// 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,7 +48,6 @@ 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,7 +28,6 @@
#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>
@@ -162,9 +161,6 @@ 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.
@@ -574,7 +570,6 @@ 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,11 +73,7 @@ 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())
{ {
const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value(); Display(anIter.Value(), theMode);
if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
Display(anIter.Value(), theMode);
}
} }
} }
} }
@@ -161,12 +157,7 @@ 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())
{ {
const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value(); SetVisibility(anIter.Value(), theMode, theValue);
if (!theValue
|| aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
SetVisibility (anIter.Value(), theMode, theValue);
}
} }
} }
if (!thePrsObj->HasOwnPresentations()) if (!thePrsObj->HasOwnPresentations())
@@ -623,11 +614,7 @@ 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())
{ {
const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value(); Color(anIter.Value(), theStyle, theMode, NULL, theImmediateStructLayerId);
if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
Color (aChild, theStyle, theMode, NULL, theImmediateStructLayerId);
}
} }
} }
if (!thePrsObj->HasOwnPresentations()) if (!thePrsObj->HasOwnPresentations())

View File

@@ -97,9 +97,25 @@ namespace
return aPoly; return aPoly;
} }
//! Add new solid
virtual void AddSolid() Standard_OVERRIDE
{
Handle(Poly_Triangulation) aCurrentTri = GetTriangulation();
myTriangulationList.Append(aCurrentTri);
myNodes.Clear();
myTriangles.Clear();
}
NCollection_Sequence<Handle(Poly_Triangulation)> GetTriangulationList()
{
return myTriangulationList;
}
private: private:
NCollection_Vector<gp_XYZ> myNodes; NCollection_Vector<gp_XYZ> myNodes;
NCollection_Vector<Poly_Triangle> myTriangles; NCollection_Vector<Poly_Triangle> myTriangles;
NCollection_Sequence<Handle(Poly_Triangulation)> myTriangulationList;
}; };
} }
@@ -118,6 +134,17 @@ Handle(Poly_Triangulation) RWStl::ReadFile (const Standard_CString theFile,
return aReader.GetTriangulation(); return aReader.GetTriangulation();
} }
//=============================================================================
//function : ReadFile
//purpose :
//=============================================================================
void RWStl::ReadFile(const Standard_CString theFile, NCollection_Sequence<Handle(Poly_Triangulation)>& theTriangList)
{
Reader aReader;
aReader.Read(theFile, Handle(Message_ProgressIndicator)(), true);
theTriangList = aReader.GetTriangulationList();
}
//============================================================================= //=============================================================================
//function : ReadFile //function : ReadFile
//purpose : //purpose :

View File

@@ -50,6 +50,8 @@ public:
Standard_EXPORT static Handle(Poly_Triangulation) ReadFile (const Standard_CString theFile, Standard_EXPORT static Handle(Poly_Triangulation) ReadFile (const Standard_CString theFile,
const Handle(Message_ProgressIndicator)& aProgInd = Handle(Message_ProgressIndicator)()); const Handle(Message_ProgressIndicator)& aProgInd = Handle(Message_ProgressIndicator)());
Standard_EXPORT static void ReadFile(const Standard_CString theFile, NCollection_Sequence<Handle(Poly_Triangulation)>& theTriangList);
//! Read triangulation from a binary STL file //! Read triangulation from a binary STL file
//! In case of error, returns Null handle. //! In case of error, returns Null handle.
Standard_EXPORT static Handle(Poly_Triangulation) ReadBinary (const OSD_Path& thePath, Standard_EXPORT static Handle(Poly_Triangulation) ReadBinary (const OSD_Path& thePath,

View File

@@ -126,7 +126,8 @@ namespace
//============================================================================== //==============================================================================
Standard_Boolean RWStl_Reader::Read (const char* theFile, Standard_Boolean RWStl_Reader::Read (const char* theFile,
const Handle(Message_ProgressIndicator)& theProgress) const Handle(Message_ProgressIndicator)& theProgress,
bool IsMultiSolid)
{ {
std::filebuf aBuf; std::filebuf aBuf;
OSD_OpenStream (aBuf, theFile, std::ios::in | std::ios::binary); OSD_OpenStream (aBuf, theFile, std::ios::in | std::ios::binary);
@@ -165,6 +166,8 @@ Standard_Boolean RWStl_Reader::Read (const char* theFile,
} }
} }
aStream >> std::ws; // skip any white spaces aStream >> std::ws; // skip any white spaces
if (IsMultiSolid)
AddSolid();
} }
return ! aStream.fail(); return ! aStream.fail();
} }

View File

@@ -39,7 +39,8 @@ public:
//! Format is recognized automatically by analysis of the file header. //! Format is recognized automatically by analysis of the file header.
//! Returns true if success, false on error or user break. //! Returns true if success, false on error or user break.
Standard_EXPORT Standard_Boolean Read (const char* theFile, Standard_EXPORT Standard_Boolean Read (const char* theFile,
const Handle(Message_ProgressIndicator)& theProgress); const Handle(Message_ProgressIndicator)& theProgress,
bool IsMultiSolid = false);
//! Guess whether the stream is an Ascii STL file, by analysis of the first bytes (~200). //! Guess whether the stream is an Ascii STL file, by analysis of the first bytes (~200).
//! The function attempts to put back the read symbols to the stream which thus must support ungetc(). //! The function attempts to put back the read symbols to the stream which thus must support ungetc().
@@ -74,6 +75,8 @@ public:
//! Should create new triangle built on specified nodes in the target model. //! Should create new triangle built on specified nodes in the target model.
virtual void AddTriangle (Standard_Integer theN1, Standard_Integer theN2, Standard_Integer theN3) = 0; virtual void AddTriangle (Standard_Integer theN1, Standard_Integer theN2, Standard_Integer theN3) = 0;
virtual void AddSolid() = 0;
}; };
#endif #endif

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 anUnitCtxUpperBound; STEPConstruct_UnitContext anUnitCtx;
anUnitCtxUpperBound.ComputeFactors(NU); anUnitCtx.ComputeFactors(NU);
if (aMWU->IsKind(STANDARD_TYPE(StepBasic_PlaneAngleMeasureWithUnit)) || if (aMWU->IsKind(STANDARD_TYPE(StepBasic_LengthMeasureWithUnit)) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndPlaneAngleMeasureWithUnitAndQRI)))
{
convertAngleValue(anUnitCtxUpperBound, aVal);
}
else if ((aMWU->IsKind(STANDARD_TYPE(StepBasic_MeasureWithUnit)) && anUnitCtxUpperBound.LengthFactor() > 0.) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnitAndQRI))) aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnitAndQRI)))
{ {
aVal = aVal * anUnitCtxUpperBound.LengthFactor(); aVal = aVal * anUnitCtx.LengthFactor();
}
else if (aMWU->IsKind(STANDARD_TYPE(StepBasic_PlaneAngleMeasureWithUnit)) ||
aMWU->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndPlaneAngleMeasureWithUnitAndQRI)))
{
convertAngleValue(anUnitCtx, aVal);
} }
aDim3 = aVal; aDim3 = aVal;
@@ -3356,17 +3356,16 @@ 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();
STEPConstruct_UnitContext anUnitCtxLowerBound; anUnitCtx.ComputeFactors(NU);
anUnitCtxLowerBound.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(anUnitCtxLowerBound, aVal); convertAngleValue(anUnitCtx, 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);
} }
@@ -4355,10 +4354,8 @@ 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());
if (Handle(StepRepr_Representation) aRepr = anItem->MappingSource()->MappedRepresentation()) 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,11 +112,7 @@ 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())
{ {
Handle(SelectMgr_SelectableObject) aChild = Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value()); Activate (Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value()), theMode);
if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
{
Activate (aChild, theMode);
}
} }
if (!theObject->HasOwnPresentations()) if (!theObject->HasOwnPresentations())
return; return;
@@ -189,12 +185,9 @@ 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)
{ {
if (theObject->ToPropagateVisualState()) for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
{ {
for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter(theObject->Children()); anChildrenIter.More(); anChildrenIter.Next()) Deactivate (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theMode);
{
Deactivate(Handle(SelectMgr_SelectableObject)::DownCast(anChildrenIter.Value()), theMode);
}
} }
if (!theObject->HasOwnPresentations()) if (!theObject->HasOwnPresentations())
{ {

View File

@@ -2542,15 +2542,6 @@ 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")
{ {
@@ -6468,7 +6459,6 @@ 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);

View File

@@ -411,6 +411,22 @@ static Standard_Integer ReadObj (Draw_Interpretor& theDI,
{ {
aFilePath = theArgVec[anArgIter]; aFilePath = theArgVec[anArgIter];
} }
else if (theArgc == 4 && strcmp("multi", theArgv[3]) == 0)
{
NCollection_Sequence<Handle(Poly_Triangulation)> theTriangList;
RWStl::ReadFile(theArgv[2], theTriangList);
BRep_Builder aB;
TopoDS_Compound aCmp;
aB.MakeCompound(aCmp);
for (int i = 1; i <= theTriangList.Length(); i++)
{
TopoDS_Face aFace;
aB.MakeFace(aFace);
aB.UpdateFace(aFace, theTriangList(i));
aB.Add(aCmp, aFace);
}
DBRep::Set(theArgv[1], aCmp);
}
else else
{ {
std::cout << "Syntax error at '" << theArgVec[anArgIter] << "'\n"; std::cout << "Syntax error at '" << theArgVec[anArgIter] << "'\n";

View File

@@ -1,15 +0,0 @@
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

View File

@@ -1,33 +0,0 @@
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

View File

@@ -1,22 +0,0 @@
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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 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: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 64.515999999999991, VU 64.515999999999991, P 0 ) 0:1:4:14 Dimension.5.1 ( N "linear distance" T 2, V 127, VL 2.54, VU 2.54, 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 64.515999999999991, VU 64.515999999999991, P 0 ) 0:1:4:14 Dimension.11.1 ( N "linear distance" T 2, V 127, VL 2.54, VU 2.54, 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 64.515999999999991, VU 64.515999999999991, P 0 ) 0:1:4:11 Dimension.209.1 ( N "linear distance" T 2, V 254, VL 2.54, VU 2.54, 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 64.515999999999991, VU 64.515999999999991, P 0 ) 0:1:4:11 Dimension.210.1 ( N "linear distance" T 2, V 254, VL 2.54, VU 2.54, 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 )
} }