PGEDGEEXT
콜백 폴리곤 동작에서 세그먼트(정점 + 다음 모서리)의 설명입니다.
struct PGEDGEEXT { PGEDGESTATUSEXT status; long filler2; double invlen; Coord begPt; Coord center; double radius; double fi1; double fi2; GSSize sizeOfVertexData; GSPtr vertexData; GSPtr defaultVertexData; GSSize sizeOfInhEdgeData; GSPtr inhEdgeData; GSPtr defaultInhEdgeData; GSSize sizeOfUniqEdgeData; GSPtr uniqEdgeData; GSPtr defaultUniqEdgeData; PGEDGEEXT };
멤버
- status
- 모서리의 상태 정보입니다. PGEDGESTATUSEXT에서 자세한 설명을 보십시오.
- filler2
- 예약되어 있습니다. 반드시 0이어야 합니다.
- invlen
- 모서리의 길이입니다. 또는 곡선 모서리의 경우 다음과 같습니다:
시작 정점과 끝 정점 간의 거리의 반전된 포맷입니다: 1/length.
예: 만약 직선 모서리 길이가 2.0이면 이 필드의 값은 0.5가 됩니다.
당신은 여기에 2개의 상수를 사용할 수도 있습니다: InvLen_NotInited는 이 필드를 사용하는 동작을 방치한다는 것을 의미합니다. 다른 하나인 InvLen_ZeroEdge는 이 모서리의 길이가 0이라는 것을 의미합니다. - begPt
- 모서리의 시작 정점입니다.
- center
- 이 필드는 모서리가 호 형태일 때에만 유효합니다. 호의 중심입니다.
- radius
- 이 필드는 모서리가 호 형태일 때에만 유효합니다. 호의 반지름입니다.
- fi1
- 이 필드는 모서리가 호 형태일 때에만 유효합니다. 호의 시작 방향 각도입니다.
- fi2
- 이 필드는 모서리가 호 형태일 때에만 유효합니다. 호의 끝 방향 각도입니다.
- sizeOfVertexData
- 시작 정점에 부착된 데이터의 크기입니다.
- vertexData
- 시작 정점에 부착된 데이터입니다.
- defaultVertexData
- 이것은 단지 참조입니다! 데이터는 PGPOLYEXT에서 가리키고 있습니다. 시작 정점의 기본 부착된 데이터입니다. 만약 모서리가 나뉘게 되면 새로운 시작 정점을 위해 사용됩니다.
- sizeOfInhEdgeData
- 모서리의 부착된 상속 데이터의 크기입니다.
- inhEdgeData
- 모서리의 부착된 상속 데이터입니다. 이 모서리의 모든 자손들에게 상속될 것입니다.
- defaultInhEdgeData
- 이것은 단지 참조입니다! 데이터는 PGPOLYEXT에서 가리키고 있습니다. 정점의 기본 부착된 상속 데이터입니다. 새로운 모서리를 위해 사용됩니다. (분할되지 않은 모서리에 한함)
- sizeOfUniqEdgeData
- 모서리의 부착된 유일 데이터의 크기입니다.
- uniqEdgeData
- 모서리의 부착된 유일 데이터입니다. 이 모서리의 단 하나의 자손에게만 상속될 것입니다.
- defaultUniqEdgeData
- 이것은 단지 참조입니다! 데이터는 PGPOLYEXT에서 가리키고 있습니다. 정점의 기본 부착된 유일 데이터입니다. 모든 자손 모서리를 위해 사용할 수 있지만 단 하나에게만 적용될 수 있습니다.
설명
부착된 데이터를 사용하는 방법은 2가지가 있습니다.
1번째는 당신이 부착된 데이터와 그것의 크기를 제공하는 것입니다. 그리고 모서리를 복사할 때 동작들은 시작 모서리에 있는 데이터를 복사할 것입니다. (예를 들면 모서리를 나눌 때)
이 방법은 2번째 방법보다 안전합니다.
만약 당신이 동작 중에 변경할 수 있는 부착된 데이터를 제공할 경우 이것을 사용해야 합니다.
2번째는 당신이 크기가 0인 부착된 데이터를 제공하는 것입니다.
이 경우 적절한 (데이터 또는 기본) 포인터만 복사될 것입니다.
이 경우 2개 이상의 포인터들이 동일한 메모리 주소를 가리키는 것이 일반적입니다.
만약 부착된 메모리가 별도로 버려지게 될 경우 그것을 사용할 수 있습니다.
이 방법은 1번째 방법보다 빠릅니다.
요구사항
- 버전: 1.0 또는 이후
- 헤더: Polygon2DOperations.h