본문으로 건너뛰기

AddPrimitiveCircularTorus

Overloads

NameDescription
AddPrimitiveCircularTorus(int bodyIndex, List<float> radius, float angle, int numberSide, int numberSection, Matrix3D matrix, Color color, bool rebuildData)Body 노드에 Circular Torus Primitive 생성

AddPrimitiveCircularTorus(int bodyIndex, List<float> radius, float angle, int numberSide, int numberSection, Matrix3D matrix, Color color, bool rebuildData)

public int AddPrimitiveCircularTorus(int bodyIndex, List&lt;float&gt; radius, float angle, int numberSide, int numberSection, Matrix3D matrix, Color color, bool rebuildData)

Body 노드에 Circular Torus Primitive 생성

Parameters

NameTypeDescription
bodyIndexint바디(Body) 노드 인덱스
radiusList<float>Radius : [0] Inside, [1] Outside
anglefloatAngle (Degree)
numberSideintNumber Side : Default (12). 6 ~ 36
numberSectionintNumber Section : 숫자가 낮을수록 거친 형상. 높을수록 부드러운 형상(= Max. Angle)
matrixMatrix3DMatrix
colorColorColor
rebuildDatabool데이터 재구성 여부

Returns

TypeDescription
int노드(BODY) 아이디

Examples

// VIZCore3D.NET Control
private VIZCore3D.NET.VIZCore3DControl vizcore3d;

public void Example()
{
// New Empty Model
int index = vizcore3d.Model.NewEmptyModel("MODEL");

string assemblyName = "ASSEMBLY";
VIZCore3D.NET.Data.Node assemblyNode =
vizcore3d.Structure.CreateNode(
index /* Parent Node Index */
, VIZCore3D.NET.Data.NodeKind.ASSEMBLY /* Node Kind */
, assemblyName /* Node Name */
);

string partName = "PART";
VIZCore3D.NET.Data.Node partNode =
vizcore3d.Structure.CreateNode(
assemblyNode.Index /* Parent Node Index */
, VIZCore3D.NET.Data.NodeKind.PART /* Node Kind */
, partName /* Node Name */
);

string bodyName = "BODY";
int bodyId =
vizcore3d.Structure.CreateBody(
partNode.Index /* Parent Node Index */
, bodyName /* Node Name */
);

int bodyIndex = vizcore3d.Object3D.GetBodyIndex(bodyId);

{
List<float> radius = new List<float>();
radius.Add(10); // Inside Radius
radius.Add(20); // Outside Radius

float angle = 90f; // Degree

int numberSide = 12; // Default(12). 6 ~ 36
int numberSection = 10;
//int numberSection = Convert.ToInt32(angle / 10);
//int numberSection = Convert.ToInt32(angle / 15);
//int numberSection = Convert.ToInt32(angle);


VIZCore3D.NET.Data.Matrix3D matrix = new VIZCore3D.NET.Data.Matrix3D();
matrix.Identity();
//matrix.SetRotateX(vizcore3d.View.DegreesToRadians(45.0f));
//matrix.SetTranslate(1000, 0, 0, false);

vizcore3d.MeshEdit.AddPrimitiveCircularTorus(
bodyIndex /* Body Node Index */
, radius /* Radius */
, angle /* Angle */
, numberSide /* Number of Side (12). 6~36 */
, numberSection /* Number Of Section */
, matrix /* Matrix */
, Color.Green /* Color */
, false /* Rebuild Data */
);
}

vizcore3d.Structure.RebuildData();
}