Graphisoft®

API Development KitVersion: 18

ACAPI_Notify_GetTranParams

실제 편집 동작의 변환 파라미터들을 리턴합니다.

    GSErrCode  ACAPI_Notify_GetTranParams (
        API_ActTranPars*     actTranPars
    );

 

파라미터

actTranPars
[out] 리턴되는 변환 파라미터들입니다.

 

리턴 값

NoError
함수가 오류 없이 실행되었습니다.
APIERR_BADPARS
actTranPars 파라미터가 NULL입니다.

다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.

 

설명

이 함수는 실제 편집 동작의 파라미터들을 가져오는 데 사용합니다. 변환 데이터는 APINotifyElement_BeginEvents와 바로 다음에 호출되는 APINotifyElement_EndEvents 알림 사이에서만 유효합니다.

이 함수를 이용하여 사용자의 편집 액션에 따라 당신의 애드온이 일부 요소들을 업데이트 하는 것이 가능해집니다.

 

예제

[ ... ]

API_Neig        **neig;
API_ActTranPars actTranPars;
API_EditPars    editPars;
Int32           elemIndex = 1;      // 이 요소를 변환함
GSErrCode       err;                // 최근 사용자 편집 파라미터들

    case APINotifyElement_Edit:

            BNZeroMemory (&editPars, sizeof (API_EditPars));

            ACAPI_Notify_GetTranParams (&actTranPars);

            switch (actTranPars.typeID) {
                case APIEdit_Drag:
                        editPars.typeID = APIEdit_Drag;
                        editPars.begC.x = 0.0;
                        editPars.endC.y = 0.0;
                        editPars.endC.z = 0.0;
                        editPars.endC.x = actTranPars.theDisp.x;
                        editPars.endC.y = actTranPars.theDisp.y;
                        editPars.endC.z = actTranPars.theDispZ;
                        break;
                case APIEdit_Rotate:
                        editPars.typeID = APIEdit_Rotate;
                        editPars.origC = actTranPars.theOrigo;
                        editPars.begC.x = editPars.origC.x + 1.0;
                        editPars.begC.y = editPars.origC.y;
                        editPars.begC.z = 0.0;
                        editPars.endC.x = editPars.origC.x + actTranPars.theCosA;
                        editPars.endC.y = editPars.origC.y + actTranPars.theSinA;
                        editPars.endC.z = 0.0;
                        break;
                case APIEdit_Mirror:
                        editPars.typeID = APIEdit_Mirror;
                        editPars.begC.x = actTranPars.theOrigo.x;
                        editPars.begC.y = actTranPars.theOrigo.y;
                        editPars.begC.z = 0.0;
                        editPars.endC.x = actTranPars.theOrigo.x + actTranPars.theAxeVect.x;
                        editPars.endC.y = actTranPars.theOrigo.y + actTranPars.theAxeVect.y;
                        editPars.endC.z = 0.0;
                        break;
                case APIEdit_Stretch:
                        editPars.typeID = APIEdit_Stretch;
                        editPars.endC.x = actTranPars.theDisp.x;
                        editPars.endC.y = actTranPars.theDisp.y;
                        editPars.endC.z = 0.0;
                        break;
            }

            editPars.withDelete = true;

            neig = reinterpret_cast<API_Neig**> BMAllocateHandle (sizeof (API_Neig), ALLOCATE_CLEAR, 0);
            if (neig != NULL) {
                (*neig)[0].neigID  = APINeig_CircOn;
                (*neig)[0].index   = elemIndex;
                (*neig)[0].inIndex = 1;

                err = ACAPI_Element_Edit (neig, 1, &editPars);
                if (err != NoError)
                    GiveMessage_Err ("Error in ACAPI_Element_Edit", err);

                BMKillHandle (reinterpret_cast<GSHandle *> &neig);
            }
        }
        break;
}

 

요구사항

버전: API 4.1 또는 이후
헤더: ACAPinc.h

 

참고사항

API_ActTranPars,
알림 관리자, API 함수