448 {
449 assert(_adjusted);
450
451 double h2 = cosd(a1 - 90) * D / 2;
452 map<int, G4ThreeVector> v;
453 v[5] = G4ThreeVector(-A / 2, -h2, -150);
454 v[6] = v[5] + moveto(D, a1);
455 v[10] = v[6] + moveto(B, a1 + a2 - 180);
456 v[8] = G4ThreeVector(A / 2, -h2, -150);
457 v[7] = v[8] + moveto(D, 180 - a1);
458
459 v[1] = v[5] + G4ThreeVector((H_aA * cosd(a1) + H_dD) / sind(a1), H_aA, 300);
460 v[2] = v[1] + moveto(d, a1);
461 v[9] = v[2] + moveto(b, a1 + a2 - 180);
462 v[4] = v[1] + moveto(a, 0);
463 v[3] = v[4] + moveto(d, 180 - a1);
464
465 for (int j = 1; j <= 10; j++) v[j] = G4ThreeVector(v[j].x(), -v[j].y(), -v[j].z());
466 if (wrapthick != 0) {
467 map<int, G4ThreeVector> nv;
468 nv[ 1] = newvertex(wrapthick, v[1], v[5], v[2], v[4]);
469 nv[ 2] = newvertex(wrapthick, v[2], v[6], v[9], v[1]);
470 nv[ 9] = newvertex(wrapthick, v[9], v[10], v[3], v[2]);
471 nv[ 3] = newvertex(wrapthick, v[3], v[7], v[4], v[9]);
472 nv[ 4] = newvertex(wrapthick, v[4], v[8], v[1], v[3]);
473 nv[ 5] = newvertex(wrapthick, v[5], v[1], v[8], v[6]);
474 nv[ 6] = newvertex(wrapthick, v[6], v[2], v[5], v[10]);
475 nv[10] = newvertex(wrapthick, v[10], v[9], v[6], v[7]);
476 nv[ 7] = newvertex(wrapthick, v[7], v[3], v[10], v[8]);
477 nv[ 8] = newvertex(wrapthick, v[8], v[4], v[7], v[5]);
478 std::swap(nv, v);
479 }
480 return v;
481 }