gluEndTrim 함수

gluBeginTrimgluEndTrim 함수는 NURBS(Non-Uniform Rational B-Spline) 트리밍 루프 정의를 구분합니다.

구문

void WINAPI gluEndTrim(
   GLUnurbs *nobj
);

매개 변수

nobj

NURBS 개체( gluNewNurbsRenderer로 생성됨).

반환 값

이 함수는 값을 반환하지 않습니다.

설명

gluBeginTrim을 사용하여 트리밍 루프의 시작을 표시하고 gluEndTrim을 사용하여 트리밍 루프의 끝을 표시합니다. 트리밍 루프는 NURBS 표면의 경계를 정의하는 방향 곡선 세그먼트 집합(닫힌 곡선 형성)입니다. gluBeginSurfacegluEndSurface 호출 사이에 NURBS 표면의 정의에 이러한 트리밍 루프를 포함합니다.

NURBS 표면에 대한 정의에는 많은 트리밍 루프가 포함될 수 있습니다. 예를 들어 구멍이 뚫린 사각형과 유사한 NURBS 표면에 대한 정의를 작성하는 경우 정의에는 두 개의 트리밍 루프가 포함됩니다. 하나의 루프는 사각형의 바깥쪽 가장자리를 정의합니다. 다른 하나는 펀치 아웃 구멍을 정의합니다. 이러한 각 트리밍 루프의 정의는 gluBeginTrimgluEndTrim / 쌍으로 대괄호로 묶입니다.

단일 닫힌 트리밍 루프의 정의는 여러 곡선 세그먼트로 구성될 수 있으며, 각 세그먼트는 선형 곡선을 형성하는 일련의 선 세그먼트( gluPwlCurve 참조), 단일 NURBS 곡선( gluNurbsCurve 참조) 또는 모든 순서의 조합으로 설명됩니다. 트리밍 루프 정의에 나타날 수 있는 유일한 라이브러리 호출( gluBeginTrimgluEndTrim 호출 사이)은 gluPwlCurvegluNurbsCurve입니다.

NURBS 표면의 표시된 영역은 곡선 매개 변수가 증가함에 따라 트리밍 곡선의 왼쪽에 있는 도메인의 영역입니다. 따라서 NURBS 표면의 유지 영역은 시계 반대 방향 트리밍 루프 내부와 시계 방향 트리밍 루프 외부에 있습니다. 앞에서 언급한 사각형의 경우 사각형의 바깥 가장자리에 대한 트리밍 루프는 시계 반대 방향으로 실행되고, 펀치 아웃 구멍에 대한 트리밍 루프는 시계 방향으로 실행됩니다.

둘 이상의 곡선을 사용하여 단일 트리밍 루프를 정의하는 경우 곡선 세그먼트는 닫힌 루프를 형성해야 합니다(즉, 각 곡선의 엔드포인트는 다음 곡선의 시작점이어야 하고 최종 곡선의 엔드포인트는 첫 번째 곡선의 시작점이어야 합니다). 곡선의 엔드포인트가 충분히 닫히지만 정확히 일치하지 않는 경우 일치해야 합니다. 엔드포인트가 충분히 닫히지 않으면 오류가 발생합니다( gluNurbsCallback 참조).

트리밍 루프 정의에 여러 곡선이 포함된 경우 곡선의 방향이 일관되어야 합니다(즉, 내부는 모든 곡선의 왼쪽에 있어야 합니다). 곡선 방향이 올바르게 대체되는 한 중첩된 트리밍 루프를 사용할 수 있습니다. 트리밍 곡선은 자체 교차할 수 없으며 서로 교차할 수도 없습니다(또는 오류 결과).

NURBS 표면에 대한 트리밍 정보가 제공되지 않으면 전체 표면이 그려집니다.

예제

이 코드 조각은 하나의 선형 곡선과 두 개의 NURBS 곡선으로 구성된 트리밍 루프를 정의합니다.

gluBeginTrim(nobj); 
    gluPwlCurve(. . ., GLU_MAP1_TRIM_2); 
    gluNurbsCurve(. . ., GLU_MAP1_TRIM_2); 
    gluNurbsCurve(. . ., GLU_MAP1_TRIM_3);  
gluEndTrim(nobj);

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Glu.h
라이브러리
Glu32.lib
DLL
Glu32.dll

추가 정보

gluBeginSurface

gluEndSurface

gluNewNurbsRenderer

gluNurbsCallback

gluNurbsCurve

gluPwlCurve