본문으로 건너뛰기

Cable (Pipe) 생성 및 조작

Cable (Pipe) 생성 및 조작 예제


Cable Item

파라미터 설명

항목라인(Line)사각형(Rectangle)원(Circle)정점(Vertex)
Shape라인사각형정점
Shape Id0123
Radius선 두께반지름반지름굵기
Vertex Size의미 없음 (0.0f)의미 없음 (0.0f)의미 없음 (0.0f)크기
Line Count라인 개수라인 개수라인 개수정점 개수
Line 별 Vertex 개수라인별 Vertex 개수라인별 Vertex 개수라인별 Vertex 개수의미 없음
  • Cable Item은 4가지 Shape 형식(라인, 사각형, 원, 정점)으로 표시할 수 있습니다.

Cable Item 기본 생성 예제

private void btnCableItem_Click(object sender, EventArgs e)
{
// 모델이 있는 경우에만 수행
if (Connector.IsOpenDocument() == false) return;

// 렌더링 비활성화
Connector.EnableRender(false);

int PIPE1, PIPE2;

// PIPE1의 라인별 Vertex 개수
List<int> vertexCount1 = new List<int>();
vertexCount1.Add(2);
vertexCount1.Add(3);

// PIPE1의 전체 Vertex Point
List<float> vertexPoints1 = new List<float>();

// PIPE1, LINE1, POINT1
vertexPoints1.Add(19000.0f);
vertexPoints1.Add(1420.0f);
vertexPoints1.Add(9000.0f);

// PIPE1, LINE1, POINT2
vertexPoints1.Add(24000.0f);
vertexPoints1.Add(1420.0f);
vertexPoints1.Add(9000.0f);

// PIPE1, LINE2, POINT1
vertexPoints1.Add(19000.0f);
vertexPoints1.Add(3420.0f);
vertexPoints1.Add(9000.0f);

// PIPE1, LINE2, POINT2
vertexPoints1.Add(24000.0f);
vertexPoints1.Add(3420.0f);
vertexPoints1.Add(9000.0f);

// PIPE1, LINE2, POINT3
vertexPoints1.Add(24000.0f);
vertexPoints1.Add(3420.0f);
vertexPoints1.Add(10000.0f);

PIPE1 = Connector.AddCableItem(
0, /* GROUP ID */
Color.Red, /* LINE COLOR */
CableShapeTypes.Line, /* SHAPE TYPE */
3.0f, /* RADIUS */
0.0f, /* VERTEX SIZE */
true, /* SHOW or HIDE */
2, /* LINE COUNT */
vertexCount1, /* VERTEX COUNT */
vertexPoints1 /* VERTEX POINT */
);

// PIPE2의 라인별 Vertex 개수
List<int> vertexCount2 = new List<int>();
vertexCount2.Add(2);
vertexCount2.Add(2);

// PIPE2의 전체 Vertex Point
List<float> vertexPoints2 = new List<float>();

// PIPE2, LINE1, POINT1
vertexPoints2.Add(19000.0f);
vertexPoints2.Add(5420.0f);
vertexPoints2.Add(9000.0f);

// PIPE2, LINE1, POINT2
vertexPoints2.Add(24000.0f);
vertexPoints2.Add(5420.0f);
vertexPoints2.Add(9000.0f);

// PIPE2, LINE2, POINT1
vertexPoints2.Add(19000.0f);
vertexPoints2.Add(7420.0f);
vertexPoints2.Add(9000.0f);

// PIPE2, LINE2, POINT2
vertexPoints2.Add(24000.0f);
vertexPoints2.Add(7420.0f);
vertexPoints2.Add(9000.0f);

PIPE2 = Connector.AddCableItem(
0, /* GROUP ID */
Color.Black, /* LINE COLOR */
CableShapeTypes.Line, /* SHAPE TYPE */
7.0f, /* RADIUS */
0.0f, /* VERTEX SIZE */
true, /* SHOW or HIDE */
2, /* LINE COUNT */
vertexCount2, /* VERTEX COUNT */
vertexPoints2 /* VERTEX POINT */
);

// 깊이버퍼 사용
Connector.UseCableItemDepthTest(true);

Connector.EnableRender(true);
}

깊이 버퍼(Depth Test) 설정

  • Cable Item에 원근감 표현을 적용할 수 있습니다.
// 깊이버퍼 사용
Connector.UseCableItemDepthTest(true);

// 깊이버퍼 미사용
Connector.UseCableItemDepthTest(false);

// 현재 깊이버퍼 설정 상태 조회
bool use = Connector.IsUseCableItemDepthTest();

Cable Item 표시 / 숨김 제어

  • 개별 ID 또는 GROUP ID 단위로 표시 상태를 제어할 수 있습니다.
// PIPE(1) 항목 보이기
Connector.ShowCableItem(1, true);

// PIPE(1) 항목 숨기기
Connector.ShowCableItem(1, false);

// GROUP(2) 단위 보이기
Connector.ShowCableItemByGroupID(2, true);

// GROUP(2) 단위 숨기기
Connector.ShowCableItemByGroupID(2, false);

// 전체 항목 보이기
Connector.ShowAllCableItem(true);

// 전체 항목 숨기기
Connector.ShowAllCableItem(false);

Cable Item 삭제

  • 개별 ID 또는 GROUP 단위로 삭제할 수 있습니다.
// PIPE(1) 항목 삭제
Connector.DeleteCableItem(1);

// GROUP(2) 삭제
Connector.DeleteCableItemByGroupID(2);

// 전체 항목 삭제
Connector.DeleteAllCableItem();