Go to:
				Related nodes. Attributes. 
This node implements a tangentConstraint.  Each constraint has a set
        of targets that are connected under the target attribute, a single
        constrained object that is connected to the constraint* attributes,
        and possibly other information to help compute the correct results.
        In the case of the tangentConstraint, the additional information is:
        aimVector, upVector, worldUpVector, worldUpMatrix, and
        worldUpType.
        The tangentConstraint node can have any number of target inputs.
        Each target is connected to attributes inside a single element
        of the target attribute.  For example, the first target object
        would be connected elements of target[0], the second target object
        would be connected to elements of target[1], etc.  The elements of
        each target are: targetGeometry and targetWeight.
        The elements of each target are normally connected to the target
        objects as follows:
        
                
                        
                                | tangentConstraint attribute | 
                                connected to | 
                        
                        
                                | targetGeometry | 
                                worldSpace | 
                        
                        
                                | targetWeight | 
                                set to 1.0 | 
                        
                
        
        The targetWeight attribute is not generally connected to the
        target object.  Instead, it may be animated by other means to
        adjust the weighted average computation for the target orientation.
        The constrained object is connected to the constraint*
        attributes.  For a tangentConstraint, the constraintTranslate,
        constraintRotatePivot, constraintRotateTranslate,
        constraintJointOrient, and constraintParentInverseMatrix are
        inputs to the tangentConstraint.  The attribute constraintRotate
        is the only output.
        The tangentConstraint node uses the constraintTranslate,
        constraintRotatePivot, constraintRotateTranslate, and
        constraintParentInverseMatrix attributes to compute the world
        space position of the pivot point of the constrained object.
        Then, for each target geometry, the closest point is found and the
        tangent at that point is computed.  Each tangent is then added
        into a weighted average vector and the constrained object is
        oriented so that the aimVector (see below) matches the weighted
        average vector.
        The additional tangentConstraint inputs tell the constraint node how to
        aim the constrained object.  The aimVector attribute defines a vector
        in the space of the constrained object that should be aligned with
        the weighted average vector computed by the constraint.
        The upVector, worldUpVector, worldUpMatrix, and worldUpType
        define how the constrained object is rotated about the aimVector.
        The upVector defines a vector in the space of the constrained
        object, very much like the aimVector does.  The constrained object is
        rotated so that the aimVector matches the weighted average vector and so that
        the upVector aligns as closely as possible with the computed world up
        vector.  The world up vector is determined by the worldUpType,
        worldUpVector, and worldUpMatrix attributes.
        The attribute worldUpType can have one of 5 values, which affects the
        calculation of the world up vector as shown in the following table.
        
                
                        
                                | Mnemonic | 
                                Value | 
                                Description | 
                        
                        
                                | scene | 
                                0 | 
                                
                                        The upVector is aligned with the up axis of the scene and
                                        worldUpVector and worldUpObject are ignored.
                                 | 
                        
                        
                                | object | 
                                1 | 
                                
                                        The upVector is aimed as closely as possible to the
                                        origin of the space of the worldUpObject and
                                        the worldUpVector is ignored.
                                 | 
                        
                        
                                | objectrotation | 
                                2 | 
                                
                                        The worldUpVector is interpreted as being in
                                        the coordinate space of the worldUpObject, transformed
                                        into world space and the upVector is aligned as
                                        closely as possible to the result.
                                 | 
                        
                        
                                | vector | 
                                3 | 
                                
                                        Default:
                                        The upVector is aligned with worldUpVector as closely as
                                        possible and worldUpMatrix is ignored.
                                 | 
                        
                        
                                | none | 
                                4 | 
                                
                                        No up vector is used in the computation of the orientation of the
                  constrained object; only the aim vector and the target curve's tangents
                  are used. Specifying an up vector can cause flipping to occur when the
                  constrained object's new orientation vector is close to the up vector.
                                        If the worldUpType is instead set to none, this flipping won't happen,
                                        at a loss of control over twisting.
                                 | 
                        
                
        
        While setAttr requires the numeric values for the worldUpType
        attribute, both numeric and mnemonic values are allowed by the
        tangentConstraint command.
        Although the all the constraint nodes inherit from transform,
        they do not actively use any of the attributes from transform.
