Cable (Pipe) 생성 및 조작
Cable (Pipe) 생성 및 조작 예제
Cable Item
파라미터 설명
Shape | 라인 | 사각형 | 원 | 정점 |
---|---|---|---|---|
Shape Id | 0 | 1 | 2 | 3 |
Radius | 선두께 | 반지름 | 반지름 | 굵기 |
Vertex Size | 의미 없음(0.0f) | 의미 없음(0.0f) | 의미 없음(0.0f) | 크기 |
Line Count | 라인 개수 | 라인 개수 | 라인 개수 | 정점 개수 |
Line 별 Vertex 개수 | 라인별 Vertex 개수 | 라인별 Vertex 개수 | 라인별 Vertex 개수 | 의미 없음 |
Cable Item은 4종류의 Shape 형식(라인, 사각형, 원, 정점)으로 표시가 가능합니다.
기본 생성 코드
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);
}
깊이 버퍼 사용유무(UseCableItemDepthTest)를 지정하여, 화면에 추가한 Cable Item을 원근감 있게 표현할 수 있습니다.
// 깊이버퍼 사용
Connector.UseCableItemDepthTest( true );
// 깊이버퍼 미사용
Connector.UseCableItemDepthTest( false );
// 현재 깊이버퍼 설정 상태 반환
bool use = Connector.IsUseCableItemDepthTest();
추가된 Cable Item은 개별 ID를 통해 보이기/숨기기 상태를 변경하거나, 추가 시 지정한 GROUP ID를 통해 GROUP 단위로 보이기/숨기기 상태를 변경할 수 있습니다.
// 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();
Last modified: 04 3월 2024