Ejemplo n.º 1
0
void
Boundary2D::SetupBdry2D(::Bdry2D &bdry) const {
  int i=0; 
  int  iBdryPatch = 0;


  std::cerr << "Before Set size\n";
  bdry.vSetSize (NumOfPatches(), NumOfPoints());

  std::cerr << "Set size\n";
  for (PointIterator p=FirstPoint(); 
       p != EndPoint(); ++p, ++i) {
       bdry.vAddPoint((*p).coords());
       bdry.vSetBdryPoint(i, false);
  }

  std::cerr << "Added points size\n";
  for (PolylineIterator p=FirstPolyline(); p !=EndPolyline(); ++p) {
    SetupPolyline(bdry, *p, iBdryPatch);
  }

  std::cerr << "Added polylines size\n";
  for (CircleIterator p=FirstCircle(); p !=EndCircle(); ++p) {
    SetupCircle(bdry, *p, iBdryPatch);
  }

  std::cerr << "Added circles size\n";
  for (ArcIterator p=FirstArc(); p !=EndArc(); ++p) {
    SetupArc(bdry, *p, iBdryPatch);
  }

  std::cerr << "Added arcs size\n";
  for (BezierIterator p=FirstBezier(); p !=EndBezier(); ++p) {
    SetupBezier(bdry, *p, iBdryPatch);
  }
 
  std::cerr << "Added  beziers size\n";
  for (SplineIterator p=FirstSpline(); p !=EndSpline(); ++p) {
    SetupSpline(bdry, *p, iBdryPatch);
  }
 
  std::cerr << "Added splines size\n";
  bdry.vOrderConnectivityInfo();
  // Find small angles
  bdry.vFindSmallAngles();

  std::cerr << "Finished setupe\n";
}
void AZipLine::OnConstruction(const FTransform& Transform)
{
	Super::OnConstruction(Transform);

	FVector Loc;
	FVector Tangent;

	if (!StartBase || !EndBase || !Spline || !EndBox) return;

	Spline->SetRelativeLocation(FVector(0, 0, SplineHeight));
	Spline->GetLocationAndTangentAtSplinePoint(0, Loc, Tangent, ESplineCoordinateSpace::Local);
	StartBase->SetRelativeLocation(Loc);
	Spline->GetLocationAndTangentAtSplinePoint(Spline->GetNumberOfSplinePoints() - 1, Loc, Tangent, ESplineCoordinateSpace::Local);
	EndBase->SetRelativeLocation(Loc);
	Loc.Z += 0.5 * SplineHeight;
	EndBox->SetRelativeLocation(Loc);

	SetupSpline();
	
	
}