Handle (Geom_Surface) S = BRep_Tool::Surface(F,L);
if (S->IsInstance(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
- S = (*(Handle(Geom_RectangularTrimmedSurface)*)&S)->BasisSurface();
+ S = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
}
//---------------
// Recadre en U.
Handle( Geom_Surface ) theSurf = BRep_Tool::Surface( F );
Handle( Standard_Type ) typS = theSurf->DynamicType();
if (typS == STANDARD_TYPE(Geom_OffsetSurface))
- typS = (*((Handle(Geom_OffsetSurface)*)&theSurf))->BasisSurface()->DynamicType();
+ typS = Handle(Geom_OffsetSurface)::DownCast (theSurf)->BasisSurface()->DynamicType();
if (typS == STANDARD_TYPE(Geom_BezierSurface) || typS == STANDARD_TYPE(Geom_BSplineSurface))
{
gp_Pnt fpoint = AC.Value( AC.FirstParameter() );
Standard_Real f, l;
Handle(Geom_Curve) C1 = BRep_Tool::Curve( E1, f, l );
if (C1->IsInstance(STANDARD_TYPE(Geom_TrimmedCurve)))
- C1 = (*((Handle(Geom_TrimmedCurve)*)&C1))->BasisCurve();
+ C1 = Handle(Geom_TrimmedCurve)::DownCast (C1)->BasisCurve();
Handle(Geom_Curve) C2 = BRep_Tool::Curve( E2, f, l );
if (C2->IsInstance(STANDARD_TYPE(Geom_TrimmedCurve)))
- C2 = (*((Handle(Geom_TrimmedCurve)*)&C2))->BasisCurve();
+ C2 = Handle(Geom_TrimmedCurve)::DownCast (C2)->BasisCurve();
if (C1->IsInstance(STANDARD_TYPE(Geom_Line)) &&
C2->IsInstance(STANDARD_TYPE(Geom_Line)))
{
- Handle(Geom_Line) L1 = *((Handle(Geom_Line)*) &C1);
+ Handle(Geom_Line) L1 = Handle(Geom_Line)::DownCast (C1);
gp_Ax1 Axis1 = L1->Position();
- Handle(Geom_Line) L2 = *((Handle(Geom_Line)*) &C2);
+ Handle(Geom_Line) L2 = Handle(Geom_Line)::DownCast (C2);
gp_Ax1 Axis2 = L2->Position();
if (! Axis1.IsParallel( Axis2, Precision::Angular() ))
return Standard_False;
Handle(Geom_Curve) C1 = BRep_Tool::Curve( E1, first1, last1 );
if (C1->IsInstance(STANDARD_TYPE(Geom_TrimmedCurve)))
- C1 = (*((Handle(Geom_TrimmedCurve)*)&C1))->BasisCurve();
+ C1 = Handle(Geom_TrimmedCurve)::DownCast (C1)->BasisCurve();
Handle(Geom_Curve) C2 = BRep_Tool::Curve( E2, first2, last2 );
if (C2->IsInstance(STANDARD_TYPE(Geom_TrimmedCurve)))
- C2 = (*((Handle(Geom_TrimmedCurve)*)&C2))->BasisCurve();
+ C2 = Handle(Geom_TrimmedCurve)::DownCast (C2)->BasisCurve();
if (!C1->IsInstance(STANDARD_TYPE(Geom_BSplineCurve)) ||
!C2->IsInstance(STANDARD_TYPE(Geom_BSplineCurve)))
PCurve1 = BRep_Tool::CurveOnSurface( E1, F, first1, last1 );
if (PCurve1->IsInstance(STANDARD_TYPE(Geom2d_TrimmedCurve)))
- PCurve1 = (*((Handle(Geom2d_TrimmedCurve)*)&PCurve1))->BasisCurve();
+ PCurve1 = Handle(Geom2d_TrimmedCurve)::DownCast (PCurve1)->BasisCurve();
PCurve2 = BRep_Tool::CurveOnSurface( E2, F, first2, last2 );
if (PCurve2->IsInstance(STANDARD_TYPE(Geom2d_TrimmedCurve)))
- PCurve2 = (*((Handle(Geom2d_TrimmedCurve)*)&PCurve2))->BasisCurve();
+ PCurve2 = Handle(Geom2d_TrimmedCurve)::DownCast (PCurve2)->BasisCurve();
if (PCurve1 == PCurve2)
{
P2 = PCurve2->Value( last2 );
if (PCurve1->IsInstance(STANDARD_TYPE(Geom2d_Line)))
{
- Handle(Geom2d_Line) Lin1 = *((Handle(Geom2d_Line)*) &PCurve1);
+ Handle(Geom2d_Line) Lin1 = Handle(Geom2d_Line)::DownCast (PCurve1);
gp_Lin2d theLin = Lin1->Lin2d();
first2 = ElCLib::Parameter( theLin, P1 );
last2 = ElCLib::Parameter( theLin, P2 );
}
else if (PCurve1->IsInstance(STANDARD_TYPE(Geom2d_Circle)))
{
- Handle(Geom2d_Circle) Circ1 = *((Handle(Geom2d_Circle)*) &PCurve1);
+ Handle(Geom2d_Circle) Circ1 = Handle(Geom2d_Circle)::DownCast (PCurve1);
gp_Circ2d theCirc = Circ1->Circ2d();
first2 = ElCLib::Parameter( theCirc, P1 );
last2 = ElCLib::Parameter( theCirc, P2 );
}
else if (PCurve1->IsInstance(STANDARD_TYPE(Geom2d_Ellipse)))
{
- Handle(Geom2d_Ellipse) Ell1 = *((Handle(Geom2d_Ellipse)*) &PCurve1);
+ Handle(Geom2d_Ellipse) Ell1 = Handle(Geom2d_Ellipse)::DownCast (PCurve1);
gp_Elips2d theElips = Ell1->Elips2d();
first2 = ElCLib::Parameter( theElips, P1 );
last2 = ElCLib::Parameter( theElips, P2 );
}
else if (PCurve1->IsInstance(STANDARD_TYPE(Geom2d_Parabola)))
{
- Handle(Geom2d_Parabola) Parab1 = *((Handle(Geom2d_Parabola)*) &PCurve1);
+ Handle(Geom2d_Parabola) Parab1 = Handle(Geom2d_Parabola)::DownCast (PCurve1);
gp_Parab2d theParab = Parab1->Parab2d();
first2 = ElCLib::Parameter( theParab, P1 );
last2 = ElCLib::Parameter( theParab, P2 );
}
else if (PCurve1->IsInstance(STANDARD_TYPE(Geom2d_Hyperbola)))
{
- Handle(Geom2d_Hyperbola) Hypr1 = *((Handle(Geom2d_Hyperbola)*) &PCurve1);
+ Handle(Geom2d_Hyperbola) Hypr1 = Handle(Geom2d_Hyperbola)::DownCast (PCurve1);
gp_Hypr2d theHypr = Hypr1->Hypr2d();
first2 = ElCLib::Parameter( theHypr, P1 );
last2 = ElCLib::Parameter( theHypr, P2 );
C1 = BRep_Tool::Curve( E1, first1, last1 );
if (C1->IsInstance(STANDARD_TYPE(Geom_TrimmedCurve)))
- C1 = (*((Handle(Geom_TrimmedCurve)*)&C1))->BasisCurve();
+ C1 = Handle(Geom_TrimmedCurve)::DownCast (C1)->BasisCurve();
C2 = BRep_Tool::Curve( E2, first2, last2 );
if (C2->IsInstance(STANDARD_TYPE(Geom_TrimmedCurve)))
- C2 = (*((Handle(Geom_TrimmedCurve)*)&C2))->BasisCurve();
+ C2 = Handle(Geom_TrimmedCurve)::DownCast (C2)->BasisCurve();
if (C1 == C2)
{
Handle(Geom_Surface) aSurf = BRep_Tool::Surface(F1);
if (aSurf->IsInstance(STANDARD_TYPE(Geom_RectangularTrimmedSurface)))
- aSurf = (*((Handle(Geom_RectangularTrimmedSurface)*)&aSurf))->BasisSurface();
+ aSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast (aSurf)->BasisSurface();
if (aSurf->IsInstance(STANDARD_TYPE(Geom_Plane)))
isPlane1 = Standard_True;
else if (aSurf->IsKind(STANDARD_TYPE(Geom_ElementarySurface)))
aSurf = BRep_Tool::Surface(F2);
if (aSurf->IsInstance(STANDARD_TYPE(Geom_RectangularTrimmedSurface)))
- aSurf = (*((Handle(Geom_RectangularTrimmedSurface)*)&aSurf))->BasisSurface();
+ aSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast (aSurf)->BasisSurface();
if (aSurf->IsInstance(STANDARD_TYPE(Geom_Plane)))
isPlane2 = Standard_True;
else if (aSurf->IsKind(STANDARD_TYPE(Geom_ElementarySurface)))
Handle(Geom_Surface) aSurf = BRep_Tool::Surface(cpF1);
if (aSurf->IsInstance(STANDARD_TYPE(Geom_RectangularTrimmedSurface)))
- aSurf = (*((Handle(Geom_RectangularTrimmedSurface)*)&aSurf))->BasisSurface();
+ aSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast (aSurf)->BasisSurface();
if (aSurf->IsInstance(STANDARD_TYPE(Geom_Plane)))
addPCurve1 = Standard_False;
else if (aSurf->IsKind(STANDARD_TYPE(Geom_ElementarySurface)))
aSurf = BRep_Tool::Surface(cpF2);
if (aSurf->IsInstance(STANDARD_TYPE(Geom_RectangularTrimmedSurface)))
- aSurf = (*((Handle(Geom_RectangularTrimmedSurface)*)&aSurf))->BasisSurface();
+ aSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast (aSurf)->BasisSurface();
if (aSurf->IsInstance(STANDARD_TYPE(Geom_Plane)))
addPCurve2 = Standard_False;
else if (aSurf->IsKind(STANDARD_TYPE(Geom_ElementarySurface)))
if (S1->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) {
Handle(Geom_RectangularTrimmedSurface) RTS ;
- RTS = *((Handle(Geom_RectangularTrimmedSurface)*) &S1);
+ RTS = Handle(Geom_RectangularTrimmedSurface)::DownCast (S1);
if (RTS->BasisSurface()->DynamicType() == STANDARD_TYPE(Geom_Plane)) {
S1 = RTS->BasisSurface();
}
}
if (S2->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) {
Handle(Geom_RectangularTrimmedSurface) RTS ;
- RTS = *((Handle(Geom_RectangularTrimmedSurface)*) &S2);
+ RTS = Handle(Geom_RectangularTrimmedSurface)::DownCast (S2);
if (RTS->BasisSurface()->DynamicType() == STANDARD_TYPE(Geom_Plane)) {
S2 = RTS->BasisSurface();
}
Standard_Boolean IsSuclosed = S->IsUClosed(), IsSvclosed = S->IsVClosed();
if (S->DynamicType() == STANDARD_TYPE(Geom_OffsetSurface))
{
- Handle(Geom_Surface) BasisSurf = (*((Handle(Geom_OffsetSurface)*)&S))->BasisSurface();
+ Handle(Geom_Surface) BasisSurf = Handle(Geom_OffsetSurface)::DownCast (S)->BasisSurface();
IsSuclosed = BasisSurf->IsUClosed();
IsSvclosed = BasisSurf->IsVClosed();
}
Standard_Boolean vmindegen = isVminDegen, vmaxdegen = isVmaxDegen;
Handle(Geom_Surface) theSurf = S;
if (S->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface))
- theSurf = (*(Handle(Geom_RectangularTrimmedSurface)*)&S)->BasisSurface();
+ theSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
if (theSurf->DynamicType() == STANDARD_TYPE(Geom_ConicalSurface))
{
- Handle(Geom_ConicalSurface) ConicalS = *((Handle(Geom_ConicalSurface)*) &theSurf);
+ Handle(Geom_ConicalSurface) ConicalS = Handle(Geom_ConicalSurface)::DownCast (theSurf);
gp_Cone theCone = ConicalS->Cone();
gp_Pnt theApex = theCone.Apex();
Standard_Real Uapex, Vapex;
Standard_Boolean SurfaceChange = Standard_False;
if ( S->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) {
- Handle(Geom_Surface) BS = (*((Handle(Geom_RectangularTrimmedSurface)*)&S))->BasisSurface();
+ Handle(Geom_Surface) BS = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
EnlargeGeometry(BS,U1,U2,V1,V2,IsV1degen,IsV2degen,
uf1,uf2,vf1,vf2,GlobalEnlargeU,GlobalEnlargeVfirst,GlobalEnlargeVlast);
if (!GlobalEnlargeVfirst)
if (!GlobalEnlargeVlast)
V2 = vf2;
if (!GlobalEnlargeVfirst || !GlobalEnlargeVlast)
- //(*((Handle(Geom_RectangularTrimmedSurface)*)&S))->SetTrim( U1, U2, V1, V2 );
+ //Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->SetTrim( U1, U2, V1, V2 );
S = new Geom_RectangularTrimmedSurface( BS, U1, U2, V1, V2 );
else
S = BS;
SurfaceChange = Standard_True;
}
else if (S->DynamicType() == STANDARD_TYPE(Geom_OffsetSurface)) {
- Handle(Geom_Surface) Surf = (*((Handle(Geom_OffsetSurface)*)&S))->BasisSurface();
+ Handle(Geom_Surface) Surf = Handle(Geom_OffsetSurface)::DownCast (S)->BasisSurface();
SurfaceChange = EnlargeGeometry(Surf,U1,U2,V1,V2,IsV1degen,IsV2degen,
uf1,uf2,vf1,vf2,GlobalEnlargeU,GlobalEnlargeVfirst,GlobalEnlargeVlast);
Handle(Geom_OffsetSurface)::DownCast(S)->SetBasisSurface(Surf);
if (enlargeU)
{
if (enlargeUfirst)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), du, 1, Standard_True, Standard_False );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_False );
if (enlargeUlast)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), du, 1, Standard_True, Standard_True );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_True );
}
if (enlargeV)
{
if (enlargeVfirst)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), dv, 1, Standard_False, Standard_False );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_False );
if (enlargeVlast)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), dv, 1, Standard_False, Standard_True );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_True );
}
S->Bounds( U1, U2, V1, V2 );
SurfaceChange = Standard_True;
if (enlargeU)
{
if (enlargeUfirst && uf1-u1 < duf)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), du, 1, Standard_True, Standard_False );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_False );
if (enlargeUlast && u2-uf2 < duf)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), du, 1, Standard_True, Standard_True );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_True );
}
if (enlargeV)
{
if (enlargeVfirst && vf1-v1 < dvf)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), dv, 1, Standard_False, Standard_False );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_False );
if (enlargeVlast && v2-vf2 < dvf)
- GeomLib::ExtendSurfByLength( *((Handle(Geom_BoundedSurface)*)&S), dv, 1, Standard_False, Standard_True );
+ GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_True );
}
S->Bounds( U1, U2, V1, V2 );
Handle(Geom_Surface) theSurf = BRep_Tool::Surface(F);
if (theSurf->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface))
- theSurf = (*((Handle(Geom_RectangularTrimmedSurface)*)&theSurf))->BasisSurface();
+ theSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast (theSurf)->BasisSurface();
if (theSurf->DynamicType() == STANDARD_TYPE(Geom_SurfaceOfLinearExtrusion) ||
theSurf->DynamicType() == STANDARD_TYPE(Geom_SurfaceOfRevolution) ||
Standard_Real fpar, lpar;
Handle(Geom2d_Curve) aCurve = BRep_Tool::CurveOnSurface(anEdge, F, fpar, lpar);
if (aCurve->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve))
- aCurve = (*((Handle(Geom2d_TrimmedCurve)*)&aCurve))->BasisCurve();
+ aCurve = Handle(Geom2d_TrimmedCurve)::DownCast (aCurve)->BasisCurve();
Handle(Geom2d_Line) theLine;
if (aCurve->DynamicType() == STANDARD_TYPE(Geom2d_Line))
- theLine = *((Handle(Geom2d_Line)*)&aCurve);
+ theLine = Handle(Geom2d_Line)::DownCast (aCurve);
else if (aCurve->DynamicType() == STANDARD_TYPE(Geom2d_BezierCurve) ||
aCurve->DynamicType() == STANDARD_TYPE(Geom2d_BSplineCurve))
{
//Special treatment for conical surfaces
Handle(Geom_Surface) theSurf = S;
if (S->DynamicType() == STANDARD_TYPE(Geom_RectangularTrimmedSurface))
- theSurf = (*(Handle(Geom_RectangularTrimmedSurface)*)&S)->BasisSurface();
+ theSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
if (theSurf->DynamicType() == STANDARD_TYPE(Geom_ConicalSurface))
{
- Handle(Geom_ConicalSurface) ConicalS = *((Handle(Geom_ConicalSurface)*) &theSurf);
+ Handle(Geom_ConicalSurface) ConicalS = Handle(Geom_ConicalSurface)::DownCast (theSurf);
gp_Cone theCone = ConicalS->Cone();
gp_Pnt theApex = theCone.Apex();
Standard_Real Uapex, Vapex;