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

Compilation errors

This commit is contained in:
nbv
2018-01-17 11:11:26 +03:00
parent cdc74aad9f
commit 5c90c3a7ef
15 changed files with 46 additions and 34 deletions

View File

@@ -285,7 +285,7 @@ class BOPAlgo_MPC : public BOPAlgo_Algo {
else else
{ {
const BRepAdaptor_Surface& aBAS = myContext->SurfaceAdaptor(myF); const BRepAdaptor_Surface& aBAS = myContext->SurfaceAdaptor(myF);
if (aBAS.IsUPeriodic() || aBAS.IsVPeriodic()) if (aBAS.IsUPeriodic222() || aBAS.IsVPeriodic222())
{ {
// The curve already exists. Adjust it for periodic cases. // The curve already exists. Adjust it for periodic cases.
BOPTools_AlgoTools2D::AdjustPCurveOnSurf BOPTools_AlgoTools2D::AdjustPCurveOnSurf

View File

@@ -184,7 +184,7 @@ void BRepCheck_Edge::Minimum()
Handle(Geom_Curve) C3d = Handle(Geom_Curve)::DownCast Handle(Geom_Curve) C3d = Handle(Geom_Curve)::DownCast
(myCref->Curve3D()->Transformed (myCref->Curve3D()->Transformed
(/*myCref->Location()*/L.Transformation())); (/*myCref->Location()*/L.Transformation()));
Standard_Boolean IsPeriodic = C3d->IsPeriodic(); Standard_Boolean IsPeriodic = C3d->IsPeriodic111();
Standard_Real aPeriod = RealLast(); Standard_Real aPeriod = RealLast();
if(IsPeriodic) if(IsPeriodic)
{ {
@@ -193,10 +193,12 @@ void BRepCheck_Edge::Minimum()
Standard_Real f = C3d->FirstParameter(), l = C3d->LastParameter(); Standard_Real f = C3d->FirstParameter(), l = C3d->LastParameter();
if (C3d->DynamicType() == STANDARD_TYPE(Geom_TrimmedCurve)) if (C3d->DynamicType() == STANDARD_TYPE(Geom_TrimmedCurve))
{ {
// E.g. see "boolean bopfuse_complex J6" test script
const Handle(Geom_Curve)& aC = Handle(Geom_TrimmedCurve)::DownCast (C3d)->BasisCurve(); const Handle(Geom_Curve)& aC = Handle(Geom_TrimmedCurve)::DownCast (C3d)->BasisCurve();
f = aC->FirstParameter(); f = aC->FirstParameter();
l = aC->LastParameter(); l = aC->LastParameter();
IsPeriodic = aC->IsPeriodic(); IsPeriodic = aC->IsPeriodic111();
if(IsPeriodic) if(IsPeriodic)
{ {
aPeriod = aC->Period(); aPeriod = aC->Period();
@@ -224,7 +226,7 @@ void BRepCheck_Edge::Minimum()
Sref = Handle(Geom_Surface)::DownCast Sref = Handle(Geom_Surface)::DownCast
(Sref->Transformed(myCref->Location().Transformation())); (Sref->Transformed(myCref->Location().Transformation()));
const Handle(Geom2d_Curve)& PCref = myCref->PCurve(); const Handle(Geom2d_Curve)& PCref = myCref->PCurve();
Standard_Boolean IsPeriodic = PCref->IsPeriodic(); Standard_Boolean IsPeriodic = PCref->IsPeriodic111();
Standard_Real aPeriod = RealLast(); Standard_Real aPeriod = RealLast();
if(IsPeriodic) if(IsPeriodic)
{ {
@@ -233,10 +235,11 @@ void BRepCheck_Edge::Minimum()
Standard_Real f = PCref->FirstParameter(), l = PCref->LastParameter(); Standard_Real f = PCref->FirstParameter(), l = PCref->LastParameter();
if (PCref->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve)) if (PCref->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve))
{ {
// E.g. see "boolean bopfuse_complex J6" test script
const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (PCref)->BasisCurve(); const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (PCref)->BasisCurve();
f = aC->FirstParameter(); f = aC->FirstParameter();
l = aC->LastParameter(); l = aC->LastParameter();
IsPeriodic = aC->IsPeriodic(); IsPeriodic = aC->IsPeriodic111();
if(IsPeriodic) if(IsPeriodic)
{ {
aPeriod = aC->Period(); aPeriod = aC->Period();
@@ -360,7 +363,7 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
// Modified by skv - Tue Apr 27 11:50:37 2004 End // Modified by skv - Tue Apr 27 11:50:37 2004 End
// //
const Handle(Geom2d_Curve)& pc = cr->PCurve(); const Handle(Geom2d_Curve)& pc = cr->PCurve();
Standard_Boolean IsPeriodic = pc->IsPeriodic(); Standard_Boolean IsPeriodic = pc->IsPeriodic111();
Standard_Real aPeriod = RealLast(); Standard_Real aPeriod = RealLast();
if(IsPeriodic) if(IsPeriodic)
{ {
@@ -369,10 +372,12 @@ void BRepCheck_Edge::InContext(const TopoDS_Shape& S)
Standard_Real fp = pc->FirstParameter(), lp = pc->LastParameter(); Standard_Real fp = pc->FirstParameter(), lp = pc->LastParameter();
if (pc->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve)) if (pc->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve))
{ {
// E.g. see "boolean bopfuse_complex J6" test script
const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (pc)->BasisCurve(); const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (pc)->BasisCurve();
fp = aC->FirstParameter(); fp = aC->FirstParameter();
lp = aC->LastParameter(); lp = aC->LastParameter();
IsPeriodic = aC->IsPeriodic(); IsPeriodic = aC->IsPeriodic111();
if(IsPeriodic) if(IsPeriodic)
{ {
aPeriod = aC->Period(); aPeriod = aC->Period();

View File

@@ -2702,7 +2702,7 @@ void BRepLib::ExtendFace(const TopoDS_Face& theF,
Standard_Real aSUMin, aSUMax, aSVMin, aSVMax; Standard_Real aSUMin, aSUMax, aSVMin, aSVMax;
aSurf->Bounds(aSUMin, aSUMax, aSVMin, aSVMax); aSurf->Bounds(aSUMin, aSUMax, aSVMin, aSVMax);
Standard_Boolean isUPeriodic = aBAS.IsUPeriodic(); Standard_Boolean isUPeriodic = aBAS.IsUPeriodic222();
Standard_Real anUPeriod = isUPeriodic ? aBAS.UPeriod() : 0.0; Standard_Real anUPeriod = isUPeriodic ? aBAS.UPeriod() : 0.0;
if (isUPeriodic) if (isUPeriodic)
{ {
@@ -2712,7 +2712,7 @@ void BRepLib::ExtendFace(const TopoDS_Face& theF,
aFUMax = aFUMin + aDelta; aFUMax = aFUMin + aDelta;
} }
Standard_Boolean isVPeriodic = aBAS.IsVPeriodic(); Standard_Boolean isVPeriodic = aBAS.IsVPeriodic222();
Standard_Real aVPeriod = isVPeriodic ? aBAS.VPeriod() : 0.0; Standard_Real aVPeriod = isVPeriodic ? aBAS.VPeriod() : 0.0;
if (isVPeriodic) if (isVPeriodic)
{ {

View File

@@ -233,11 +233,14 @@ Standard_Boolean BRepMesh_CurveTessellator::Value (
aSurface->GetType() != GeomAbs_BezierSurface && aSurface->GetType() != GeomAbs_BezierSurface &&
aSurface->GetType() != GeomAbs_OtherSurface) aSurface->GetType() != GeomAbs_OtherSurface)
{ {
// For trimmed cone/cylinder.
// Return independently of the fact whether the surface trimmed.
return Standard_True; return Standard_True;
} }
// Let skip periodic case. // Let skip periodic case.
if (aSurface->IsUPeriodic() || aSurface->IsVPeriodic()) if (aSurface->IsUPeriodic222() || aSurface->IsVPeriodic222())
{ {
return Standard_True; return Standard_True;
} }

View File

@@ -53,7 +53,8 @@ void BRepMesh_DefaultRangeSplitter::AdjustRange()
{ {
const Handle(BRepAdaptor_HSurface)& aSurface = GetSurface(); const Handle(BRepAdaptor_HSurface)& aSurface = GetSurface();
updateRange(aSurface->FirstUParameter(), aSurface->LastUParameter(), updateRange(aSurface->FirstUParameter(), aSurface->LastUParameter(),
aSurface->IsUPeriodic(), myRangeU.first, myRangeU.second); aSurface->IsUPeriodic222() && aSurface->IsUClosed(),
myRangeU.first, myRangeU.second);
if (myRangeU.second < myRangeU.first) if (myRangeU.second < myRangeU.first)
{ {
@@ -62,7 +63,8 @@ void BRepMesh_DefaultRangeSplitter::AdjustRange()
} }
updateRange(aSurface->FirstVParameter(), aSurface->LastVParameter(), updateRange(aSurface->FirstVParameter(), aSurface->LastVParameter(),
aSurface->IsVPeriodic(), myRangeV.first, myRangeV.second); aSurface->IsVPeriodic222() && aSurface->IsVClosed(),
myRangeV.first, myRangeV.second);
if (myRangeV.second < myRangeV.first) if (myRangeV.second < myRangeV.first)
{ {

View File

@@ -262,11 +262,13 @@ static Standard_Integer pcurve(Draw_Interpretor& , Standard_Integer n, const cha
Sprintf(name,"%s_%d",a[1],i); Sprintf(name,"%s_%d",a[1],i);
Standard_Real fr = c->FirstParameter(), lr = c->LastParameter(); Standard_Real fr = c->FirstParameter(), lr = c->LastParameter();
Standard_Boolean IsPeriodic = c->IsPeriodic(); Standard_Boolean IsPeriodic = c->IsPeriodic111();
if (c->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve)) if (c->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve))
{ {
// E.g. see "boolean bopfuse_complex J6" test script
const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (c)->BasisCurve(); const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (c)->BasisCurve();
IsPeriodic = aC->IsPeriodic(); IsPeriodic = aC->IsPeriodic111();
fr = aC->FirstParameter(); fr = aC->FirstParameter();
lr = aC->LastParameter(); lr = aC->LastParameter();
} }
@@ -294,11 +296,11 @@ static Standard_Integer pcurve(Draw_Interpretor& , Standard_Integer n, const cha
const Handle(Geom2d_Curve) c = BRep_Tool::CurveOnSurface const Handle(Geom2d_Curve) c = BRep_Tool::CurveOnSurface
(TopoDS::Edge(SE),TopoDS::Face(SF),f,l); (TopoDS::Edge(SE),TopoDS::Face(SF),f,l);
Standard_Real fr = c->FirstParameter(), lr = c->LastParameter(); Standard_Real fr = c->FirstParameter(), lr = c->LastParameter();
Standard_Boolean IsPeriodic = c->IsPeriodic(); Standard_Boolean IsPeriodic = c->IsPeriodic111();
if (c->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve)) if (c->DynamicType() == STANDARD_TYPE(Geom2d_TrimmedCurve))
{ {
const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (c)->BasisCurve(); const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (c)->BasisCurve();
IsPeriodic = aC->IsPeriodic(); IsPeriodic = aC->IsPeriodic111();
fr = aC->FirstParameter(); fr = aC->FirstParameter();
lr = aC->LastParameter(); lr = aC->LastParameter();
} }

View File

@@ -491,10 +491,10 @@ void DBRep_IsoBuilder::FillGaps(const TopoDS_Face& theFace,
// Check for periodic surfaces // Check for periodic surfaces
if (bAddSegment) if (bAddSegment)
{ {
if (aBASurf.IsUPeriodic()) if (aBASurf.IsUPeriodic222())
bAddSegment = aSegmLen < aBASurf.UPeriod() / 4.; bAddSegment = aSegmLen < aBASurf.UPeriod() / 4.;
if (bAddSegment && aBASurf.IsVPeriodic()) if (bAddSegment && aBASurf.IsVPeriodic222())
bAddSegment = aSegmLen < aBASurf.VPeriod() / 4.; bAddSegment = aSegmLen < aBASurf.VPeriod() / 4.;
} }

View File

@@ -793,11 +793,11 @@ void Extrema_ExtCC::PrepareResults(const Extrema_ECC& AlgExt,
U2 = P2.Parameter(); U2 = P2.Parameter();
// Check points to be into param space. // Check points to be into param space.
if (Extrema_CurveTool::IsPeriodic(*((Adaptor3d_Curve*) myC[0]))) if (Extrema_CurveTool::IsPeriodic444(*((Adaptor3d_Curve*) myC[0])))
{ {
U = ElCLib::InPeriod(U, Ut11, Ut11 + Extrema_CurveTool::Period(*((Adaptor3d_Curve*) myC[0]))); U = ElCLib::InPeriod(U, Ut11, Ut11 + Extrema_CurveTool::Period(*((Adaptor3d_Curve*) myC[0])));
} }
if (Extrema_CurveTool::IsPeriodic(*((Adaptor3d_Curve*) myC[1]))) if (Extrema_CurveTool::IsPeriodic444(*((Adaptor3d_Curve*) myC[1])))
{ {
U2 = ElCLib::InPeriod(U2, Ut21, Ut21 + Extrema_CurveTool::Period(*((Adaptor3d_Curve*) myC[1]))); U2 = ElCLib::InPeriod(U2, Ut21, Ut21 + Extrema_CurveTool::Period(*((Adaptor3d_Curve*) myC[1])));
} }

View File

@@ -569,7 +569,7 @@ void Geom2dAdaptor_Curve::RebuildCache(const Standard_Real theParameter) const
Standard_Integer aDeg = aBezier->Degree(); Standard_Integer aDeg = aBezier->Degree();
TColStd_Array1OfReal aFlatKnots(BSplCLib::FlatBezierKnots(aDeg), 1, 2 * (aDeg + 1)); TColStd_Array1OfReal aFlatKnots(BSplCLib::FlatBezierKnots(aDeg), 1, 2 * (aDeg + 1));
if (myCurveCache.IsNull()) if (myCurveCache.IsNull())
myCurveCache = new BSplCLib_Cache (aDeg, aBezier->IsPeriodic(), aFlatKnots, myCurveCache = new BSplCLib_Cache (aDeg, aBezier->IsPeriodic111(), aFlatKnots,
aBezier->Poles(), aBezier->Weights()); aBezier->Poles(), aBezier->Weights());
myCurveCache->BuildCache (theParameter, aFlatKnots, aBezier->Poles(), aBezier->Weights()); myCurveCache->BuildCache (theParameter, aFlatKnots, aBezier->Poles(), aBezier->Weights());
} }
@@ -577,7 +577,7 @@ void Geom2dAdaptor_Curve::RebuildCache(const Standard_Real theParameter) const
{ {
// Create cache for B-spline // Create cache for B-spline
if (myCurveCache.IsNull()) if (myCurveCache.IsNull())
myCurveCache = new BSplCLib_Cache (myBSplineCurve->Degree(), myBSplineCurve->IsPeriodic(), myCurveCache = new BSplCLib_Cache (myBSplineCurve->Degree(), myBSplineCurve->IsPeriodic111(),
myBSplineCurve->KnotSequence(), myBSplineCurve->Poles(), myBSplineCurve->Weights()); myBSplineCurve->KnotSequence(), myBSplineCurve->Poles(), myBSplineCurve->Weights());
myCurveCache->BuildCache (theParameter, myBSplineCurve->KnotSequence(), myCurveCache->BuildCache (theParameter, myBSplineCurve->KnotSequence(),
myBSplineCurve->Poles(), myBSplineCurve->Weights()); myBSplineCurve->Poles(), myBSplineCurve->Weights());

View File

@@ -301,7 +301,7 @@ Standard_Integer GeomAdaptor_Curve::NbIntervals(const GeomAbs_Shape S) const
myBSplineCurve->IsPeriodic111(), myBSplineCurve->IsPeriodic111(),
1,Nb,Index2,newLast); 1,Nb,Index2,newLast);
// Protection against myFirst = UFirst - eps, which located as ULast - eps // Protection against myFirst = UFirst - eps, which located as ULast - eps
if (myBSplineCurve->IsPeriodic() && (newLast - newFirst) < Precision::PConfusion()) if (myBSplineCurve->IsPeriodic111() && (newLast - newFirst) < Precision::PConfusion())
{ {
if (Abs(newLast - myBSplineCurve->FirstParameter()) < Precision::PConfusion()) if (Abs(newLast - myBSplineCurve->FirstParameter()) < Precision::PConfusion())
newLast += myBSplineCurve->Period(); newLast += myBSplineCurve->Period();
@@ -433,7 +433,7 @@ void GeomAdaptor_Curve::Intervals(TColStd_Array1OfReal& T,
FirstParam = newFirst; FirstParam = newFirst;
LastParam = newLast; LastParam = newLast;
// Protection against myFirst = UFirst - eps, which located as ULast - eps // Protection against myFirst = UFirst - eps, which located as ULast - eps
if (myBSplineCurve->IsPeriodic() && (LastParam - FirstParam) < Precision::PConfusion()) if (myBSplineCurve->IsPeriodic111() && (LastParam - FirstParam) < Precision::PConfusion())
{ {
if (Abs(LastParam - myBSplineCurve->FirstParameter()) < Precision::PConfusion()) if (Abs(LastParam - myBSplineCurve->FirstParameter()) < Precision::PConfusion())
LastParam += myBSplineCurve->Period(); LastParam += myBSplineCurve->Period();

View File

@@ -673,8 +673,8 @@ void GeomAdaptor_Surface::RebuildCache(const Standard_Real theU,
TColStd_Array1OfReal aFlatKnotsV(BSplCLib::FlatBezierKnots(aDegV), 1, 2 * (aDegV + 1)); TColStd_Array1OfReal aFlatKnotsV(BSplCLib::FlatBezierKnots(aDegV), 1, 2 * (aDegV + 1));
if (mySurfaceCache.IsNull()) if (mySurfaceCache.IsNull())
mySurfaceCache = new BSplSLib_Cache( mySurfaceCache = new BSplSLib_Cache(
aDegU, aBezier->IsUPeriodic(), aFlatKnotsU, aDegU, aBezier->IsUPeriodic111(), aFlatKnotsU,
aDegV, aBezier->IsVPeriodic(), aFlatKnotsV, aBezier->Weights()); aDegV, aBezier->IsVPeriodic111(), aFlatKnotsV, aBezier->Weights());
mySurfaceCache->BuildCache (theU, theV, aFlatKnotsU, aFlatKnotsV, mySurfaceCache->BuildCache (theU, theV, aFlatKnotsU, aFlatKnotsV,
aBezier->Poles(), aBezier->Weights()); aBezier->Poles(), aBezier->Weights());
} }

View File

@@ -2477,8 +2477,8 @@ static void DetectOfBoundaryAchievement(const Handle(Adaptor3d_HSurface)& theQSu
Handle(IntSurf_LineOn2S)& theNewLine, Handle(IntSurf_LineOn2S)& theNewLine,
Standard_Boolean& theIsOnBoundary) Standard_Boolean& theIsOnBoundary)
{ {
const Standard_Real aUPeriod = theQSurf->IsUPeriodic() ? theQSurf->UPeriod() : 0.0, const Standard_Real aUPeriod = theQSurf->IsUPeriodic222() ? theQSurf->UPeriod() : 0.0,
aVPeriod = theQSurf->IsVPeriodic() ? theQSurf->VPeriod() : 0.0; aVPeriod = theQSurf->IsVPeriodic222() ? theQSurf->VPeriod() : 0.0;
const Standard_Real aUf = theQSurf->FirstUParameter(), const Standard_Real aUf = theQSurf->FirstUParameter(),
aUl = theQSurf->LastUParameter(), aUl = theQSurf->LastUParameter(),
aVf = theQSurf->FirstVParameter(), aVf = theQSurf->FirstVParameter(),

View File

@@ -35,7 +35,7 @@ void IntPolyh_Tools::IsEnlargePossible(const Handle(Adaptor3d_HSurface)& theSurf
theSurf->GetType() == GeomAbs_BezierSurface) theSurf->GetType() == GeomAbs_BezierSurface)
{ {
// Check U periodicity and closeness // Check U periodicity and closeness
if (!theSurf->IsUClosed() && !theSurf->IsUPeriodic()) if (!theSurf->IsUClosed() && !theSurf->IsUPeriodic222())
{ {
// Check that surface is not infinite in U direction // Check that surface is not infinite in U direction
if (!Precision::IsInfinite(theSurf->FirstUParameter()) && if (!Precision::IsInfinite(theSurf->FirstUParameter()) &&
@@ -46,7 +46,7 @@ void IntPolyh_Tools::IsEnlargePossible(const Handle(Adaptor3d_HSurface)& theSurf
} }
// Check V periodicity and closeness // Check V periodicity and closeness
if (!theSurf->IsVClosed() && !theSurf->IsVPeriodic()) if (!theSurf->IsVClosed() && !theSurf->IsVPeriodic222())
{ {
// Check that surface is not infinite in V direction // Check that surface is not infinite in V direction
if (!Precision::IsInfinite(theSurf->FirstVParameter()) && if (!Precision::IsInfinite(theSurf->FirstVParameter()) &&

View File

@@ -1041,7 +1041,7 @@ Standard_Boolean ShapeAnalysis_Edge::CheckPCurveRange (const Standard_Real theFi
{ {
const Standard_Real eps = Precision::PConfusion(); const Standard_Real eps = Precision::PConfusion();
Standard_Boolean isValid = Standard_True; Standard_Boolean isValid = Standard_True;
Standard_Boolean IsPeriodic = thePC->IsPeriodic(); Standard_Boolean IsPeriodic = thePC->IsPeriodic111();
Standard_Real aPeriod = RealLast(); Standard_Real aPeriod = RealLast();
if(IsPeriodic) if(IsPeriodic)
{ {
@@ -1053,7 +1053,7 @@ Standard_Boolean ShapeAnalysis_Edge::CheckPCurveRange (const Standard_Real theFi
const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (thePC)->BasisCurve(); const Handle(Geom2d_Curve)& aC = Handle(Geom2d_TrimmedCurve)::DownCast (thePC)->BasisCurve();
fp = aC->FirstParameter(); fp = aC->FirstParameter();
lp = aC->LastParameter(); lp = aC->LastParameter();
IsPeriodic = aC->IsPeriodic(); IsPeriodic = aC->IsPeriodic111();
if(IsPeriodic) if(IsPeriodic)
{ {
aPeriod = aC->Period(); aPeriod = aC->Period();

View File

@@ -143,13 +143,13 @@ void ToOtherInfo (const TopoDS_Shape& theShape, QVariant& theValue, QVariant& th
aValues.append (ToString (aCurve->IsClosed())); aValues.append (ToString (aCurve->IsClosed()));
anInfo.append ("IsClosed"); anInfo.append ("IsClosed");
if (aCurve->IsPeriodic()) { if (aCurve->IsPeriodic111()) {
aValues.append (QString::number (aCurve->Period())); aValues.append (QString::number (aCurve->Period()));
anInfo.append ("IsPeriodic"); anInfo.append ("IsPeriodic");
} }
else else
{ {
aValues.append (ToString (aCurve->IsPeriodic())); aValues.append (ToString (aCurve->IsPeriodic111()));
anInfo.append ("IsPeriodic"); anInfo.append ("IsPeriodic");
} }
theValue = aValues.join (" / "); theValue = aValues.join (" / ");