Python API 2.0 Reference
|
Static Public Member Functions | |
def | __new__ () |
Static Public Member Functions inherited from OpenMaya.MFnDagNode | |
def | __new__ () |
Static Public Member Functions inherited from OpenMaya.MFnDependencyNode | |
def | __new__ () |
def | allocateFlag () |
def | classification () |
def | deallocateAllFlags () |
def | deallocateFlag () |
Static Public Member Functions inherited from OpenMaya.MFnBase | |
def | __new__ () |
Static Public Attributes | |
int | kClosed = 2 |
int | kClosedSegment = 4 |
int | kInner = 2 |
int | kInvalid = 0 |
int | kInvalidBoundary = 0 |
int | kLast = 4 |
int | kOpen = 1 |
int | kOuter = 1 |
int | kPeriodic = 3 |
float | kPointTolerance = 0.001 |
int | kSegment = 3 |
Static Public Attributes inherited from OpenMaya.MFnDagNode | |
int | kNextPos = 255 |
Static Public Attributes inherited from OpenMaya.MFnDependencyNode | |
int | kTimerMetrics = 9 |
int | kTimerTypes = 3 |
int | kExtensionAttr = 3 |
int | kInvalidAttr = 4 |
int | kLocalDynamicAttr = 1 |
int | kNormalAttr = 2 |
int | kTimerInvalidState = 3 |
int | kTimerOff = 0 |
int | kTimerOn = 1 |
int | kTimerUninitialized = 2 |
int | kTimerMetric_callback = 0 |
int | kTimerMetric_callbackNotViaAPI = 6 |
int | kTimerMetric_callbackViaAPI = 5 |
int | kTimerMetric_compute = 1 |
int | kTimerMetric_computeDuringCallback = 7 |
int | kTimerMetric_computeNotDuringCallback = 8 |
int | kTimerMetric_dirty = 2 |
int | kTimerMetric_draw = 3 |
int | kTimerMetric_fetch = 4 |
int | kTimerType_count = 2 |
int | kTimerType_inclusive = 1 |
int | kTimerType_self = 0 |
Properties | |
dataObject = property(...) | |
degreeInU = property(...) | |
degreeInV = property(...) | |
formInU = property(...) | |
formInV = property(...) | |
hasHistoryOnCreate = property(...) | |
isBezier = property(...) | |
isFoldedOnBispan = property(...) | |
isTrimmedSurface = property(...) | |
isUniform = property(...) | |
knotDomainInU = property(...) | |
knotDomainInV = property(...) | |
numCVsInU = property(...) | |
numCVsInV = property(...) | |
numKnotsInU = property(...) | |
numKnotsInV = property(...) | |
numNonZeroSpansInU = property(...) | |
numNonZeroSpansInV = property(...) | |
numPatches = property(...) | |
numPatchesInU = property(...) | |
numPatchesInV = property(...) | |
numRegions = property(...) | |
numSpansInU = property(...) | |
numSpansInV = property(...) | |
numUVs = property(...) | |
Properties inherited from OpenMaya.MFnDagNode | |
boundingBox = property(...) | |
inModel = property(...) | |
inUnderWorld = property(...) | |
isInstanceable = property(...) | |
isIntermediateObject = property(...) | |
objectColor = property(...) | |
objectColorRGB = property(...) | |
objectColorType = property(...) | |
useObjectColor = property(...) | |
Properties inherited from OpenMaya.MFnDependencyNode | |
isDefaultNode = property(...) | |
isFromReferencedFile = property(...) | |
isLocked = property(...) | |
isShared = property(...) | |
namespace = property(...) | |
pluginName = property(...) | |
typeId = property(...) | |
typeName = property(...) | |
NURBS (Non-Uniform Rational B-Spline) surface function set. The shape of a NURBS surface is defined by an array of CVs (control vertices), an array of knot values in the U direction and an array of knot values in the V direction, a degree in U and in V, and a form in U and in V. The U and V knot vectors for NURBS surfaces are of size (spansInU + 2*degreeInU -1) and (spansInV + 2*degreeInV -1). Note: spans = numCVs - degree. There are 3 possible forms for the surface in the U and V directions: open, closed and periodic. These forms are described below. Note that the descriptions below apply to both the U and V directions. The open and closed forms are quite similar, and in fact a closed surface will become an open surface if either the first or last CV is moved so that they are no longer coincident. To create an open or closed surface, of degree N, with M spans, you must provide M+N CVs. This implies that for a degree N surface, you must specify at least N+1 CVs to get a surface with a single span. The number of knots required for the surface is M + 2N - 1. If you want the surface to start exactly at the first CV and end exactly at the last CV, then the knot vector must be structured to have degree N multiplicity at the beginning and end. This means that the first N knots must be identical, and the last N knots must be identical. A periodic surface is a special case of a closed surface. Instead of having just the first and last CVs coincident, the last N CVs in the surface, where N is equal to the degree, overlap the first N CVs. This results in a surface with no tangent break where the ends meet. The last N CVs in a periodic surface are permanently bound to the first N CVs, and Maya will not allow those last N CVs to be repositioned. If one or more of the first N CVs of the surface are repositioned, the overlapping CV's will remain bound, and will also be moved. In order to create a periodic surface, you must specify at least 2N+1 CVs, so that that last N can overlap the first N and you still have 1 non-overlapping CV left. The number of CVs required to create a periodic surface is still N+M (with a lower limit of 2N+1), but you must ensure that the positions of the last N CVs are identical to the positions of the first N. You still need M + 2N - 1 knots for a periodic surface, but the knot values required are more restrictive than for open or closed surfaces because of the overlap of the last N CVs. The first N knots should be specified at the beginning of the knot array as values { -(N-1), -(N-2), ... 0 } in order to implement the overlap. Additionally there can be no knot multiplicity at the end of the surface, because that would compromise the tangent continuity property. Note that some third party applications use a different format for knots, where the number of knots required for a surface is M+2N+1 rather than M+2N-1 as used in Maya. Both knot representations are equivalent mathematically. To convert from one of these external representations into the Maya representation, simply omit the first and last knots from the external representation when creating the Maya representation. To convert from the Maya representation into the external representation, add two new knots at the beginning and end of the Maya knot sequence. The value of these new knots depends on the existing knot sequence. For a knot sequence with multiple end knots, simply duplicate the existing first and last knots once more, for example: Maya representation: {0,0,0,...,N,N,N} External representation: {0,0,0,0,...,N,N,N,N} For a knot sequence with uniform end knots, create the new knots offset at an interval equal to the existing first and last knot intervals, for example: Maya representation: {0,1,2,...,N,N+1,N+2} External representation: {-1,0,1,2,...,N,N+1,N+2,N+3} Method resolution order: - MFnNurbsSurface - MFnDagNode - MFnDependencyNode - MFnBase - builtins.object
def OpenMaya.MFnNurbsSurface.__init__ | ( | ) |
Initialize self. See help(type(self)) for accurate signature.
|
static |
Create and return a new object. See help(type) for accurate signature.
def OpenMaya.MFnNurbsSurface.area | ( | ) |
area(space=kObject, tolerance=kPointTolerance) -> float Returns the surface's area, or 0.0 if the area cannot be determined.
def OpenMaya.MFnNurbsSurface.assignUV | ( | ) |
assignUV(patchId, cornerIndex, uvId) -> self Maps a texture coordinate (uv) to a the specified corner of a patch. Note that API methods that modify uv data will work correctly when called through a plug-in node that is in the history of the shape, or when used on a surface shape that does not have history. Modifying uvs directly on a shape with history will result in the modifications getting over-written by the next evaluation of the history attached to the shape. * patchId (int) - Patch to map to. * cornerIndex (int) - Corner of the patch to map to. * uvId (int) - Index into the uv list of the UV to map.
def OpenMaya.MFnNurbsSurface.assignUVs | ( | ) |
assignUVs(uvCounts, uvIds) -> self Maps all texture coordinates for the surface. setUV() and setUVs() are used to create the texture coordinate table for the surface. After the table is created, this method is used to map those values to each patch on a per-corner basis. The uvCounts array should contain the number of uvs per patch. Since uvs are mapped per-patch per-corner, the entries in this array should match the corner counts for each patch in the surface. If an entry in this array is '0' then the corresponding patch will not be mapped. The sum of all the entries in the uvCounts array must be equal to the size of the uvIds array or this method will fail. The uvIds array should contain the UV indices that will be mapped to each patch-corner in the surface. The entries in this array specify which uvs in the surface's uv table are mapped to each patch-corner. Each entry in the uvIds array must be less than numUVs(). The size of the uvIds array is equivalent to adding up all of the entries in the uvCounts array, so for a cube with all patches mapped there would be 24 entries. Note that API methods that modify uv data will work correctly when called through a plug-in node that is in the history of the shape, or when used on a surface shape that does not have history. Modifying uvs directly on a shape with history will result in the modifications getting over-written by the next evaluation of the history attached to the shape. * uvCounts (MIntArray or seq of int) - UV counts for each patch in the surface. * uvIds (MIntArray or seq of int) - UV indices to be mapped to each patch-corner.
def OpenMaya.MFnNurbsSurface.boundaryType | ( | ) |
boundaryType(region, boundary) -> int Returns the type of the specified boundary. The surface must be a trimmed surface. Valid boundary types are: kInner - an inner (clockwise) boundary kOuter - an outser (counter clockwise) boundary kSegment - a curve on a patch kClosedSegment - a closed curve on a patch kInvalidBoundary - an invalid boundary type * region (int) - Region containing the boundary * boundary (int) - Index of the boundary within the region.
def OpenMaya.MFnNurbsSurface.clearUVs | ( | ) |
clearUVs() -> self Clears out all texture coordinates for the nurbsSurface, and leaves behind an empty UVset. This method should be used if it is needed to shrink the size of the UV table. In this case, the user should call clearUVs, setUVs and then assignUVs to rebuild the mapping info. When called on a dataNurbsSurface the UVs are removed. When called on a shape with no history, the UVs are removed and the attributes are set on the shape. When called on a shape with history, the polyDelMap command is invoked and a polyMapDel node is created.
def OpenMaya.MFnNurbsSurface.closestPoint | ( | ) |
closestPoint(testPoint, uStart=None, vStart=None, ignoreTrimBoundaries=False, tolerance=kPointTolerance, space=kObject) -> (MPoint, float, float) Returns the closest point on the surface to the specified test point The return value is a tuple containing the position of the point and and its U and V texture parameters. Performance can be greatly increased by supplying starting U and V parameter values which are reasonably close to the final point. Specifying these values will invoke a special algorithm which will begin to search for the closest point at the given parameter value, and will check the local surface to see which direction will bring it closer to the given point. It then offsets in this direction and repeats the process, iteratively traversing the surface until it finds the closest point. This algorithm will fail if it encounters a seam before reaching the closest point, or if it finds a local closest point, such as a bulge on a mesh where an offset in any direction will take it further from the given point, even if that is not the true closest point on the mesh. For this reason it is advisable to avoid using this option unless absolutely sure that the initial point will be a good enough approximation to the final point that these conditions will not occur. * testPoint (MPoint) - Position of the point to be checked * uStart (float) - Initial guess of a U parameter near where the where the closest point is expected to be. * vStart (float) - Initial guess of a V parameter near where the where the closest point is expected to be. * ignoreTrimBoundaries (bool) - For trimmed surfaces, if this is true the trim curves will be ignored and the entire untrimmed surface searched. * tolerance (float) - How close to the surface must a point be to be considered 'on' the surface. * space (int) - an MSpace constant giving the coordinate space which 'testPoint' is in. The returned point will be in the same space.
def OpenMaya.MFnNurbsSurface.copy | ( | ) |
copy(source, parent=kNullObj) -> MObject Returns a new NURBS surface, which is a copy of the source surface, and sets the functionset to operate on it. * source (MObject)- The surface to copy. * parent (MObject)- The parent/owner of the new surface. If it's a NURBS surface data wrapper (MFn.kNurbsSurfaceData) then the created surface will be returned as a geometry object (MFn.kNurbsSurfaceGeom) owned by the wrapper. If 'parent' is a DAG node then the new surface will be returned as nurbsSurface node parented under it. If 'parent' is not provided then a new top-level transform will be created with the new surface parented beneath it as a nurbsSurface node. In this last case it will be the transform node which is returned.
def OpenMaya.MFnNurbsSurface.create | ( | ) |
create(cvs, uKnots, vKnots, uDegree, vDegree, uForm, vForm, rational, parent=kNullObj) -> MObject Returns a new NURBS surface created from the specified data and sets the function set to operate on it. * cvs (MPointArray or seq of MPoint) - The control vertices. * uKnots (MDoubleArray or seq of float) - Parameter values for the knots in the U direction. * vKnots (MDoubleArray or seq of float) - Parameter values for the knots in the V direction. * uDegree (int) - Degree of the basis functions in the U direction. * vDegree (int) - Degree of the basis functions in the V direction. * uForm (int) - A Form constant (kOpen, kClosed, kPeriodic) giving the surface's form in the U direction. * vForm (int) - A Form constant (kOpen, kClosed, kPeriodic) giving the surface's form in the V direction. * rational (bool) - Create as rational (True) or non-rational (False) surface. * parent (MObject)- The parent/owner of the new surface. If it's a NURBS surface data wrapper (MFn.kNurbsSurfaceData) then the created surface will be returned as a geometry object (MFn.kNurbsSurfaceGeom) owned by the wrapper. If 'parent' is a DAG node then the new surface will be returned as nurbsSurface node parented under it. If 'parent' is not provided then a new top-level transform will be created with the new surface parented beneath it as a nurbsSurface node. In this last case it will be the transform node which is returned.
def OpenMaya.MFnNurbsSurface.cv | ( | ) |
cv(uIndex, vIndex) -> MObject Returns a component for the specified control vertex. * uIndex (int) - U index of the CV. * vIndex (int) - V index of the CV.
def OpenMaya.MFnNurbsSurface.cvPosition | ( | ) |
cvPosition(uIndex, vIndex, space=kObject) -> MPoint Returns the position of the specified control vertex. * uIndex (int) - U index of the CV. * vIndex (int) - V index of the CV. * space (int) - an MSpace constant giving the coordinate space which the point should be returned.
def OpenMaya.MFnNurbsSurface.cvPositions | ( | ) |
cvPositions(space=kObject) -> MPointArray Returns the positions of all the surface's control vertices. * space (int) - an MSpace constant giving the coordinate space which the points should be returned.
def OpenMaya.MFnNurbsSurface.cvsInU | ( | ) |
cvsInU(startUIndex, endUIndex, vIndex) -> MObject Returns a component for a set of control vertices in the U direction. * startUIndex (int) - U index of the first CV to return. * endUIndex (int) - U index of the last CV to return. * vIndex (int) - V index for all of the returned CVs.
def OpenMaya.MFnNurbsSurface.cvsInV | ( | ) |
cvsInV(startVIndex, endVIndex, uIndex) -> MObject Returns a component for a set of control vertices in the V direction. * startVIndex (int) - V index of the first CV to return. * endVIndex (int) - V index of the last CV to return. * uIndex (int) - U index for all of the returned CVs.
def OpenMaya.MFnNurbsSurface.distanceToPoint | ( | ) |
distanceToPoint(point, space=kObject) -> float Returns the distance from the given point to the closest point on the surface. * point (MPoint) - Point to calculate distance to. * space (int) - An MSpace constant giving the coordinate space in which the point has been specified.
def OpenMaya.MFnNurbsSurface.edge | ( | ) |
edge(region, boundary, edge, paramEdge=False) -> MObjectArray Return the specified edge of a trim boundary. For each region of a trimmed surface there may be several boundary curves: an outer curve and possibly several inner boundary curves (which define holes). These boundary curves are made up of one or more curves called edges. The edge is returned as an MObjectArray as it may consist of more than one curve. The returned edge, or trim curve, can be a 2D parameter edge or a 3D edge curve. Note that for closed surfaces some of the 3d edges may be 0 length in which case an empty MObjectArray is returned. An example of this is the poles of a sphere. * region (int) - Index of trimmed region containing the edge. * boundary (int) - Index of boundary within trimmed region. * edge (int) - Index of the edge within the boundary. * paramEdge (bool) - If True a 2D parameter edge is returned, otherwise a 3D edge is returned.
def OpenMaya.MFnNurbsSurface.getAssignedUVs | ( | ) |
getAssignedUVs() -> (MIntArray, MIntArray) Returns the indices of all UVs which have been mapped to the surface. The return value is a tuple with an array containing the number of UVs for each patch in the surface, and a second array containing the indices of the UVs mapped to each corner of those patches. This is the same format as the arrays taken by the assignUVs() method.
def OpenMaya.MFnNurbsSurface.getConnectedShaders | ( | ) |
getConnectedShaders(instanceNumber) -> (MObjectArray, MIntArray) Returns a tuple containing an array of all the shaders (sets) connected to the specified instance of this surface, and an array of patch/shader assignments. The second array will hold, for each patch in the surface, an index into the first array. If a patch does not have a shader assigned to it, the value of the index will be -1. The shader objects can be derived from the sets returned. Note: This method will only work with a MFnNurbsSurface function set which has been initialized with an MFn::kNurbsSurface. See also getConnectedSetsAndMembers. * instanceNumber (int) - Determines which instance of the surface to query. This will be zero if there is only one instance.
def OpenMaya.MFnNurbsSurface.getDerivativesAtParam | ( | ) |
getDerivativesAtParam(uParam, vParam, space=kObject, secondOrder=False) -> (MPoint, MVector, MVector) -> (MPoint, MVector, MVector, MVector, MVector, MVector) Evaluates the surface at the given (u,v) coordinates, returning a tuple containing the position at that point, the first derivative vector in U, and the first derivative vector in V. If 'secondOrder' is True then the tuple will also contain three additional vectors: the second order partial derivative with respect to U (dUU), the second order partial derivative with respect to V (dVV), and the second order partial derivative with respect to U then V (dUV). None of the vectors will be normalized. * uParam (float) - U parameter value at which to do the evaluation. * vParam (float) - V parameter value at which to do the evaluation. * space (int) - An MSpace constant giving the coordinate space in which to perform the calculation. * secondOrder (bool) - If True, second order derivatives will be included in the result. Note that this will increase computation time.
def OpenMaya.MFnNurbsSurface.getParamAtPoint | ( | ) |
getParamAtPoint(point, ignoreTrimBoundaries, tolerance=kPointTolerance, space=kObject) -> (float, float) Returns a tuple containing the parameter values corresponding to the given point on the surface (or underlying surface). * point (MPoint) - Location of the parameter to obtain. * ignoreTrimBoundaries (bool) - For trimmed surfaces, if this is true the trim curves will be ignored and the entire untrimmed surface searched. * tolerance (float) - Accuracy to be used in the operation. * space (int) - An MSpace constant giving the coordinate space in which to perform the operation.
def OpenMaya.MFnNurbsSurface.getPatchUV | ( | ) |
getPatchUV(patchId, cornerIndex) -> (float, float) Returns a tuple containing the texture texture coordinate for a corner of a patch. Since texture coordinates (UVs) are stored per-patch per-corner you must specify both the patch and the corner that the u and v values are mapped to. * patchId (int) - Patch of interest. * cornerIndex (int) - Corner of interest.
def OpenMaya.MFnNurbsSurface.getPatchUVid | ( | ) |
getPatchUVid(patchId, cornerIndex) -> int Returns the id of the texture coordinate for a single corner of a patch. * patchId (int) - Patch of interest. * cornerIndex (int) - Corner of interest.
def OpenMaya.MFnNurbsSurface.getPatchUVs | ( | ) |
getPatchUVs(patchId) -> (MFloatArray, MFloatArray) Returns a tuple containing the values of the texture coordinates on all corners of the specified patch. The tuple contains an array of U coordinates and an array of V coordinates, both the same length. * patchId (int) - Patch of interest.
def OpenMaya.MFnNurbsSurface.getPointAtParam | ( | ) |
getPointAtParam(uParam, vParam, space=kObject) -> MPoint
def OpenMaya.MFnNurbsSurface.getUV | ( | ) |
getUV(uvId) -> (float, float) Returns a tuple containing the U and V values for the a texture coordinate * uvId (int) - Id of the texture coordinate of intest.
def OpenMaya.MFnNurbsSurface.getUVs | ( | ) |
getUVs() -> (MFloatArray, MFloatArray) Returns all of the surface's texture coordinates as a tuple containing an array of U values and an array of V values.
def OpenMaya.MFnNurbsSurface.intersect | ( | ) |
intersect(rayStart, rayDir, tolerance=kPointTolerance, space=kObject, distance=False, exactHit=False, all=False) -> (MPoint, float, float[, float][, bool]) -> (MPointArray, MDoubleArray, MDoubleArray[, MDoubleArray][, bool]) -> None Returns the closest point of intersection of a ray with the surface as a tuple containing the point of intersection and the U and V parameters at that point. * rayStart (MPoint) - Starting point for the ray. * rayDir (MVector) - Direction of the ray * tolerance (float) - Accuracy to be used in the operation. * space (int) - An MSpace constant giving the coordinate space in which to perform the operation.* distance (bool) - If True the distance from 'rayStart' to the point of intersection will be appended to the returned tuple. * exactHit (bool) - If True then a boolean value indicating if the point of intersection was an exact hit will be appended to the returned tuple. * all (bool) - If True then all points of intersection will be returned. In this case the point of intersection, U and V parameters, and distance (if requested) will all be returned as arrays.
def OpenMaya.MFnNurbsSurface.isFlipNorm | ( | ) |
isFlipNorm(region) -> bool Checks whether the normal for the specified region is flipped This method is only valid for trimmed surfaces. region (int) - Region to check.
def OpenMaya.MFnNurbsSurface.isKnotU | ( | ) |
isKnotU(param) -> bool Checks if the specified parameter value is a knot value in the U direction. * param (float) - Parameter value to check.
def OpenMaya.MFnNurbsSurface.isKnotV | ( | ) |
isKnotV(param) -> bool Checks if the specified parameter value is a knot value in the V direction. * param (float) - Parameter value to check.
def OpenMaya.MFnNurbsSurface.isParamOnSurface | ( | ) |
isParamOnSurface(uParam, vParam) -> bool Checks if the specified parameter point is on this surface. * uParam (float) - U parameter value. * vParam (float) - V parameter value.
def OpenMaya.MFnNurbsSurface.isPointInTrimmedRegion | ( | ) |
isPointInTrimmedRegion(uParam, vParam) -> bool Checks if the given point is in a trimmed away region of a trimmed surface. A trimmed away region is the part of the surface that is cut away as a result of a trim operation. * uParam (float) - U parameter of the point to check. * vParam (float) - V parameter of the point to check.
def OpenMaya.MFnNurbsSurface.isPointOnSurface | ( | ) |
isPointOnSurface(point, tolerance=kPointTolerance, space=kObject) -> bool Checks if the given point is on this surface. * point (MPoint) - Point to check. * tolerance (float) - Accuracy to be used in the operation. * space (int) - An MSpace constant giving the coordinate space in which to perform the operation
def OpenMaya.MFnNurbsSurface.knotInU | ( | ) |
knotInU(index) -> float Returns the knot value at the specified U index. U knots are indexed from 0 to numKnotsInU-1. * index (int) - Index of the U knot to return.
def OpenMaya.MFnNurbsSurface.knotInV | ( | ) |
knotInV(index) -> float Returns the knot value at the specified V index. V knots are indexed from 0 to numKnotsInV-1. * index (int) - Index of the V knot to return.
def OpenMaya.MFnNurbsSurface.knotsInU | ( | ) |
knotsInU() -> MDoubleArray Returns all of the surface's knots in the U direction.
def OpenMaya.MFnNurbsSurface.knotsInV | ( | ) |
knotsInV() -> MDoubleArray Returns all of the surface's knots in the V direction.
def OpenMaya.MFnNurbsSurface.normal | ( | ) |
normal(uParam, vParam, space=kObject) -> MVector Returns the normal at the given parameter value on the surface. * uParam (float) - U parameter at which to obtain normal. * vParam (float) - V parameter at which to obtain normal. * space (int) - An MSpace constant giving the coordinate space in which to perform the operation
def OpenMaya.MFnNurbsSurface.numBoundaries | ( | ) |
numBoundaries(region) -> unsigned int Returns the number of boundaries for the specified region. The surface must be a trimmed surface. For each region there may be several boundary curves, an outer curve and possibly several inner boundary curves which define holes. These boundary curves are made up of one or more curves called edges. * region (int) - Region of interest.
def OpenMaya.MFnNurbsSurface.numEdges | ( | ) |
numEdges(region, boundary) -> unsigned int Returns the number of edges for the specified trim boundary. For each region there may be several boundary curves, an outer curve and possibly several inner boundary curves which define holes. These boundary curves are made up of one or more curves called edges. * region (int) - Region of interest. * boundary (int) - Boundary of interest
def OpenMaya.MFnNurbsSurface.projectCurve | ( | ) |
projectCurve(curve[, direction], keepHistory=False) -> self Projects the given curve onto the surface, creating a curve on surface. * direction (MVector) - Direction of projection. If not supplied then surface normals will be used. * keepHistory (bool) - Determines whether the construction history of the projection should be retained.
def OpenMaya.MFnNurbsSurface.removeKnotInU | ( | ) |
removeKnotInU(param, removeAll=False) -> self Removes one or more U knots at the specified parameter value from from the surface. * param (float) - U parameter value of the knot to remove. * removeAll (bool) - If True and there are multiple knots at the parameter value then they will all be removed. Otherwise, all but one will be removed.
def OpenMaya.MFnNurbsSurface.removeKnotInV | ( | ) |
removeKnotInV(param, removeAll=False) -> self Removes one or more V knots at the specified parameter value from from the surface. * param (float) - V parameter value of the knot to remove. * removeAll (bool) - If True and there are multiple knots at the parameter value then they will all be removed. Otherwise, all but one will be removed.
def OpenMaya.MFnNurbsSurface.removeOneKnotInU | ( | ) |
removeOneKnotInU(param) -> self Removes one U knot at the specified parameter value. If there are multiple knots at that the value the others are retained. * param (float) - U parameter value of the knot to remove.
def OpenMaya.MFnNurbsSurface.removeOneKnotInV | ( | ) |
removeOneKnotInV(param) -> self Removes one V knot at the specified parameter value. If there are multiple knots at that the value the others are retained. * param (float) - V parameter value of the knot to remove.
def OpenMaya.MFnNurbsSurface.setCVPosition | ( | ) |
setCVPosition(uIndex, vIndex, point, space=kObject) -> self
def OpenMaya.MFnNurbsSurface.setCVPositions | ( | ) |
setCVPositions(points, space=kObject) -> self Set the positions of all of the surface's CVs. (numCVsInU * numCVsInV) points must be provided. Converting from U and V indices to array indices is done by: array index = numCVsInV * U index + V index To keep this method as fast as possible, no checking of the data is performed beyond ensuring that the total number of CVs passed in is correct. It is up to the caller to ensure that the CVs provide a valid surface, for example by ensuring that overlapping CVs in periodic surfaces have the same positions. * points (MPointArray or seq of MPoint) - Positions of the CVs. * space (int) - An MSpace constant giving the coordinate space in which to perform the operation
def OpenMaya.MFnNurbsSurface.setKnotInU | ( | ) |
setKnotInU(index, param) -> self Sets the value of an existing U knot. U knots are indexed from 0 to numKnotsInU-1. Note that this method does not insert a new knot, it simply changes the value of an existing knot. If a knot value is set that breaks the non-decreasing requirement for the knot array, the knot value will be changed and an exception raised. * index (int) - U index of the knot to set. * param (float) - New parameter value for the knot.
def OpenMaya.MFnNurbsSurface.setKnotInV | ( | ) |
setKnotInV(index, param) -> self Sets the value of an existing V knot. V knots are indexed from 0 to numKnotsInV-1. Note that this method does not insert a new knot, it simply changes the value of an existing knot. If a knot value is set that breaks the non-decreasing requirement for the knot array, the knot value will be changed and an exception raised. * index (int) - V index of the knot to set. * param (float) - New parameter value for the knot.
def OpenMaya.MFnNurbsSurface.setKnotsInU | ( | ) |
setKnotsInU(params, startIndex, endIndex) -> self Sets the values of a range of U knots. * params (MDoubleArray or seq of float) - Parameter values to set at the knots. One value per knot in the range. * startIndex (int) - Index of the first U knot to set. * endIndex (int) - Index of the last U knot to set.
def OpenMaya.MFnNurbsSurface.setKnotsInV | ( | ) |
setKnotsInV(params, startIndex, endIndex) -> self Sets the values of a range of V knots. * params (MDoubleArray or seq of float) - Parameter values to set at the knots. One value per knot in the range. * startIndex (int) - Index of the first V knot to set. * endIndex (int) - Index of the last V knot to set.
def OpenMaya.MFnNurbsSurface.setUV | ( | ) |
setUV(uvId, u, v) -> self Sets a single texture coordinate. If 'uvId' is greater than or equal to numUVs then the surface's uv list will be grown to accommodate it. Note that API methods that modify uv data work correctly either when called through a plug-in node that is in the history of the shape, or when used on a surface shape that does not have history. Modifying uvs directly on a shape with history will result in the modifications getting over-written by the next evaluation of the history attached to the shape. * uvId (int) - Index of the element in the surface's uv list to set. * u (float) - U value to set the uv to. * v (float) - V value to set the uv to.
def OpenMaya.MFnNurbsSurface.setUVs | ( | ) |
setUVs(uList, vList) -> self Sets all of the texture coordinates (uvs) for this surface. The arrays must be of equal length and must be at least of length numUVs. If the arrays are larger than numUVs then the uv list for this surface will be grown to accommodate the new uv values. After using this method to set the UV values, you can call assignUVs to assign the corresponding UVids to the geometry. Note that API methods that modify uv data work correctly either when called through a plug-in node that is in the history of the shape, or when used on a surface shape that does not have history. Modifying uvs directly on a shape with history will result in the modifications getting over-written by the next evaluation of the history attached to the shape. * uList (MFloatArray or seq of float) - U values to set * vList (MFloatArray or seq of float) - V values to set
def OpenMaya.MFnNurbsSurface.tangents | ( | ) |
tangents(uParam, vParam, space=kObject) -> (MVector, MVector) Returns the tangents in the U and V directions at a given parameter value on the surface. The returned tangent vectors are normalized. This method does not fail if the given parameter lies within a trimmed away region of a trimmed surface. Use isPointInTrimmedRegion() to determine if the uv point lies within such a region. * uParam (float) - U parameter value at which to obtain the tangents. * vParam (float) - V parameter value at which to obtain the tangents. * space (int) - An MSpace constant giving the coordinate space in which to perform the operation
def OpenMaya.MFnNurbsSurface.trim | ( | ) |
trim(regionsToKeepU, regionsToKeepV, keepHistory=False) -> self Trims the surface to its curves on surface. Regions which are kept are specified by passing in arrays of u,v parameters. This method will create a new trimmed surface in the DAG. The surface attached to this function set will remain unchanged. * regionsToKeepU (MDoubleArray or seq of float) - U parameters of points within the regions to be kept. * regionsToKeepV (MDoubleArray or seq of float) - V parameters of points within the regions to be kept. * keepHistory (bool) - Determines whether the construction history of the operation should be retained.
def OpenMaya.MFnNurbsSurface.updateSurface | ( | ) |
updateSurface() -> self Signals that this surface has changed and needs to be recalculated. This method is useful when a large number of CVs for the surface are being modified. Instead of updating the surface every time a CV is changed it is more efficient to call this method once after all the updates are complete.
|
static |
If the functionset was created using an MFn.kNurbsSurfaceData object then this attribute will contain an MObject which references that data object. Otherwise it will contain MObject.kNullObj.
|
static |
The degree of the surface in the U direction or 0 if the degree cannot be determined.
|
static |
The degree of the surface in the V direction or 0 if the degree cannot be determined.
|
static |
Form of the surface in the U direction. Can be one of kOpen, kClosed, kPeriodic or kInvalid.
|
static |
Form of the surface in the V direction. Can be one of kOpen, kClosed, kPeriodic or kInvalid.
|
static |
True if the surface was created with history.
|
static |
True if the knot spacing gives a Bezier surface.
|
static |
True if surface contains are any folds or creases on bispan boundaries, including trimmed regions.
|
static |
True if the surface is a trimmed surface.
|
static |
True if the knot spacing is uniform.
|
static |
A tuple containing a pair of floats corresponding to the maximum and minimum U parameter values for this surface.
|
static |
A tuple containing a pair of floats corresponding to the maximum and minimum V parameter values for this surface.
|
static |
Number of CVs in the surface in the U direction or 0 if the number of CVs cannot be determined.
|
static |
Number of CVs in the surface in the V direction or 0 if the number of CVs cannot be determined.
|
static |
Number of knots in the surface in the U direction or 0 if the number of knots cannot be determined.
|
static |
Number of knots in the surface in the V direction or 0 if the number of knots cannot be determined.
|
static |
Number of spans in the U direction which are non-zero (i.e. their max param value is greater than their min param value).
|
static |
Number of spans in the V direction which are non-zero (i.e. their max param value is greater than their min param value).
|
static |
Number of non-zero patches on the surface.
|
static |
Number of non-zero patches in the U direction.
|
static |
Number of non-zero patches in the V direction.
|
static |
Number of trimmed regions for this surface or 0 if the surface is not a trimmed surface.
|
static |
Number of spans in the U direction, including zero-length spans.
|
static |
Number of spans in the V direction, including zero-length spans.
|
static |
Number of texture (uv) coordinates for this surface. The uvs are stored in a list which is referenced by patches requiring textures on a per-patch per-patchCorner basis. This attribute contains the number of elements in this list.