Graphisoft®

GeometryVersion: 1.0

Polygon2DData

Graphisoft Geometry 폴리곤에 대한 완전한 설명입니다.

    struct Polygon2DData {
      struct {
         unsigned long isBoundBoxValid                : 1;
         unsigned long isOrientationCorrect   : 1;
         unsigned long isSameDirEdgeLegal     : 1;
      } status;
      Box2DData      boundBox;
      long           nVertices;
      Coord**        vertices;
      GSHandle       vertexInfos;
      GSSize         sizeOfVertexInfo;
      GSHandle       defaultVertexInfo;
      GSHandle       inhEdgeInfos;
      GSSize         sizeOfInhEdgeInfo;
      GSHandle       defaultInhEdgeInfo;
      GSHandle       uniqEdgeInfos;
      GSSize         sizeOfUniqEdgeInfo;
      GSHandle       defaultUniqEdgeInfo;
      long           nArcs;
      PolyArcRec**   arcs;
      long           nContours;
      long**         contourEnds;
      GSHandle       contourInfos;
      GSSize         sizeOfContourInfo;
      GSHandle       defaultContourInfo;
      GSHandle       inhPolygonInfo;
      GSSize         sizeOfInhPolygonInfo;
      GSHandle       uniqPolygonInfo;
      GSSize         sizeOfUniqPolygonInfo;
      GSHandle       defaultUniqPolygonInfo;
    };

멤버

status.isBoundBoxValid
만약 boundBox를 리프레시하지 않고 폴리곤이 변경되었다면 1로 세트되어야 합니다.
 
status.isOrientationCorrect
만약 방향을 체크하지 않고 폴리곤이 변경되었다면 1로 세트되어야 합니다.
 
status.isSameDirEdgeLegal
만약 같은 방향을 가진 2개의 연속적인 모서리들이 합법적이면 1로 세트합니다.
 
boundBox
폴리곤의 최소 바운딩 박스입니다. 이것은 status.isBoundBoxValid의 값에 따라 채워지지 않을 수 있습니다.
 
nVertices
정점들의 개수입니다.
 
vertices
폴리곤의 모든 외곽들을 설명하는 정확히 nVertices 개의 Coords들을 포함하는 핸들입니다.
 
vertexInfos
정점들에게 부착된 정보를 포함하는 핸들입니다. 정확히 nVertices 개의 항목들을 포함하고 있어야 합니다. 예를 들어, 폴리곤 기반 메시(mesh)에 대하여 높이 값들을 저장하기 위해 이것을 사용할 수 있습니다.
 
sizeOfVertexInfo
하나의 부착된 정점 정보의 크기입니다.
 
defaultVertexInfo
sizeOfVertexInfo 크기를 갖는 정점 정보의 한 조각입니다. 이 정보는 나중에 수행된 동작들에 의해 생성된 새로운 정점들에게 부착될 것입니다. 이 필드 덕분에 당신은 복잡한 동작 후에 새로 생성된 정점들을 쉽게 추적할 수 있습니다.
 
inhEdgeInfos
모서리들에게 부착된 정보를 포함하는 핸들입니다. 정확히 nVertices 개의 항목들을 포함하고 있어야 합니다. 만약 동작 중에 어떤 모서리가 새로운 여러 개의 모서리들로 분할되면, 이 정보는 새로 생성된 모든 모서리에게 변경 없이 상속됩니다. 예를 들어, 지붕의 측면 각도들을 저장하는 데 사용할 수 있습니다.
 
sizeOfInhEdgeInfo
부착되었던 상속된 모서리 정보의 크기입니다.
 
defaultInhEdgeInfo
sizeOfInhEdgeInfo 크기를 갖는 상속된 모서리 정보의 한 조각입니다. 나중에 수행되는 동작 중에 (분할로 생성되지 않은) 새로운 모서리들에게 이 정보를 부착할 것입니다. 이 필드 덕분에 당신은 복잡한 동작 후에 새로 생성된 모서리들을 쉽게 추적할 수 있습니다.
 
uniqEdgeInfos
모서리들에게 부착되는 정보를 포함하는 핸들입니다. 정확히 nVertices 개의 항목들을 포함하고 있어야 합니다. 만약 동작 중에 어떤 모서리가 여러 개의 조각들로 분할되면, 이 정보는 1번째 항목에서만 상속될 것입니다.
 
