APIAny_DeletePolyNodeID
폴리곤으로부터 노드 하나를 제거합니다.
GSErrCode ACAPI_Goodies ( APIAny_DeletePolyNodeID, API_ElementMemo* memo, Int32* inIndex );
파라미터
- memo
- [in/out] 폴리곤 데이터입니다.
- inIndex
- [in] 제거할 노드 인덱스(요소의 서브 인덱스)입니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
- 파라미터들 중 하나 이상이
NULL
입니다. 또는 유효하지 않은nodeIndex
가 전달되었습니다. 또는memo
가 초기화되지 않았습니다. APIERR_MEMFULL
- 메모리가 부족합니다.
APIERR_IRREGULARPOLY
- 입력 폴리곤 또는 폴리라인이 불규칙합니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 API_ElementMemo structure에 전달된 폴리곤으로부터 노드 하나를 제거하는 데 사용합니다.
폴리곤 데이터 structure에 대한 더 자세한 것들을 알려면 API_Polygon structure를 참조하십시오.
API_ElementMemo structure의 coords
, pends
, parcs
, vertexIDs
핸들들은 반드시 초기화되어야 합니다.
다른 메모 핸들들은 건드리지 않는다는 것을 참고하십시오. 폴리곤이 초기화된 사이드 각도들을 가진 지붕에 속한 경우, 이것은 수동으로 정렬되어야 합니다.
예제
/*----------------------------------------------------------** ** Insert a new node into the clicked poly edge ** **----------------------------------------------------------*/ static void Do_Poly_DeleteNode (void) { API_ElementMemo memo; API_Neig neig; API_ElemTypeID idElem; Int32 nodeInd; Int32 nSubPolys, i, begInd, endInd; GSErrCode err; if (!ClickAnElem ("Click a node to delete", API_ZombieElemID, &neig, NULL, NULL, NULL)) { GiveMessage ("Please click a polygon node", true); return; } if (neig.neigID != APINeig_Ceil && neig.neigID != APINeig_Roof) { GiveMessage ("Please click a ceil or roof node", true); return; } idElem = Neig_To_ElemID (neig.neigID); err = ACAPI_Element_GetMemo (neig.guid, &memo); if (err) { GiveMessage_Err ("ACAPI_Element_GetMemo", err); return; } nodeInd = neig.inIndex; err = ACAPI_Goodies (APIAny_DeletePolyNodeID, &memo, &nodeInd); if (!err) { switch (idElem) { case API_SlabID: /* nothing to do */ break; case API_RoofID: if (memo.roofSides != NULL && *memo.roofSides != NULL) { /* delete roofSide rec; [nodeInd] */ } default: return; /* never got there */ } err = ACAPI_Element_ChangeMemo (neig.guid, APIMemoMask_Polygon, &memo); if (err) GiveMessage_Err ("ACAPI_Element_ChangeMemo", err); } else GiveMessage_Err ("APIAny_DeletePolyNodeID", err); ACAPI_DisposeElemMemoHdls (&memo); return; }
요구사항
- 버전: API 4.1 또는 이후
- 헤더: APIdefs_Goodies.h
참고사항
API_Polygon, API_ElementMemo,
APIAny_InsertPolyNodeID, APIAny_InsertSubPolyID, APIAny_DeleteSubPolyID,
ACAPI_Goodies, API 함수