#include <TopoDS.hxx>
#include <TopoDS_Iterator.hxx>
+#include <TopoDS_LockedShape.hxx>
#include <Precision.hxx>
const Standard_Real Tol) const
{
Handle(BRep_TFace) TF = new BRep_TFace();
+ if(!F.IsNull() && F.Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::MakeFace");
+ }
TF->Surface(S);
TF->Tolerance(Tol);
MakeShape(F,TF);
const Handle(Poly_Triangulation)& T) const
{
Handle(BRep_TFace) TF = new BRep_TFace();
+ if(!F.IsNull() && F.Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::MakeFace");
+ }
TF->Triangulation(T);
MakeShape(F, TF);
}
const Standard_Real Tol) const
{
Handle(BRep_TFace) TF = new BRep_TFace();
+ if(!F.IsNull() && F.Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::MakeFace");
+ }
TF->Surface(S);
TF->Tolerance(Tol);
TF->Location(L);
const Standard_Real Tol) const
{
const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &F.TShape());
+ if(TF->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateFace");
+ }
TF->Surface(S);
TF->Tolerance(Tol);
TF->Location(L.Predivided(F.Location()));
void BRep_Builder::UpdateFace(const TopoDS_Face& F,
const Handle(Poly_Triangulation)& T) const
{
- (*((Handle(BRep_TFace)*) &F.TShape()))->Triangulation(T);
+ const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &F.TShape());
+ if(TF->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateFace");
+ }
+ TF->Triangulation(T);
F.TShape()->Modified(Standard_True);
}
void BRep_Builder::UpdateFace(const TopoDS_Face& F,
const Standard_Real Tol) const
{
- (*((Handle(BRep_TFace)*) &F.TShape()))->Tolerance(Tol);
+ const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &F.TShape());
+ if(TF->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateFace");
+ }
+ TF->Tolerance(Tol);
F.TShape()->Modified(Standard_True);
}
void BRep_Builder::NaturalRestriction(const TopoDS_Face& F,
const Standard_Boolean N) const
{
- (*((Handle(BRep_TFace)*) &F.TShape()))->NaturalRestriction(N);
+ const Handle(BRep_TFace)& TF = (*((Handle(BRep_TFace)*) &F.TShape()));
+ if(TF->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::NaturalRestriction");
+ }
+ TF->NaturalRestriction(N);
F.TShape()->Modified(Standard_True);
}
void BRep_Builder::MakeEdge(TopoDS_Edge& E) const
{
Handle(BRep_TEdge) TE = new BRep_TEdge();
+ if(!E.IsNull() && E.Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::MakeEdge");
+ }
TE->Closed(Standard_False);
MakeShape(E,TE);
}
const Standard_Real Tol) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
UpdateCurves(TE->ChangeCurves(),C,l);
const Standard_Real Tol) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
UpdateCurves(TE->ChangeCurves(),C,S,l);
const gp_Pnt2d& Pl) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
UpdateCurves(TE->ChangeCurves(),C,S,l,Pf,Pl);
const Standard_Real Tol) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
UpdateCurves(TE->ChangeCurves(),C1,C2,S,l);
const gp_Pnt2d& Pl) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
UpdateCurves(TE->ChangeCurves(),C1,C2,S,l,Pf,Pl);
const TopLoc_Location& L) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
-
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
BRep_ListOfCurveRepresentation& lcr = TE->ChangeCurves();
BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr);
const TopLoc_Location& L) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
Standard_Boolean isModified = Standard_False;
const TopLoc_Location& L) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
Standard_Boolean isModified = Standard_False;
const TopLoc_Location& L) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
TopLoc_Location l = L.Predivided(E.Location());
BRep_ListOfCurveRepresentation& lcr = TE->ChangeCurves();
const TopLoc_Location& L) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
TopLoc_Location l = L.Predivided(E.Location());
BRep_ListOfCurveRepresentation& lcr = TE->ChangeCurves();
const Standard_Real Tol) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateEdge");
+ }
TE->UpdateTolerance(Tol);
TE->Modified(Standard_True);
}
const GeomAbs_Shape C)const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
-
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::Continuity");
+ }
const TopLoc_Location l1 = L1.Predivided(E.Location());
const TopLoc_Location l2 = L2.Predivided(E.Location());
const Standard_Boolean S) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::SameParameter");
+ }
TE->SameParameter(S);
TE->Modified(Standard_True);
}
const Standard_Boolean S) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::SameRange");
+ }
TE->SameRange(S);
TE->Modified(Standard_True);
}
const Standard_Boolean D) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::Degenerated");
+ }
TE->Degenerated(D);
if (D) {
// set a null 3d curve
{
// set the range to all the representations if Only3d=FALSE
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
-
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::Range");
+ }
BRep_ListOfCurveRepresentation& lcr = TE->ChangeCurves();
BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr);
Handle(BRep_GCurve) GC;
const Standard_Real Last) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::Range");
+ }
const TopLoc_Location l = L.Predivided(E.Location());
BRep_ListOfCurveRepresentation& lcr = TE->ChangeCurves();
const TopoDS_Edge& Eout) const
{
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &Ein.TShape());
-
+ if(TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::Transfert");
+ }
const Standard_Real tol = TE->Tolerance();
-
+
BRep_ListOfCurveRepresentation& lcr = TE->ChangeCurves();
BRep_ListIteratorOfListOfCurveRepresentation itcr(lcr);
const Standard_Real Tol) const
{
const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &V.TShape());
-
+ if(TV->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateVertex");
+ }
TV->Pnt(P.Transformed(V.Location().Inverted().Transformation()));
TV->UpdateTolerance(Tol);
TV->Modified(Standard_True);
const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &V.TShape());
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TV->Locked() || TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateVertex");
+ }
+
TopLoc_Location L = E.Location().Predivided(V.Location());
// Search the vertex in the edge
const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &V.TShape());
const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
+ if(TV->Locked() || TE->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateVertex");
+ }
// Search the vertex in the edge
TopAbs_Orientation ori = TopAbs_INTERNAL;
{
const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &Ve.TShape());
+ if(TV->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateVertex");
+ }
+
TopLoc_Location L;
const Handle(Geom_Surface)& S = BRep_Tool::Surface(F,L);
L = L.Predivided(Ve.Location());
const Standard_Real Tol) const
{
const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &V.TShape());
+
+ if(TV->Locked())
+ {
+ TopoDS_LockedShape::Raise("BRep_Builder::UpdateVertex");
+ }
+
TV->UpdateTolerance(Tol);
TV->Modified(Standard_True);
}