diff --git a/pandatool/src/mayaegg/mayaEggLoader.cxx b/pandatool/src/mayaegg/mayaEggLoader.cxx index 8b8e6267ae..31c79b40e8 100755 --- a/pandatool/src/mayaegg/mayaEggLoader.cxx +++ b/pandatool/src/mayaegg/mayaEggLoader.cxx @@ -594,8 +594,6 @@ public: EggGroup *_parent; MDagPath _shape_dag_path; int _vert_count; - unsigned _uNumCvs; - unsigned _vNumCvs; MFloatPointArray _vertexArray; MVectorArray _normalArray; @@ -885,6 +883,9 @@ public: MDoubleArray _vKnotArray; unsigned _uDegree; unsigned _vDegree; + unsigned _uNumCvs; + unsigned _vNumCvs; + MFnNurbsSurface::Form _uForm; MFnNurbsSurface::Form _vForm; @@ -1108,22 +1109,9 @@ void MayaEggLoader::CreateSkinCluster(MayaEggGeom *M) } MFnSkinCluster skinCluster(oldplugs[0].node()); MIntArray influenceIndices; - MFnComponent *pComponent; - if (shape.typeName() == "mesh") { - MFnSingleIndexedComponent *pSingleComponent = new MFnSingleIndexedComponent(); - pSingleComponent->create(MFn::kMeshVertComponent); - pSingleComponent->setCompleteData(M->_vert_count); - pComponent = pSingleComponent; - } else if (shape.typeName() == "nurbsSurface") { - MFnDoubleIndexedComponent *pDoubleComponent = new MFnDoubleIndexedComponent(); - pDoubleComponent->create(MFn::kSurfaceCVComponent); - pDoubleComponent->setCompleteData(M->_uNumCvs, M->_vNumCvs); - pComponent = pDoubleComponent; - } else { - // we only support mesh and nurbsSurface - return; - } - + MFnSingleIndexedComponent component; + component.create(MFn::kMeshVertComponent); // [gjeon] Interestingly, we can use MFn::kMeshVertComponent for NURBS surface, too + component.setCompleteData(M->_vert_count); for (unsigned int i=0; i_joint_dag_path, &status); if (status != MStatus::kSuccess) { @@ -1145,7 +1133,7 @@ void MayaEggLoader::CreateSkinCluster(MayaEggGeom *M) perror("skinCluster index"); return; } - skinCluster.setWeights(M->_shape_dag_path, pComponent->object(), index, 0.0, false, NULL); + skinCluster.setWeights(M->_shape_dag_path, component.object(), index, 0.0, false, NULL); } MFloatArray values; @@ -1161,7 +1149,7 @@ void MayaEggLoader::CreateSkinCluster(MayaEggGeom *M) values[vert->_index * joints.size() + joint->_index] = (float)strength; } } - skinCluster.setWeights(M->_shape_dag_path, pComponent->object(), influenceIndices, values, false, NULL); + skinCluster.setWeights(M->_shape_dag_path, component.object(), influenceIndices, values, false, NULL); for (unsigned int i=0; i