APIEnv_Change3DProjectionSetsID
3D 투영의 파라미터들을 변경합니다.
GSErrCode ACAPI_Environment ( APIEnv_Change3DProjectionSetsID, API_3DProjectionInfo* proj3DInfo, bool* switchOnlyAxonoOrPersp );
파라미터
- proj3DInfo
- [in] '3D Projection Settings...' 다이얼로그의 파라미터들입니다.
- switchOnlyAxonoOrPersp
- [in] 선택적인 파라미터입니다. 만약 이것이
NULL
이 아니며 이 값이true
이면,proj3DInfo
의isPersp
필드만 고려합니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
proj3DInfo
가NULL
입니다.APIERR_NOPLAN
- 열린 프로젝트가 없습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 3D 투영을 변경하는 데 사용합니다.
만약 switchOnlyAxoOrPersp
파라미터에 true
를 전달하면, 투영의 종류(평행 또는 퍼스펙티브)만 변경되고 다른 모든 파라미터들은 무시할 것입니다.
만약 API_3DProjectionInfo의 camGuid
또는 actCamSet
필드의 값이 0이 아니라면,
camGuid
로 식별되는 카메라에 따라 퍼스펙티브 투영이 정의될 것입니다.
만약 camGuid
가 유효하지 않으면, actCamSet
필드에 의해 정의된 카메라 집합의 1번째 카메라를 사용할 것입니다.
그 외의 경우, 퍼스펙티브 설정들은 어떤 평면도 카메라 요소와도 관련이 없으며 API_PerspPars 데이터에 의해 정의될 것입니다.
이 필드들은 액소노메트릭 투영 파라미터들을 변경할 때에는 관련이 없습니다.
예제
/* 다음 퍼스펙티브 카메라로 변경함 */ API_Element element; API_3DProjectionInfo proj3DInfo; GSErrCode err; BNZeroMemory (&proj3DInfo, sizeof (API_3DProjectionInfo)); err = ACAPI_Environment (APIEnv_Get3DProjectionSetsID, &proj3DInfo, NULL, NULL); if (err == NoError && proj3DInfo.isPersp && proj3DInfo.camGuid != APINULLGuid) { BNZeroMemory (&element, sizeof (API_Element)); element.header.guid = proj3DInfo.camGuid; err = ACAPI_Element_Get (&element); if (err == NoError && element.camera.perspCam.nextCam != APINULLGuid) { proj3DInfo.camGuid = element.camera.perspCam.nextCam; err = ACAPI_Environment (APIEnv_Change3DProjectionSetsID, &proj3DInfo, NULL, NULL); } }
요구사항
- 버전: API 3.1 또는 이후
- 헤더: APIdefs_Environment.h
참고사항
APIEnv_Get3DProjectionSetsID, ACAPI_Environment, API_3DProjectionInfo, API 함수