MS DCTranslator::exportSelected() { MS status; MSelectionList selection; MGlobal::getActiveSelectionList(selection); MItSelectionList selIt(selection); if (selIt.isDone()) { status.perror("MayaToolKit: Nothing Selected!"); MGlobal::displayWarning("kaleido maya toolkit: Nothing selected!"); return MS::kFailure; } MDagPathArray pathArray; for (; !selIt.isDone(); selIt.next()) { MItDag dagIt(MItDag::kDepthFirst, MFn::kInvalid, &status); MDagPath objPath; status = selIt.getDagPath(objPath); status = dagIt.reset(objPath.node(), MItDag::kDepthFirst, MFn::kInvalid); do { MDagPath dagPath; MObject component = MObject::kNullObj; status = dagIt.getPath(dagPath); MFnDagNode dagNode(dagPath, &status); if (dagNode.isIntermediateObject()) { } else if (dagPath.hasFn(MFn::kMesh)) { if (!dagPath.hasFn(MFn::kTransform)) { SpMesh curMesh{ new Mesh }; status = GetMeshFromNode(dagPath, status, *curMesh); //WriteTheMesh Here if (status == MS::kSuccess) { (*m_MeshArch) << curMesh; MGlobal::displayInfo("Write Mesh finished."); m_Meshes.push_back(curMesh); } else { MGlobal::displayError("Error GetMesh From Node."); } } } else if (dagPath.hasFn(MFn::kCamera)) { if (!dagPath.hasFn(MFn::kTransform)) { pathArray.append(dagPath); } } else if (dagPath.hasFn(MFn::kSpotLight)) { if (!dagPath.hasFn(MFn::kTransform)) { pathArray.append(dagPath); } } dagIt.next(); } while (!dagIt.isDone()); } return status; }