public override void CreateDisplayedGeometries(DynaShapeDisplay display, List <Node> allNodes) { display.DrawLine( allNodes[NodeIndices[0]].Position, allNodes[NodeIndices[1]].Position, Color); }
public override void CreateDisplayedGeometries(DynaShapeDisplay display, List <Node> allNodes) { List <Triple> vertices = new List <Triple>(); for (int i = 0; i < NodeCount; i++) { vertices.Add(allNodes[NodeIndices[i]].Position); } display.DrawPolyline(vertices, Color, Loop); }
public virtual void CreateDisplayedGeometries(DynaShapeDisplay display, List <Node> allNodes) { }
public override void CreateDisplayedGeometries(DynaShapeDisplay display, List <Node> allNodes) { //====================================================================== // Compute vertex normals by averaging normals of surrounding faces //====================================================================== Triple[] vertexNormals = new Triple[NodeCount]; foreach (IndexGroup face in faces) { Triple A = allNodes[NodeIndices[face.A]].Position; Triple B = allNodes[NodeIndices[face.B]].Position; Triple C = allNodes[NodeIndices[face.C]].Position; Triple n = (B - A).Cross(C - A).Normalise(); vertexNormals[face.A] += n; vertexNormals[face.B] += n; vertexNormals[face.C] += n; if (face.D == uint.MaxValue) { continue; } Triple D = allNodes[NodeIndices[face.D]].Position; n = (C - A).Cross(D - A).Normalise(); vertexNormals[face.A] += n; vertexNormals[face.C] += n; vertexNormals[face.D] += n; } for (int i = 0; i < NodeCount; i++) { vertexNormals[i] = vertexNormals[i].Normalise(); } //=============================================================== // Render mesh triangles, using vertex normals computed above //=============================================================== MeshGeometry3D meshGeometry = new MeshGeometry3D() { Positions = new Vector3Collection(), Normals = new Vector3Collection(), Indices = this.meshIndices, }; for (int i = 0; i < NodeCount; i++) { meshGeometry.Positions.Add(allNodes[NodeIndices[i]].Position.ToVector3()); meshGeometry.Normals.Add(vertexNormals[i].ToVector3()); } display.AddMeshModel( new MeshGeometryModel3D { Geometry = meshGeometry, Material = new PhongMaterial { DiffuseColor = Color }, }); }
public override void CreateDisplayedGeometries(DynaShapeDisplay display, List <Node> allNodes) { Triple center = allNodes[NodeIndices[0]].Position; }
public override void CreateDisplayedGeometries(DynaShapeDisplay display, List <Node> allNodes) { display.DrawText(Text, allNodes[NodeIndices[0]].Position); }