| Node name | Parents | Classification | MFn type | Compatible function sets | 
|---|
| tangentConstraint | constraint | animation | kTangentConstraint | kBase kNamedObject kDependencyNode kDagNode kTransform kConstraint kTangentConstraint | 
Related nodes
aimConstraint, geometryConstraint, orientConstraint, normalConstraint, parentConstraint, pointConstraint, poleVectorConstraint, scaleConstraint, lookAt
Attributes (47)
aimVector, aimVectorX, aimVectorY, aimVectorZ, constraintJointOrient, constraintJointOrientX, constraintJointOrientY, constraintJointOrientZ, constraintParentInverseMatrix, constraintRotate, constraintRotateOrder, constraintRotatePivot, constraintRotatePivotX, constraintRotatePivotY, constraintRotatePivotZ, constraintRotateTranslate, constraintRotateTranslateX, constraintRotateTranslateY, constraintRotateTranslateZ, constraintRotateX, constraintRotateY, constraintRotateZ, constraintTranslate, constraintTranslateX, constraintTranslateY, constraintTranslateZ, constraintVector, constraintVectorX, constraintVectorY, constraintVectorZ, restRotate, restRotateX, restRotateY, restRotateZ, target, targetGeometry, targetWeight, upVector, upVectorX, upVectorY, upVectorZ, worldUpMatrix, worldUpType, worldUpVector, worldUpVectorX, worldUpVectorY, worldUpVectorZ
| Long name (short name) | Type | Default | Flags | 
|---|
 | 
target 
				(tg)
				 | compound | n/a |       | 
|
 |  targetGeometry 
				(tgm)
				 | Generic | n/a |      |  |
 
  | 
 |  targetWeight 
				(tw)
				 | double | 1.0 |       |  |
 
  | 
 | 
constraintParentInverseMatrix 
				(cpim)
				 | matrix | identity |      | 
|
 | 
aimVector 
				(a)
				 | double3 |  |      | 
|
 |  aimVectorX 
				(ax)
				 | double | 1.0 |      |  |
 
  | 
 |  aimVectorY 
				(ay)
				 | double | 0.0 |      |  |
 
  | 
 |  aimVectorZ 
				(az)
				 | double | 0.0 |      |  |
 
  | 
 | 
upVector 
				(u)
				 | double3 |  |      | 
|
 | 
 | 
 | 
 | 
worldUpVector 
				(wu)
				 | double3 |  |      | 
|
 |  worldUpVectorX 
				(wux)
				 | double | 0.0 |      |  |
 
  | 
 |  worldUpVectorY 
				(wuy)
				 | double | 1.0 |      |  |
 
  | 
 |  worldUpVectorZ 
				(wuz)
				 | double | 0.0 |      |  |
 
  | 
 | 
worldUpMatrix 
				(wum)
				 | matrix | identity |      | 
|
 | 
worldUpType 
				(wut)
				 | enum | 3 vector |      | 
|
 | 
constraintTranslate 
				(ct)
				 | double3 |  |      | 
|
 |  constraintTranslateX 
				(ctx)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 |  constraintTranslateY 
				(cty)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 |  constraintTranslateZ 
				(ctz)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 | 
constraintRotatePivot 
				(crp)
				 | double3 |  |      | 
|
 |  constraintRotatePivotX 
				(crpx)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 |  constraintRotatePivotY 
				(crpy)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 |  constraintRotatePivotZ 
				(crpz)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 | 
constraintRotateTranslate 
				(crt)
				 | double3 |  |      | 
|
 |  constraintRotateTranslateX 
				(crtx)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 |  constraintRotateTranslateY 
				(crty)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 |  constraintRotateTranslateZ 
				(crtz)
				 | distance (double) | 0.0cm |      |  |
 
  | 
 | 
constraintRotateOrder 
				(cro)
				 | enum | 0 |      | 
|
 | 
constraintJointOrient 
				(cjo)
				 | double3 |  |      | 
|
 |  constraintJointOrientX 
				(cjox)
				 | angle (double) | 0.0deg |      |  |
 
  | 
 |  constraintJointOrientY 
				(cjoy)
				 | angle (double) | 0.0deg |      |  |
 
  | 
 |  constraintJointOrientZ 
				(cjoz)
				 | angle (double) | 0.0deg |      |  |
 
  | 
 | 
constraintRotate 
				(cr)
				 | double3 |  |    | 
|
 |  constraintRotateX 
				(crx)
				 | angle (double) | 0.0deg |    |  |
 
  | 
 |  constraintRotateY 
				(cry)
				 | angle (double) | 0.0deg |    |  |
 
  | 
 |  constraintRotateZ 
				(crz)
				 | angle (double) | 0.0deg |    |  |
 
  | 
 | 
constraintVector 
				(cv)
				 | double3 |  |    | 
|
 |  constraintVectorX 
				(cvx)
				 | distance (double) | 0.0cm |    |  |
 
  | 
 |  constraintVectorY 
				(cvy)
				 | distance (double) | 0.0cm |    |  |
 
  | 
 |  constraintVectorZ 
				(cvz)
				 | distance (double) | 0.0cm |    |  |
 
  | 
 | 
restRotate 
				(rsrr)
				 | double3 |  |      | 
|
 |  restRotateX 
				(rrx)
				 | angle (double) | 0.0deg |      |  |
 
  | 
 |  restRotateY 
				(rry)
				 | angle (double) | 0.0deg |      |  |
 
  | 
 |  restRotateZ 
				(rrz)
				 | angle (double) | 0.0deg |      |  |
 
  |