UObject* UK2Node_Tunnel::GetJumpTargetForDoubleClick() const { // Try to select the other side of a tunnel node UEdGraphNode* TargetNode = GetOutputSource(); if (TargetNode == NULL) { TargetNode = GetInputSink(); } return TargetNode; }
RESULTCODE PolygonToLineProcessorImpl::Execute() { GError *pError = augeGetErrorInstance(); GLogger *pLogger = augeGetLoggerInstance(); const char* sourceName_in = GetInputSource(); const char* className_in = GetInputFatureClass(); const char* sourceName_out= GetOutputSource(); const char* className_out = GetOutputFatureClass(); if(sourceName_in==NULL) { return AG_FAILURE; } if(className_in==NULL) { return AG_FAILURE; } if(sourceName_out==NULL) { return AG_FAILURE; } if(className_out==NULL) { return AG_FAILURE; } FeatureClass *pinFeatureClass = NULL; FeatureClass *poutFeatureClass= NULL; FeatureWorkspace *pinWorkspace = NULL; FeatureWorkspace *poutWorkspace= NULL; ConnectionManager *pConnManager = augeGetConnectionManagerInstance(); pinWorkspace = dynamic_cast<FeatureWorkspace*>(pConnManager->GetWorkspace(m_user, sourceName_in)); if(pinWorkspace==NULL) { return AG_FAILURE; } poutWorkspace = dynamic_cast<FeatureWorkspace*>(pConnManager->NewWorkspace(m_user, sourceName_out)); if(poutWorkspace==NULL) { return AG_FAILURE; } pinFeatureClass = pinWorkspace->OpenFeatureClass(className_in); if(pinFeatureClass==NULL) { poutWorkspace->Release(); return AG_FAILURE; } GField* pField = pinFeatureClass->GetFields()->GetGeometryField(); if(pField==NULL) { pinFeatureClass->Release(); poutWorkspace->Release(); return AG_FAILURE; } augeGeometryType type = pField->GetGeometryDef()->GeometryType(); if(type!=augeGTPolygon&&type!=augeGTMultiPolygon) { const char* msg = "输入数据集几何类型必须是多边形类型"; pError->SetError(msg); pinFeatureClass->Release(); poutWorkspace->Release(); return AG_FAILURE; } poutFeatureClass = CreateOutputFeatureClass(className_out, poutWorkspace, pinFeatureClass); if(poutFeatureClass==NULL) { poutWorkspace->Release(); return AG_FAILURE; } RESULTCODE rc = AG_FAILURE; rc = Process(pinFeatureClass, poutFeatureClass); poutFeatureClass->Refresh(); poutFeatureClass->Release(); if(rc!=AG_SUCCESS) { poutWorkspace->RemoveFeatureClass(className_out); } pinFeatureClass->Release(); poutWorkspace->Release(); return AG_SUCCESS; }