Point Cloud Generator 3D

1 개요

무작위 3D 객체를 생성하거나, 이미 존재하는 원본 객체에 병합하는 알고리즘

2 알고리즘 상세 설명

Source Data Result Data
Source Data Result Data
정다면체, 구, 원기둥 등의 간단한 기하학적 대상을 모사한 Point Cloud를 생성하는 알고리즘입니다. 원본 오브젝트 없이도 사용 가능하여 간단한 입력 생성에 사용할 수 있으며, 생성 위치와 길이 비율 입력을 위한 변환행렬(transformation matrix) 파라미터가 지원되어, 복잡한 기하학적 도형을 만드는데도 사용할 수 있습니다.

3 파라미터 설정 및 사용 방법

4 예제

CPointCloudGenerator3D alg;

CFL3DObject floDst;

// 파라미터 설정 // Set parameter
alg.SetDestinationObject(floDst);
alg.EnableColorGeneration(true);
alg.EnableNormalGeneration(false);

int64_t arrI64count[3] = {};

alg.AddPredefinedObject(true, arrI64count, EPredefinedObject_Regular_DodecaHedron, TPoint3<uint8_t>(255, 255, 255));

arrI64count[0] = 4000;
alg.AddPredefinedObject(false, arrI64count, EPredefinedObject_Regular_DodecaHedron, TPoint3<uint8_t>(255, 0, 0));
arrI64count[0] = 0;

arrI64count[1] = 20000;
alg.AddPredefinedObject(false, arrI64count, EPredefinedObject_Regular_DodecaHedron, TPoint3<uint8_t>(0, 255, 0));
arrI64count[1] = 0;

arrI64count[2] = 100000;
alg.AddPredefinedObject(false, arrI64count, EPredefinedObject_Regular_DodecaHedron, TPoint3<uint8_t>(0, 0, 255));
arrI64count[2] = 0;

alg.Execute();

CFL3DObject floDst = new CFL3DObject();

CPointCloudGenerator3D alg = new CPointCloudGenerator3D();

// 파라미터 설정 // Set parameter
alg.SetDestinationObject(ref floDst);
alg.EnableColorGeneration(true);
alg.EnableNormalGeneration(false);

alg.AddPredefinedObject(new CPointCloudGenerator3D.SCountInfo(true, 0, 0, 0), EPredefinedObject.Regular_DodecaHedron, new TPoint3<Byte>(255, 255, 255));
alg.AddPredefinedObject(new CPointCloudGenerator3D.SCountInfo(false, 4000, 0, 0), EPredefinedObject.Regular_DodecaHedron, new TPoint3<Byte>(255, 0, 0));
alg.AddPredefinedObject(new CPointCloudGenerator3D.SCountInfo(false, 0, 20000, 0), EPredefinedObject.Regular_DodecaHedron, new TPoint3<Byte>(0, 255, 0));
alg.AddPredefinedObject(new CPointCloudGenerator3D.SCountInfo(false, 0, 0, 100000), EPredefinedObject.Regular_DodecaHedron, new TPoint3<Byte>(0, 0, 255));

alg.Execute();
floDst = CFL3DObject()
alg = CPointCloudGenerator3D()

# 파라미터 설정 // Set parameter
alg.SetDestinationObject(floDst)
alg.EnableColorGeneration(True)
alg.EnableNormalGeneration(False)

alg.AddPredefinedObject(alg.SCountInfo(True, 0, 0, 0), EPredefinedObject.Regular_DodecaHedron, TPoint3[Byte](255, 255, 255))
alg.AddPredefinedObject(alg.SCountInfo(False, 4000, 0, 0), EPredefinedObject.Regular_DodecaHedron, TPoint3[Byte](255, 0, 0))
alg.AddPredefinedObject(alg.SCountInfo(False, 0, 20000, 0), EPredefinedObject.Regular_DodecaHedron, TPoint3[Byte](0, 255, 0))
alg.AddPredefinedObject(alg.SCountInfo(False, 0, 0, 100000), EPredefinedObject.Regular_DodecaHedron, TPoint3[Byte](0, 0, 255))

alg.Execute()