FreeMat
vtkParametricSuperToroid

Section: Visualization Toolkit Common Classes

Usage

vtkParametricSuperToroid generates a supertoroid. Essentially a supertoroid is a torus with the sine and cosine terms raised to a power. A supertoroid is a versatile primitive that is controlled by four parameters r0, r1, n1 and n2. r0, r1 determine the type of torus whilst the value of n1 determines the shape of the torus ring and n2 determines the shape of the cross section of the ring. It is the different values of these powers which give rise to a family of 3D shapes that are all basically toroidal in shape.

For further information about this surface, please consult the technical description "Parametric surfaces" in http://www.vtk.org/documents.php in the "VTK Technical Documents" section in the VTk.org web pages.

Also see: http://astronomy.swin.edu.au/~pbourke/surfaces/.

To create an instance of class vtkParametricSuperToroid, simply invoke its constructor as follows

  obj = vtkParametricSuperToroid

Methods

The class vtkParametricSuperToroid has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, obj is an instance of the vtkParametricSuperToroid class.

  • string = obj.GetClassName ()
  • int = obj.IsA (string name)
  • vtkParametricSuperToroid = obj.NewInstance ()
  • vtkParametricSuperToroid = obj.SafeDownCast (vtkObject o)
  • int = obj.GetDimension () - Set/Get the radius from the center to the middle of the ring of the supertoroid. Default = 1.
  • obj.SetRingRadius (double ) - Set/Get the radius from the center to the middle of the ring of the supertoroid. Default = 1.
  • double = obj.GetRingRadius () - Set/Get the radius from the center to the middle of the ring of the supertoroid. Default = 1.
  • obj.SetCrossSectionRadius (double ) - Set/Get the radius of the cross section of ring of the supertoroid. Default = 0.5.
  • double = obj.GetCrossSectionRadius () - Set/Get the radius of the cross section of ring of the supertoroid. Default = 0.5.
  • obj.SetXRadius (double ) - Set/Get the scaling factor for the x-axis. Default = 1.
  • double = obj.GetXRadius () - Set/Get the scaling factor for the x-axis. Default = 1.
  • obj.SetYRadius (double ) - Set/Get the scaling factor for the y-axis. Default = 1.
  • double = obj.GetYRadius () - Set/Get the scaling factor for the y-axis. Default = 1.
  • obj.SetZRadius (double ) - Set/Get the scaling factor for the z-axis. Default = 1.
  • double = obj.GetZRadius () - Set/Get the scaling factor for the z-axis. Default = 1.
  • obj.SetN1 (double ) - Set/Get the shape of the torus ring. Default = 1.
  • double = obj.GetN1 () - Set/Get the shape of the torus ring. Default = 1.
  • obj.SetN2 (double ) - Set/Get the shape of the cross section of the ring. Default = 1.
  • double = obj.GetN2 () - Set/Get the shape of the cross section of the ring. Default = 1.
  • obj.Evaluate (double uvw[3], double Pt[3], double Duvw[9]) - A supertoroid.

    This function performs the mapping $f(u,v) \rightarrow (x,y,x)$, returning it as Pt. It also returns the partial derivatives Du and Dv. $Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)$ . Then the normal is $N = Du X Dv$ .

  • double = obj.EvaluateScalar (double uvw[3], double Pt[3], double Duvw[9]) - Calculate a user defined scalar using one or all of uvw, Pt, Duvw.

    uvw are the parameters with Pt being the the cartesian point, Duvw are the derivatives of this point with respect to u, v and w. Pt, Duvw are obtained from Evaluate().

    This function is only called if the ScalarMode has the value vtkParametricFunctionSource::SCALAR_FUNCTION_DEFINED

    If the user does not need to calculate a scalar, then the instantiated function should return zero.