sizeOfUniqEdgeInfo
하나의 부착된 유일 모서리 정보의 크기입니다.
 
defaultUniqEdgeInfo
sizeOfUniqEdgeInfo 크기를 갖는 유일 모서리 정보의 한 조각입니다. 나중에 수행되는 동작 중에 새로운 모서리들과 분할로 생성된 모서리들에게 이 정보를 부착할 것입니다. 이 필드 덕분에 당신은 복잡한 동작 후에 새로 생성된 모서리들을 쉽게 추적할 수 있습니다.
 
nArcs
폴리곤 내 호 형태의 모서리들의 개수입니다.
 
arcs
호 형태의 모서리들에 대한 호 정보입니다. 이것은 시작 정점, 끝 정점, 뷰 각도(편향)를 포함하고 있습니다. 이것은 방향을 반영하는 signed 값입니다.
 
nContours
폴리곤을 구성하는 외곽들의 개수입니다.
 
contourEnds
i번째 외곽의 마지막 정점의 인덱스를 포함하는 배열입니다. 정확히 nContours 개의 항목들을 갖고 있어야 합니다.
 
contourInfos
외곽들에게 부착되는 정보를 포함하는 핸들입니다. 정확히 nContours 개의 항목들을 갖고 있어야 합니다. 만약 동작 중에 어떤 외곽이 여러 개의 조각들로 분할되면, 이 정보는 모든 파트들에 의해 상속될 것입니다.
 
sizeOfContourInfo
하나의 부착된 외곽 정보의 크기입니다.
 
defaultContourInfo
sizeOfContourInfo 크기를 갖는 외곽 정보의 한 조각입니다. 나중에 수행되는 동작 중에 분할로 생성된 외곽들에게 이 정보가 부착될 것입니다.
 
inhPolygonInfo
폴리곤에 부착되는 정보를 포함하는 핸들입니다. 이것은 하나의 조각입니다. 만약 폴리곤이 여러 조각들로 분할되면, 이 정보는 각 조각에 의해 상속될 것입니다.
 
sizeOfInhPolygonInfo
부착되었던 상속된 폴리곤 정보의 크기입니다.
 
uniqPolygonInfo
폴리곤에 부착되는 정보를 포함하는 핸들입니다. 이것은 하나의 조각입니다. 만약 폴리곤이 여러 조각들로 분할되면, 이 정보는 1번째 항목에서만 상속될 것입니다.
 
sizeOfUniqPolygonInfo
하나의 부착된 유일 폴리곤 정보의 크기입니다.
 
defaultUniqPolygonInfo
"sizeOfUniqPolygonInfo" 크기를 갖는 외곽 정보의 한 조각입니다. 나중에 수행되는 동작 중에 분할로 생성된 폴리곤들에게 이 정보가 부착될 것입니다.
 

설명

Graphisoft Geometry 폴리곤은 기존 폴리곤의 확장입니다. 이것은 구멍과 곡선 모서리를 가질 수 있지만 곡선 모서리는 원-호만 될 수 있습니다.
이 폴리곤은 모든 정점, 모서리, 외곽 또는 전체 폴리곤에 대한 추가 데이터를 포함하거나 링크할 수 있습니다.
이 구조에서 - C/C++ 관행과 달리 - 모든 인덱스들은 [1..n]입니다. 그래서 0번째 요소는 사용하지 않으며 n번째 요소는 반드시 존재해야 합니다.
Geometry 모듈의 나머지와 마찬가지로, 폴리곤은 항상 기본적으로 양의 방향이어야 합니다.
1번째 정점은 항상 모든 외곽들에 대하여 마지막에 반복되어야 합니다. 그래서 이러한 형태로 표현하면 삼각형은 4개의 정점을 갖습니다. 여기서 1번째와 마지막 정점은 동일합니다.
정규 폴리곤에서 이웃하는 두 정점 간의 최소 거리는 MinPolygon2DDataVertexDistance입니다.
1번째 외곽은 메인 외곽이며 다른 외곽들을 포함해야 합니다.
1번째 외곽은 양의 방향을 가지며 다른 외곽들은 음의 방향을 갖습니다.

요구사항

버전: 1.0 또는 이후
헤더: Polygon2DData.h

참고사항

Polygon2D 함수, 예제