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 함수