Mesh Class

A triangle mesh is a type of polygon mesh in computer graphics. It comprises a set of triangles (typically in three dimensions) that are connected by their common edges or corners.

Depending on the types of vertices and triangles, it can assume different configurations, see table below.

Triangles type / Vertices type Point3D PointRGB
IndexTriangle Plain1MulticolorPlain
SmoothTriangle Smooth1MulticolorSmooth
ColorTriangle ColorPlain
ColorSmoothTriangle ColorSmooth
RichTriangle RichPlain
RichSmoothTriangle RichSmooth

1 Allows transparency to be used

Public Class Mesh 
Inherits Entity 
Implements IFace, _ 
IFaceSelectable, _ 
ISelectableSubItems
This language is not supported or no code example is available.
public class Mesh : Entity
IFace
IFaceSelectable
ISelectableSubItems
This language is not supported or no code example is available.
Name Description
Protected constructor Mesh(Mesh)
Public constructor Mesh() Empty constructor. For internal use only. Mesh nature is set to Plain.
Public constructor Mesh(IList<Point3D>, IList<IndexTriangle>) Vertices and triangles constructor.
Public constructor Mesh(SerializationInfo, StreamingContext)
Public constructor Mesh(int, int, natureType) Vertices and triangles sizes constructor.
Public constructor Mesh(natureType) Mesh nature constructor.
Public constructor Mesh(natureType, edgeStyleType) Mesh nature and edge style constructor.
Top
Name Description
Public property AutodeskProperties Gets or sets the Autodesk common properties. (inherited from Entity).
Public property BoxMax Gets the maximum 3D extent of the entity. (inherited from Entity).
Public property BoxMin Gets the minimum 3D extent of the entity. (inherited from Entity).
Public property BoxSize Gets the 3D extent of the entity. (inherited from Entity).
Public property Color Gets or sets the entity color. (inherited from Entity).
Public property ColorMethod Gets or sets the entity color source. (inherited from Entity).
Protected property Compiling Tells if the entity is being compiled. (inherited from Entity).
Public property EdgeStyle Gets or sets the edge style. This setting comes into play during Mesh regeneration only.
Public property Edges Direct access to Mesh edges.
Public property EntityData Gets or sets the entity custom data. If the type implements ICloneable it will be cloned when the Entity is cloned. (inherited from Entity).
Public property Faces The collection of the (sorted) faces for selection.
Public property GroupIndex Gets or sets the entity group index. (inherited from Entity).
Public property IsClosed Tells if a mesh is closed.
Public property LayerName Gets or sets the name of the referenced Layer. (inherited from Entity).
Public property LightWeight
Public property LineTypeMethod Gets or sets the entity line type source. (inherited from Entity).
Public property LineTypeName Gets or sets the line type name of the Environment.LineTypes collection. In use only if the LineTypeMethod is byEntity. (inherited from Entity).
Public property LineTypeScale Gets or sets the line type scale. (inherited from Entity).
Public property LineWeight Gets or sets the entity line weight. (inherited from Entity).
Public property LineWeightMethod Gets or sets the entity line weight source. (inherited from Entity).
Public property MaterialName Gets or sets the entity material name. (inherited from Entity).
Public property MeshNature Gets mesh nature.
Public property NormalAveragingMode Gets or sets the normal averaging prevMode.
Public property Normals Gets or sets the mesh normals.
Public property OrientedBounding A bounding volume that can fit the entity in a different orientation than AABB. It can be an OrientedBoundingBox or an OrientedBoundingRect(for planar entities). UpdateOrientedBoundingBox (inherited from Entity).
Public property RegenMode Gets or sets the entity regeneration mode.
Public property Selectable Gets or sets the value that tells if the top-level item can be selected. (inherited from Entity).
Public property Selected Gets or sets the entity selection status. (inherited from Entity).
Public property SelectionMode Gets or sets the selection mode.
Public property SmoothingAngle Gets or sets the angular value (in radians) used by normal averaging and sharp edges calculation.
Public property TextureCoords Gets or sets mesh texture coordinates.
Public property Triangles Gets or sets the mesh triangles.
Public property Vertices Gets or sets mesh' 3D vertices.
Public property Visible Gets or sets the entity visibility status for the top-level. (inherited from Entity).
Internal protected (Protected Friend) property entityNature Gets or sets the nature of the entity. (inherited from Entity).
Top
Methods
 
Name Description
Protected method AddVerticesToXElement(XElement) For internal use only. (inherited from Entity).
Internal protected (Protected Friend) method AllVerticesInFrustum(FrustumParams) (inherited from Entity).
Internal protected (Protected Friend) method AllVerticesInScreenPolygon(ScreenPolygonParams) Tells if an entity is fully contained inside a polygon defined in screen coordinates. (inherited from Entity).
Internal protected (Protected Friend) method Animate(int) Gives a chance to derived classes to change the entity position/rotation at each timer tick. (inherited from Entity).
Public method ApplyMaterial(string, textureMappingType, double, double) Maps the specified material to this mesh. Before using this method you need to define a material and add it to the Model.Materials collection.
Public method ApplyMaterial(string, textureMappingType, double, double, Point3D, Point3D) Maps the specified material to this mesh. Before using this method you need to define a material and add it to the Model.Materials collection.
Public method ApplyTextureMapping(TextureMappingData) Maps the specified material to this mesh using a custom bounding box. Before using this method you need to define a material and add it to the Model.Materials collection.
Public method ApplyTextureMapping(textureMappingType, double, double) Maps the specified material to this mesh. Before using this method you need to define a material and add it to the Model.Materials collection.
Public method ApplyTextureMapping(textureMappingType, double, double, Point3D, Point3D) Maps the specified material to this mesh using a custom bounding box. Before using this method you need to define a material and add it to the Model.Materials collection.
Public method ApplyTextureMapping(textureMappingType, double, double, Point3D, Point3D, Transformation) Maps the specified material to this mesh using a custom bounding box. Before using this method you need to define a material and add it to the Model.Materials collection.
Public method BuildOctree(int) Builds octree's data.
Internal protected (Protected Friend) method CheckIsSmallArray(int) Ensures that the IsSmall array is big enough to hold data for the specified number of viewports. (inherited from Entity).
Public method ClearFacesSelection(Stack<BlockReference>) Clears the faces selection status for a specific instance.
Public method ClearFacesSelectionForAllInstances() Clears the faces selection status for all instances.
Public method ClearOctree() Clears octree's data.
Public method ClearSelectability(Stack<BlockReference>) Clear the entity selectability status for the defined nested instance. (inherited from Entity).
Public method ClearSelectabilityForAllInstances() Clears the selectability status for all instances. (inherited from Entity).
Public method ClearSelectionForAllInstances() Clears the selection status for all instances. (inherited from Entity).
Public method ClearVisibility(Stack<BlockReference>) Clear the entity visibility status for the defined nested instance. (inherited from Entity).
Public method ClearVisibilityForAllInstances() Clears the visibility status for all instances. (inherited from Entity).
Public method Clone() Creates a deep copy of this mesh entity.
Internal protected (Protected Friend) method CombineBoundingBox(Transformation, Point3D, Point3D) Combines the entity's bounding box with the given bounding box. (inherited from Entity).
Public method Compile(CompileParams) Compiles the graphic representation of this entity.
Internal protected (Protected Friend) method CompileEdges(double, CompileParams) Compiles the graphics data for the edges.
Protected method CompileSelected(CompileParams) Compiles the graphics data for the selection.
Public method CompileSelectedFace(RenderContextBase, FaceElement)
Protected method CompileWire(CompileParams) Compiles the graphics representation of wireframe entities. (inherited from Entity).
Internal protected (Protected Friend) method ComputeBoundingBox(TraversalParams, out Point3D, out Point3D) Computes the entity's bounding box. (inherited from Entity).
Protected method Static ComputeBoundingBox(TraversalParams, IList<Point3D>, out Point3D, out Point3D) Computes the entity's bounding box. (inherited from Entity).
Protected method Static ComputeBoundingBox(TraversalParams, float[], int, out Point3D, out Point3D) (inherited from Entity).
Public method ComputeEdges() Forces mesh edges computation according to the EdgeStyle settings.
Internal protected (Protected Friend) method ComputeOffsetOnCameraAxes(OffsetOnCameraAxesParams) Computes the intersection of the lines passing from the vertices and oriented like the frustum planes with the X and Y axes of the camera. (inherited from Entity).
Internal protected (Protected Friend) method Static ComputeOffsetOnCameraAxes(OffsetOnCameraAxesParams, IList<Point3D>, int) (inherited from Entity).
Internal protected (Protected Friend) method Static ComputeOffsetOnCameraAxes(Transformation, float[], int, Point2D, Point2D, Point2D, Point2D, int) (inherited from Entity).
Public method ConvertToFemMesh(Material, bool) Convert this mesh to a 2D FemMesh object.
Public method ConvertToSolid() Converts this mesh to a Solid object.
Public method ConvertToSolid<T>() Converts this mesh to a Solid object.
Public method ConvertToSurrogate() Converts the entity to its surrogate, for serialization purpose.
Public method CopyAttributes(Entity) Copies the following attributes to this entity: Color, ColorMethod, LineWeight, LineTypePattern, LineTypeMethod, LineWeight, LineWeightMethod, LayerName and MaterialName. (inherited from Entity).
Public method CopyAttributesFast(Entity) Copies the following attributes to this entity: Visible, InstanceVisibilityInfo, Color, ColorMethod, LayerName and MaterialName attributes. (inherited from Entity).
Public method Static CreateArrow(Point3D, Vector3D, double, double, double, double, int, natureType, edgeStyleType) Creates a 3D arrow primitive.
Public method Static CreateArrow(double, double, double, double, int, natureType) Creates a 3D arrow primitive.
Public method Static CreateArrow(double, double, double, double, int, natureType, edgeStyleType) Creates a 3D arrow primitive.
Public method Static CreateArrow<T>(Point3D, Vector3D, double, double, double, double, int, natureType, edgeStyleType) Creates a 3D arrow primitive.
Public method Static CreateArrow<T>(double, double, double, double, int, natureType) Creates a 3D arrow primitive.
Public method Static CreateArrow<T>(double, double, double, double, int, natureType, edgeStyleType) Creates a 3D arrow primitive.
Public method Static CreateBox(double, double, double) Creates a Box primitive.
Public method Static CreateBox(double, double, double, natureType) Creates a Box primitive.
Public method Static CreateBox(double, double, double, natureType, edgeStyleType) Creates a Box primitive.
Public method Static CreateBox<T>(double, double, double) Creates a Box primitive.
Public method Static CreateBox<T>(double, double, double, natureType) Creates a Box primitive.
Public method Static CreateBox<T>(double, double, double, natureType, edgeStyleType) Creates a Box primitive.
Public method Static CreateCone(double, double, Point3D, Point3D, int) Creates a Cone primitive.
Public method Static CreateCone(double, double, Point3D, Point3D, int, natureType) Creates a Cone primitive.
Public method Static CreateCone(double, double, Point3D, Point3D, int, natureType, edgeStyleType) Creates a Cone primitive.
Public method Static CreateCone(double, double, double, int) Creates a Cone primitive.
Public method Static CreateCone(double, double, double, int, natureType) Creates a Cone primitive.
Public method Static CreateCone(double, double, double, int, natureType, edgeStyleType) Creates a Cone primitive.
Public method Static CreateCone<T>(double, double, Point3D, Point3D, int) Creates a Cone primitive.
Public method Static CreateCone<T>(double, double, Point3D, Point3D, int, natureType) Creates a Cone primitive.
Public method Static CreateCone<T>(double, double, Point3D, Point3D, int, natureType, edgeStyleType) Creates a Cone primitive.
Public method Static CreateCone<T>(double, double, double, int) Creates a Cone primitive.
Public method Static CreateCone<T>(double, double, double, int, natureType) Creates a Cone primitive.
Public method Static CreateCone<T>(double, double, double, int, natureType, edgeStyleType) Creates a Cone primitive.
Public method Static CreateCylinder(double, Point3D, Point3D, int) Creates a Cylinder primitive.
Public method Static CreateCylinder(double, Point3D, Point3D, int, natureType) Creates a Cylinder primitive.
Public method Static CreateCylinder(double, Point3D, Point3D, int, natureType, edgeStyleType) Creates a Cylinder primitive.
Public method Static CreateCylinder(double, double, int) Creates a Cylinder primitive.
Public method Static CreateCylinder(double, double, int, natureType) Creates a Cylinder primitive.
Public method Static CreateCylinder(double, double, int, natureType, edgeStyleType) Creates a Cylinder primitive.
Public method Static CreateCylinder<T>(double, Point3D, Point3D, int) Creates a Cylinder primitive.
Public method Static CreateCylinder<T>(double, Point3D, Point3D, int, natureType) Creates a Cylinder primitive.
Public method Static CreateCylinder<T>(double, Point3D, Point3D, int, natureType, edgeStyleType) Creates a Cylinder primitive.
Public method Static CreateCylinder<T>(double, double, int) Creates a Cylinder primitive.
Public method Static CreateCylinder<T>(double, double, int, natureType) Creates a Cylinder primitive.
Public method Static CreateCylinder<T>(double, double, int, natureType, edgeStyleType) Creates a Cylinder primitive.
Public method Static CreatePlanar(ICurve, IList<ICurve>, double, natureType) Obsolete. Triangulates the specified 3D region.
Public method Static CreatePlanar(ICurve, double, natureType) Obsolete. Triangulates the specified 3D region.
Public method Static CreatePlanar(IList<Point3D>, IList<IList<Point3D>>, natureType) Triangulates the specified 3D region.
Public method Static CreatePlanar(IList<Point3D>, natureType) Triangulates the specified 3D region.
Public method Static CreatePlanar(Plane, IList<Point2D>, IList<IList<Point2D>>, natureType) Triangulates the specified 2D region.
Public method Static CreatePlanar(Plane, IList<Point2D>, natureType) Triangulates the specified 2D region.
Public method Static CreatePlanar<T>(ICurve, IList<ICurve>, double, natureType) Obsolete. Triangulates the specified 3D region.
Public method Static CreatePlanar<T>(ICurve, double, natureType) Obsolete. Triangulates the specified 3D region.
Public method Static CreatePlanar<T>(IList<Point3D>, IList<IList<Point3D>>, natureType) Triangulates the specified 3D region.
Public method Static CreatePlanar<T>(IList<Point3D>, natureType) Triangulates the specified 3D region.
Public method Static CreatePlanar<T>(Plane, IList<Point2D>, IList<IList<Point2D>>, natureType) Triangulates the specified 2D region.
Public method Static CreatePlanar<T>(Plane, IList<Point2D>, natureType) Triangulates the specified 2D region.
Public method Static CreateSphere(double, int, int) Creates a Sphere primitive.
Public method Static CreateSphere(double, int, int, natureType) Creates a Sphere primitive.
Public method Static CreateSphere<T>(double, int, int) Creates a Sphere primitive.
Public method Static CreateSphere<T>(double, int, int, natureType) Creates a Sphere primitive.
Public method Static CreateSpring(double, double, int, int, double, double, bool) Creates a Spring primitive.
Public method Static CreateSpring(double, double, int, int, double, double, bool, bool, natureType) Creates a Spring primitive.
Public method Static CreateSpring<T>(double, double, int, int, double, double, bool) Creates a Spring primitive.
Public method Static CreateSpring<T>(double, double, int, int, double, double, bool, bool, natureType) Creates a Spring primitive.
Public method Static CreateTorus(double, double, int, int) Creates a Torus primitive.
Public method Static CreateTorus(double, double, int, int, natureType) Creates a Torus primitive.
Public method Static CreateTorus<T>(double, double, int, int) Creates a Torus primitive.
Public method Static CreateTorus<T>(double, double, int, int, natureType) Creates a Torus primitive.
Public method CutBy(Plane) Cuts the part of the mesh on the positive side of a plane.
Public method CutBy(Plane, bool) Cuts the part of the mesh on the positive side of a plane.
Public method Dispose() Cleans up graphics resources, like display lists, textures, etc.
Internal protected (Protected Friend) method Draw(DrawParams) Draws the entity.
Internal protected (Protected Friend) method DrawDirection(DrawDirectionParams) Draws a small arrow to show the entity direction if DrawCurveDirection is true. (inherited from Entity).
Internal protected (Protected Friend) method DrawEdges(DrawParams) Draws the entity's edges.
Protected method DrawEntity(RenderContextBase, object)
Public method DrawFace(RenderContextBase, object)
Internal protected (Protected Friend) method DrawFast(DrawParams) Draws the entity in fast inaccurate transparency mode. (inherited from Entity).
Internal protected (Protected Friend) method DrawFlat(DrawParams) Draws entity in displayType.Flat DisplayMode.
Internal protected (Protected Friend) method DrawFlatFast(DrawParams) Draws the entity in flat and fast inaccurate transparency mode. (inherited from Entity).
Internal protected (Protected Friend) method DrawFlatSelected(DrawParams) Draws entity selected in displayType.Flat DisplayMode. (inherited from Entity).
Internal protected (Protected Friend) method DrawForSelection(GfxDrawForSelectionParams) Draws the entity without specifing any color.
Internal protected (Protected Friend) method DrawForSelectionEdges(GfxDrawForSelectionParams) Draws the entity edges in false-colors (for some kinds of entities only). (inherited from Entity).
Internal protected (Protected Friend) method DrawForSelectionFaces(GfxDrawForSelectionParams) Draws the entity faces in false-colors (for some kinds of entities only).
Internal protected (Protected Friend) method DrawForSelectionVertices(GfxDrawForSelectionParams) Draws the entity vertices in false-colors (for some kinds of entities only). (inherited from Entity).
Internal protected (Protected Friend) method DrawForSelectionWireframe(GfxDrawForSelectionParams) Draws entity as wires without specifing any color.
Internal protected (Protected Friend) method DrawForShadow(RenderParams) Draws the entity planar shadow.
Internal protected (Protected Friend) method DrawHiddenLines(DrawParams) Draw the entity in the displayType.HiddenLines display mode.
Internal protected (Protected Friend) method DrawHiddenLinesFast(DrawParams) Draw the entity in the displayType.HiddenLines display mode in fast inaccurate transparency mode. (inherited from Entity).
Internal protected (Protected Friend) method DrawHiddenLinesMaterial(RenderParams)
Internal protected (Protected Friend) method DrawHiddenLinesMaterialFast(RenderParams) (inherited from Entity).
Internal protected (Protected Friend) method DrawIsocurves(DrawParams) Draws the entity iso curves. For Mesh entities this method draws internal wires.
Internal protected (Protected Friend) method DrawIsocurvesForFlat(DrawParams) Draws the isocurves in Flat display mode. (inherited from Entity).
Internal protected (Protected Friend) method DrawNormals(DrawParams) Draws entity's normal vectors.
Internal protected (Protected Friend) method DrawOnScreen(DrawOnScreenParams) Draws extra things on screen, like the vertex indices (if Viewport.ShowVertexIndices is true). (inherited from Entity).
Internal protected (Protected Friend) method DrawOnScreen(DrawOnScreenParams, int) Draws extra things on screen, like the vertex indices (if Viewport.ShowVertexIndices is true). (inherited from Entity).
Internal protected (Protected Friend) method DrawOnScreenWireframe(DrawOnScreenWireframeParams) Draws extra things on screen, like the vertex Numbers (if Viewport.ShowVertexIndices is true) in wireframe display mode. (inherited from Entity).
Internal protected (Protected Friend) method DrawOnScreenWireframe(DrawOnScreenWireframeParams, int) Draws extra things on screen, like the vertex Numbers (if Viewport.ShowVertexIndices is true) in wireframe dispaly mode. (inherited from Entity).
Internal protected (Protected Friend) method DrawSelected(DrawParams) Draws entity selected.
Internal protected (Protected Friend) method DrawSelectedVertices(DrawParams) Draws the entity selected vertices. (inherited from Entity).
Internal protected (Protected Friend) method DrawSilhouettes(DrawSilhouettesParams) Draws Silhouettes.
Internal protected (Protected Friend) method DrawVertices(DrawParams) Draws entity's vertices. (inherited from Entity).
Protected method DrawWire(DrawParams) Draws a wireframe entity, resolving the LineTypeName for LineTypeMethod colorMethodType.byParent. (inherited from Entity).
Protected method DrawWireEntity(RenderContextBase, object) Draws the Wireframe entity. (inherited from Entity).
Internal protected (Protected Friend) method DrawWireframe(DrawParams) Draws entity as wires.
Internal protected (Protected Friend) method DrawWireframeSelected(DrawParams) Draws entity as selected wires. (inherited from Entity).
Protected method DrawWithPattern(RenderContextBase, object) (inherited from Entity).
Public method Dump(linearUnitsType, massUnitsType, LayerKeyedCollection, MaterialKeyedCollection, BlockKeyedCollection) Returns a description of this entity.
Public method Equals(Object) Determines whether the specified object is equal to the current object. (inherited from Object).
Public method EstimateBoundingBox(BlockKeyedCollection, LayerKeyedCollection) Returns a small set of points that gives an idea of the entity bounding box.
Protected method EvaluateIntersectEdges(FrustumParams) Tells if must evaluate the intersection of the edges with the frustum.
Protected method EvaluateIntersectTriangles(FrustumParams) Tells if must evaluate the intersection of the triangles with the frustum.
Public method ExtrudePlanar(Vector3D) Extrudes a quasi-planar mesh.
Public method ExtrudePlanar(double, double, double) Extrudes a quasi-planar mesh.
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (inherited from Object).
Public method FindClosestTriangle(Transformation, Segment3D) Returns a list of triangles hit by the provided segment.
Public method FixNormals() Makes triangles winding order uniform.
Public method FlipNormal()
Public method FlipOutward() Flips the mesh normals outward.
Public method FromTriangles(Point3D[]) Generates a smooth Mesh from a list of triangles.
Protected method Static FrustumEdgesTriangleIntersection(Segment3D[], Point3D, Point3D, Point3D) (inherited from Entity).
Internal protected (Protected Friend) method GetAllVertices(TraversalParams, out IList<Point3D>) Gets tesselation vertices of the entity. (inherited from Entity).
Public method GetArea(out Point3D)
Protected method Static GetClosestMainAxis(Vector3D) (inherited from Entity).
Public method GetFaceSelection(int, Stack<BlockReference>) Gets a face selection status.
Public method GetFaceSelection(int, int, Stack<BlockReference>)
Public method GetFaceTriangles(int, double) Gets the triangles adjacent to the given triangle.
Public method GetHashCode Serves as the default hash function. (inherited from Object).
Public method GetMass(Material, linearUnitsType, massUnitsType, out double)
Protected method GetNormalLength() Gets the entity normal length. (inherited from Entity).
Public method GetObjectData(SerializationInfo, StreamingContext) Populates a SerializationInfo instance with the data needed to serialize the target object.
Protected method Static GetOffsetDistance(Vector3D, Vector3D, double) Computes the offset distance for the extrude with draft angle methods. (inherited from Entity).
Public method GetPolygonMeshes() Gets a number of meshes representing this object.
Public method GetSelectability(Stack<BlockReference>) Gets the entity selectability status. (inherited from Entity).
Public method GetSelection(Stack<BlockReference>) Gets the entity selection status. (inherited from Entity).
Public method GetType Gets the Type of the current instance. (inherited from Object).
Public method GetVisibility(Stack<BlockReference>) Gets the entity visibility status. (inherited from Entity).
Public method GetVolume(out Point3D)
Protected method GetXAttributes(bool) For internal use only. (inherited from Entity).
Public method GetXElement(bool) For internal use only.
Protected method InitGraphicsData() Initialize the graphics data.
Internal protected (Protected Friend) method Static InsideFrustumPoint(PlaneEquation[], Transformation, IList<Point3D>, int) (inherited from Entity).
Internal protected (Protected Friend) method InsideOrCrossingFrustum(FrustumParams)
Internal protected (Protected Friend) method Static InsideOrCrossingFrustumInternal(PlaneEquation[], Transformation, IList<Point3D>, int, int) (inherited from Entity).
Internal protected (Protected Friend) method InsideOrCrossingScreenPolygon(ScreenPolygonParams)
Internal protected (Protected Friend) method Static InsideOrCrossingScreenPolygonInternal(ScreenPolygonParams, IList<Point3D>, int, int) (inherited from Entity).
Internal protected (Protected Friend) method Static InsideOrCrossingScreenPolygonPoint(ScreenPolygonParams, IList<Point3D>, int) (inherited from Entity).
Internal protected (Protected Friend) method Intersects(Entity, bool, bool, Transformation, Transformation, out List<Entity>, out string) Checks if two entity intersect geometrically (inherited from Entity).
Internal protected (Protected Friend) method Intersects2D(Entity, bool, bool, Transformation, Transformation, out List<Entity>) Checks if two 2D entity intersect geometrically on Plane XY (inherited from Entity).
Public method IsAnyFaceSelected() Tells if there is a selected face.
Public method IsAnyInstanceSelectable() Tells if there is at least an instance selectable. (inherited from Entity).
Public method IsAnyInstanceSelected() Tells if there is at least an instance selected. (inherited from Entity).
Public method IsAnyInstanceVisible() Tells if there is at least an instance visible. (inherited from Entity).
Internal protected (Protected Friend) method IsCrossing(FrustumParams) Tells if the entity is inside or crossing the given planes and edges. (inherited from Entity).
Internal protected (Protected Friend) method IsCrossingScreenPolygon(ScreenPolygonParams) Tells if an entity is fully or partially contained inside a polygon defined in screen coordinates. (inherited from Entity).
Public method IsInFrustum(FrustumParams) Tells if the entity is inside the frustum planes. (inherited from Entity).
Public method IsInFrustum(FrustumParams, Point3D, double) Tells if the sphere surrounding the entity is inside the frustum planes. (inherited from Entity).
Public method IsPointInside(Point3D) Checks if the specified point is inside the 3D mesh.
Public method IsSelected(Stack<BlockReference>) Obsolete. Tells if the instance referred by the stack of parents is selected. (inherited from Entity).
Internal protected (Protected Friend) method IsSmall(IsSmallParams) Checks if an entity is small and can be skipped during the drawing. (inherited from Entity).
Public method IsSmall(int) Tells if the entity screen size is classified as small/>. (inherited from Entity).
Public method IsValid() Returns true if all the entity fields contain reasonable information.
Internal protected (Protected Friend) method IsVisible(Stack<BlockReference>, LayerKeyedCollection, attributeReferenceVisibilityType) Check if the entity is visible. (inherited from Entity).
Internal protected (Protected Friend) method IsVisibleAndInFrustum(Stack<BlockReference>, LayerKeyedCollection, attributeReferenceVisibilityType) Check if the entity is visible. (inherited from Entity).
Protected method MemberwiseClone Creates a shallow copy of the current Object. (inherited from Object).
Public method MergeWith(Quad, bool) Merges the mesh with a Quad entity that shares an edge with the mesh.
Public method MergeWith(Triangle, bool) Merges the mesh with a Quad entity that shares an edge with the mesh.
Public method MergeWith(Mesh, bool, bool) Merges two compatible Mesh objects.
Public method MergeWith(Quad) Merges the mesh with a Quad entity that shares an edge with the mesh.
Public method MergeWith(Triangle) Merges the mesh with a Quad entity that shares an edge with the mesh.
Internal protected (Protected Friend) method Static PropagateAttributes(Entity, Entity, bool) Propagates the attributes to the entity passed as parameter. (inherited from Entity).
Public method Regen(RegenParams) This method is used for several purposes. For example in arcs and circles is used to generate the curve's linear approximation, in meshes to compute normals and edges and in Nurbs surfaces to generate the triangulation.
Public method RegenNoChanges(double) Computes an array of vertices according to the desired chordal error, without changing the entity's Vertices and RegenMode. (inherited from Entity).
Public method RemoveMaterial() Remove the material and the texture mapping.
Public method RemoveTextureMapping() Remove the texture mapping.
Internal protected (Protected Friend) method Render(RenderParams) Renders the entity.
Internal protected (Protected Friend) method RenderFast(RenderParams) Renders the entity in fast inaccurate transparency mode. (inherited from Entity).
Internal protected (Protected Friend) method ResetIsSmallArray() Resets the array of IsSmall flags. (inherited from Entity).
Public method ResetSelectionMode() Resets the SelectionMode to selectionFilterType.Entity if there are no other selected inner elements.
Public method RevolvePlanar(double, double, Vector3D, Point3D, int, natureType) Revolves a quasi-planar mesh.
Public method Rotate(double, Vector3D, Point3D) Rotates the entity around an arbitrary axis by the specified angle. (inherited from Entity).
Public method Rotate(double, Point3D, Point3D) Rotates the entity around an arbitray axis by the specified angle. (inherited from Entity).
Public method Rotate(double, Vector3D) Rotates the entity around an arbitray axis by the specified angle. (inherited from Entity).
Public method Scale(Point3D, double, double, double) Scales the entity of the specified scale factor. (inherited from Entity).
Public method Scale(Point3D, double) Scales the entity of the specified scale factor. (inherited from Entity).
Public method Scale(Vector3D) Scales the entity of the specified scale factor. (inherited from Entity).
Public method Scale(double) Scales the entity of the specified scale factor. (inherited from Entity).
Public method Scale(double, double, double) Scales the entity of the specified scale factor. (inherited from Entity).
Public method Section(Plane, double) Computes the contours resulting from the intersection of the face and the given plane.
Public method Section(Plane, double, LinkedList<SharedEdge>[]) Computes the contours resulting from the intersection of the face and the given plane.
Public method Section(Plane, double, out SharedEdge[][]) Computes the contours resulting from the intersection of the face and the given plane.
Public method Section(PlaneEquation, LinkedList<SharedEdge>[]) Computes the contours resulting from the intersection of the Mesh and the given plane.
Public method Section(PlaneEquation, out SharedEdge[][]) Computes the contours resulting from the intersection of the Mesh and the given plane.
Public method SelectFace(int, bool, Stack<BlockReference>) Obsolete. Selects the face of the instance identified by the parents stack.
Internal protected (Protected Friend) method SelectedInternal() Tells if the entity has internal parts selected
Internal protected (Protected Friend) method Static SetEntityColorForFace(DrawParams, Color) Sets the entity color or material depending on the color mode. (inherited from Entity).
Internal protected (Protected Friend) method Static SetEntityColorForSelection(DrawParams) Sets the entity color or material depending on the color mode. (inherited from Entity).
Public method SetFaceSelection(int, bool, Stack<BlockReference>) Sets the selection status of a face.
Public method SetFaceSelection(int, int, bool, Stack<BlockReference>)
Public method SetLineWeight(RenderContextBase, float) Line weight changer. (inherited from Entity).
Internal protected (Protected Friend) method SetLineWeightForEdges(DrawEdgesParams)
Internal protected (Protected Friend) method SetLineWeightForSilhouettes(DrawSilhouettesParams)
Public method SetSelectability(bool, Stack<BlockReference>) Sets the entity selectability status. (inherited from Entity).
Public method SetSelection(bool, Stack<BlockReference>) Sets the entity selection status. (inherited from Entity).
Internal protected (Protected Friend) method Static SetSelectionColorForSelection(DrawParams) Sets the selection color or material depending on the color mode. (inherited from Entity).
Internal protected (Protected Friend) method SetShader(DrawParams) Sets a Shader before drawing the entity.
Public method SetVisibility(bool, Stack<BlockReference>) Sets the entity visibility status. (inherited from Entity).
Public method SplitBy(Plane, bool, out Mesh[]) Splits this Mesh object by plane.
Public method SplitBy(Plane, out Mesh[]) Splits this Mesh object by plane.
Public method SplitDisjoint() Divides into separate objects meshes that do not connect, but are still one object.
Public method SubdivideBy(Plane) Subdivides the mesh by a plane.
Internal protected (Protected Friend) method ThroughTriangle(FrustumParams)
Public method Static ThroughTriangleQuad(FrustumParams, IList<Point3D>) Tells if the quad defined by the vertices is inside the selection area defined by the edge list. (inherited from Entity).
Internal protected (Protected Friend) method ThroughTriangleScreenPolygon(ScreenPolygonParams)
Public method Static ThroughTriangleScreenPolygonQuad(IList<Point3D>, ScreenPolygonParams) Tells if the quad defined by the vertices is inside the selection area defined by the screen polygon. (inherited from Entity).
Public method ToString Returns a string that represents the current object. (inherited from Object).
Internal protected (Protected Friend) method TransformAllVertices(Transformation, bool, bool) (inherited from Entity).
Public method TransformBy(Transformation) Transforms all the entity's vertices by the specified transformation.
Public method Translate(double, double, double) Translates the entity. (inherited from Entity).
Public method Translate(Vector3D) Translates the entity. (inherited from Entity).
Public method UpdateBoundingBox(TraversalParams) Updates the entity's bounding box. (inherited from Entity).
Internal protected (Protected Friend) method UpdateBoundingBoxSphere() (inherited from Entity).
Public method UpdateNormals() Refreshes triangles normals.
Public method UpdateOrientedBoundingBox(TraversalParams) Updates the entity's oriented bounding box or build it if not present. (inherited from Entity).
Public method UpdateOrientedBoundingBox(TraversalParams, bool) Updates the entity's oriented bounding box or build it if not present. (inherited from Entity).
Public method Weld() Removes duplicated vertices and degenerated triangles in the Mesh.
Public method Weld(double) Removes duplicated vertices and degenerated triangles in the Mesh with a given tolerance.
Protected method WriteObjAsLines(ref int, TextWriter, ref int, ref int, ref int, TextWriter, LayerKeyedCollection, string, MaterialKeyedCollection, double, double, BlockKeyedCollection) Write in Obj file format as set of lines connecting vertices. (inherited from Entity).
Internal protected (Protected Friend) method WriteUsemtl(int, TextWriter, TextWriter, LayerKeyedCollection) (inherited from Entity).
Protected method WriteUsemtl(string, TextWriter) (inherited from Entity).
Top
Events
 
Name Description
Public event VisibleChanged Occurs when the Visible changes. (inherited from Entity).
Top
Classes
 
Name Description
Public class FaceCollection Class that represents a collection of FaceElement objects.
Public class FaceElement The face element.
Top
Name Description
Public enumeration edgeStyleType Mesh edge style type.
Public enumeration natureType Mesh nature type.
Public enumeration normalAveragingType Mesh normal averaging type.
Top
Fields
 
Name Description
Protected field _localOB (inherited from Entity).
Internal protected (Protected Friend) field drawData Default graphics data. (inherited from Entity).
Internal protected (Protected Friend) field drawEdgesData
Internal protected (Protected Friend) field drawSelectedData
Top
Example
 
The following code samples demonstrate how to use the different mesh natures.
  using System;
  using System.Collections.Generic;
  using System.Drawing;
  using devDept.Eyeshot;
  using devDept.Eyeshot.Entities;
  using devDept.Geometry;
 
  namespace MeshSamples
  {
      internal class Mesh
      {
          private static int rows = 8;
          private static int cols = 8;
          private static double scale = 4;
 
          public static void Plain(Model model)
          {
              List<Point3D> vertices = new List<Point3D>(rows * cols);
              Mesh surface = new Mesh();
              surface.NormalAveragingMode = Mesh.normalAveragingType.Averaged;
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i / 5.0 - 2;
                      double y = -j / 5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x * x + y * y);
                      if (den != 0)
                          f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den;
                      vertices.Add(new Point3D(x, y, f));
                  }
              List<IndexTriangle> triangles = new List<IndexTriangle>((rows - 1) * (cols - 1) * 2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      triangles.Add(new IndexTriangle(i + j * cols,
                                                      i + j * cols + 1,
                                                      i + (j + 1) * cols + 1));
                      triangles.Add(new IndexTriangle(i + j * cols,
                                                      i + (j + 1) * cols + 1,
                                                      i + (j + 1) * cols));
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              model.Entities.Add(surface, 0, Color.Green);
          }
 
          public static void ColoredPlain(Model model)
          {
              List<Point3D> vertices = new List<Point3D>(rows*cols);
              Mesh surface = new Mesh();
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i/5.0 - 2;
                      double y = -j/5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x*x + y*y);
                      if (den != 0)
                          f = scale*Math.Sin(Math.Sqrt(x*x + y*y))/den;
                      vertices.Add(new Point3D(x, y, f));
                  }
              List<ColorTriangle> triangles = new List<ColorTriangle>((rows - 1)*(cols - 1)*2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      // generates a random color
                      int red = (int) (255 - i*100);
                      int green = (int) (255 - j*50);
                      int blue = 127;
                      // clamps color values lat 0-255
                      Utility.LimitRange<int>(0, ref red, 255);
                      Utility.LimitRange<int>(0, ref green, 255);
                      Utility.LimitRange<int>(0, ref blue, 255);
                      triangles.Add(new ColorTriangle(i + j*cols,
                                                      i + j*cols + 1,
                                                      i + (j + 1)*cols + 1, (byte) red, (byte) green, (byte) blue));
                      triangles.Add(new ColorTriangle(i + j*cols,
                                                      i + (j + 1)*cols + 1,
                                                      i + (j + 1)*cols, (byte) red, (byte) green, (byte) blue));
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              model.Entities.Add(surface, 0);
          }
 
          public static void MulticolorPlain(Model model)
          {
              List<PointRGB> vertices = new List<PointRGB>(rows * cols);
              Mesh surface = new Mesh();
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i / 5.0 - 2;
                      double y = -j / 5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x * x + y * y);
                      if (den != 0)
                          f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den;
                      // generates a random color
                      int red = (int)(y * y * 30);
                      int green = (int)(x * x * 30);
                      int blue = (int)(255 - f * f * 1000);
                      // clamps color values lat 0-255
                      Utility.LimitRange<int>(0, ref red, 255);
                      Utility.LimitRange<int>(0, ref green, 255);
                      Utility.LimitRange<int>(0, ref blue, 255);
                      vertices.Add(new PointRGB(x, y, f, (byte)red, (byte)green, (byte)blue));
                  }
              List<IndexTriangle> triangles = new List<IndexTriangle>((rows - 1) * (cols - 1) * 2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      triangles.Add(new IndexTriangle(i + j * cols,
                                                      i + j * cols + 1,
                                                      i + (j + 1) * cols + 1));
                      triangles.Add(new IndexTriangle(i + j * cols,
                                                      i + (j + 1) * cols + 1,
                                                      i + (j + 1) * cols));
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              model.Entities.Add(surface);
          }
 
          public static void TexturedPlain(Model model)
          {
              List<Point3D> vertices = new List<Point3D>(rows * cols);
              List<Point2D> texCoords = new List<Point2D>(rows * cols);
              Mesh surface = new Mesh();
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i / 5.0 - 2;
                      double y = -j / 5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x * x + y * y);
                      if (den != 0)
                          f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den;
                      vertices.Add(new Point3D(x, y, f));
                      texCoords.Add(new Point2D((-x * 5) / (rows - 1), (-y * 5) / (cols - 1)));
                  }
              Bitmap bmp = new Bitmap(Properties.Resources.Smiley);
              Material mat = new Material(bmp);
              model.Materials.Add("test", mat);
              List<RichTriangle> triangles = new List<RichTriangle>((rows - 1) * (cols - 1) * 2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      RichTriangle tri = new RichTriangle(i + j * cols,
                                                          i + j * cols + 1,
                                                          i + (j + 1) * cols + 1);
                      tri.T1 = tri.V1;
                      tri.T2 = tri.V2;
                      tri.T3 = tri.V3;
                      triangles.Add(tri);
                      tri = new RichTriangle(i + j * cols,
                                             i + (j + 1) * cols + 1,
                                             i + (j + 1) * cols);
                      tri.T1 = tri.V1;
                      tri.T2 = tri.V2;
                      tri.T3 = tri.V3;
                      triangles.Add(tri);
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              surface.TextureCoords = texCoords.ToArray();
 
              surface.ColorMethod = colorMethodType.byEntity;
              surface.MaterialName = "test";
 
              model.Entities.Add(surface);
          }
 
          public static void Smooth(Model model)
          {
              List<Point3D> vertices = new List<Point3D>(rows * cols);
              Mesh surface = new Mesh();
              surface.NormalAveragingMode = Mesh.normalAveragingType.Averaged;
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i / 5.0 - 2;
                      double y = -j / 5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x * x + y * y);
                      if (den != 0)
                          f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den;
                      vertices.Add(new Point3D(x, y, f));
                  }
              List<SmoothTriangle> triangles = new List<SmoothTriangle>((rows - 1) * (cols - 1) * 2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      triangles.Add(new SmoothTriangle(i + j * cols,
                                                       i + j * cols + 1,
                                                       i + (j + 1) * cols + 1));
                      triangles.Add(new SmoothTriangle(i + j * cols,
                                                       i + (j + 1) * cols + 1,
                                                       i + (j + 1) * cols));
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              model.Entities.Add(surface, 0, Color.Green);
          }
 
          public static void ColoredSmooth(Model model)
          {
              List<Point3D> vertices = new List<Point3D>(rows * cols);
              Mesh surface = new Mesh();
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i / 5.0 - 2;
                      double y = -j / 5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x * x + y * y);
                      if (den != 0)
                          f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den;
                      vertices.Add(new Point3D(x, y, f));
                  }
              List<ColorSmoothTriangle> triangles = new List<ColorSmoothTriangle>((rows - 1) * (cols - 1) * 2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      // generates a random color
                      int red = (255 - i * 100);
                      int green = (255 - j * 50);
                      int blue = 127;
                      // clamps color values lat 0-255
                      Utility.LimitRange<int>(0, ref red, 255);
                      Utility.LimitRange<int>(0, ref green, 255);
                      Utility.LimitRange<int>(0, ref blue, 255);
                      triangles.Add(new ColorSmoothTriangle(i + j * cols,
                                                            i + j * cols + 1,
                                                            i + (j + 1) * cols + 1, (byte)red, (byte)green, (byte)blue));
                      triangles.Add(new ColorSmoothTriangle(i + j * cols,
                                                            i + (j + 1) * cols + 1,
                                                            i + (j + 1) * cols, (byte)red, (byte)green, (byte)blue));
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              model.Entities.Add(surface, 0);
          }
 
          public static void MulticolorSmooth(Model model)
          {
              List<PointRGB> vertices = new List<PointRGB>(rows * cols);
              Mesh surface = new Mesh();
              surface.NormalAveragingMode = Mesh.normalAveragingType.Averaged;
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i / 5.0 - 2;
                      double y = -j / 5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x * x + y * y);
                      if (den != 0)
                          f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den;
                      // generates a random color
                      int red = (int)(y * y * 30);
                      int green = (int)(x * x * 30);
                      int blue = (int)(255 - f * f * 1000);
                      // clamps color values lat 0-255
                      Utility.LimitRange<int>(0, ref red, 255);
                      Utility.LimitRange<int>(0, ref green, 255);
                      Utility.LimitRange<int>(0, ref blue, 255);
                      vertices.Add(new PointRGB(x, y, f, (byte)red, (byte)green, (byte)blue));
                  }
              List<SmoothTriangle> triangles = new List<SmoothTriangle>((rows - 1) * (cols - 1) * 2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      triangles.Add(new SmoothTriangle(i + j * cols,
                                                       i + j * cols + 1,
                                                       i + (j + 1) * cols + 1));
                      triangles.Add(new SmoothTriangle(i + j * cols,
                                                       i + (j + 1) * cols + 1,
                                                       i + (j + 1) * cols));
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              model.Entities.Add(surface, 0);
          }
 
          public static void TexturedSmooth(Model model)
          {
              List<Point3D> vertices = new List<Point3D>(rows * cols);
              List<Point2D> texCoords = new List<Point2D>(rows * cols);
              Mesh surface = new Mesh();
              for (int j = 0; j < rows; j++)
                  for (int i = 0; i < cols; i++)
                  {
                      double x = -i / 5.0 - 2;
                      double y = -j / 5.0 - 2;
                      double f = 0;
                      double den = Math.Sqrt(x * x + y * y);
                      if (den != 0)
                          f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den;
                      vertices.Add(new Point3D(x, y, f));
                      texCoords.Add(new Point2D((-x * 5) / (rows - 1), (-y * 5) / (cols - 1)));
                  }
              Bitmap bmp = new Bitmap(Properties.Resources.Smiley);
              Material mat = new Material(bmp);
              model.Materials.Add("test", mat);
              List<RichSmoothTriangle> triangles = new List<RichSmoothTriangle>((rows - 1) * (cols - 1) * 2);
              for (int j = 0; j < (rows - 1); j++)
                  for (int i = 0; i < (cols - 1); i++)
                  {
                      RichSmoothTriangle tri = new RichSmoothTriangle(i + j * cols,
                                                                      i + j * cols + 1,
                                                                      i + (j + 1) * cols + 1);
                      tri.T1 = tri.V1;
                      tri.T2 = tri.V2;
                      tri.T3 = tri.V3;
                      triangles.Add(tri);
                      tri = new RichSmoothTriangle(i + j * cols,
                                                   i + (j + 1) * cols + 1,
                                                   i + (j + 1) * cols);
                      tri.T1 = tri.V1;
                      tri.T2 = tri.V2;
                      tri.T3 = tri.V3;
                      triangles.Add(tri);
                  }
              surface.Vertices = vertices.ToArray();
              surface.Triangles = triangles.ToArray();
              surface.TextureCoords = texCoords.ToArray();
 
              surface.MaterialName = "test";
              surface.ColorMethod = colorMethodType.byEntity;
 
              model.Entities.Add(surface, 0);
          }
 
      }
 					
This language is not supported or no code example is available.
  Imports System
  Imports System.Collections.Generic
  Imports System.Drawing
  Imports devDept.Eyeshot
  Imports devDept.Eyeshot.Entities
  Imports devDept.Geometry
  Namespace MeshSamples
      Friend Class Mesh
      	Private Shared rows As Integer = 8
      	Private Shared cols As Integer = 8
      	Private Shared scale As Double = 4
 
      	Public Shared Sub Plain(model As Model)
      		Dim vertices As New List(Of Point3D)(rows * cols)
      		Dim surface As New Mesh()
      		surface.NormalAveragingMode = Mesh.normalAveragingType.Averaged
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				vertices.Add(New Point3D(x, y, f))
      			Next
      		Next
      		Dim triangles As New List(Of IndexTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				triangles.Add(New IndexTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1))
      				triangles.Add(New IndexTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols))
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		model.Entities.Add(surface, 0, Color.Green)
      	End Sub
 
      	Public Shared Sub ColoredPlain(model As Model)
      		Dim vertices As New List(Of Point3D)(rows * cols)
      		Dim surface As New Mesh()
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				vertices.Add(New Point3D(x, y, f))
      			Next
      		Next
      		Dim triangles As New List(Of ColorTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				' generates a random color
      				Dim red As Integer = CInt(255 - i * 100)
      				Dim green As Integer = CInt(255 - j * 50)
      				Dim blue As Integer = 127
      				' clamps color values lat 0-255
      				Utility.LimitRange(Of Integer)(0, red, 255)
      				Utility.LimitRange(Of Integer)(0, green, 255)
      				Utility.LimitRange(Of Integer)(0, blue, 255)
      				triangles.Add(New ColorTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1, CByte(red), CByte(green), CByte(blue)))
      				triangles.Add(New ColorTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols, CByte(red), CByte(green), CByte(blue)))
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		model.Entities.Add(surface, 0)
      	End Sub
 
      	Public Shared Sub MulticolorPlain(model As Model)
      		Dim vertices As New List(Of PointRGB)(rows * cols)
      		Dim surface As New Mesh()
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				' generates a random color
      				Dim red As Integer = CInt(y * y * 30)
      				Dim green As Integer = CInt(x * x * 30)
      				Dim blue As Integer = CInt(255 - f * f * 1000)
      				' clamps color values lat 0-255
      				Utility.LimitRange(Of Integer)(0, red, 255)
      				Utility.LimitRange(Of Integer)(0, green, 255)
      				Utility.LimitRange(Of Integer)(0, blue, 255)
      				vertices.Add(New PointRGB(x, y, f, CByte(red), CByte(green), CByte(blue)))
      			Next
      		Next
      		Dim triangles As New List(Of IndexTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				triangles.Add(New IndexTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1))
      				triangles.Add(New IndexTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols))
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		model.Entities.Add(surface)
      	End Sub
 
      	Public Shared Sub TexturedPlain(model As Model)
      		Dim vertices As New List(Of Point3D)(rows * cols)
      		Dim texCoords As New List(Of Point2D)(rows * cols)
      		Dim surface As New Mesh()
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				vertices.Add(New Point3D(x, y, f))
      				texCoords.Add(New Point2D((-x * 5) / (rows - 1), (-y * 5) / (cols - 1)))
      			Next
      		Next
      		Dim bmp As New Bitmap(Properties.Resources.Smiley)
      		Dim mat As New Material(bmp)
      		model.Materials.Add("test", mat)
      		Dim triangles As New List(Of RichTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				Dim tri As New RichTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1)
      				tri.T1 = tri.V1
      				tri.T2 = tri.V2
      				tri.T3 = tri.V3
      				triangles.Add(tri)
      				tri = New RichTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols)
      				tri.T1 = tri.V1
      				tri.T2 = tri.V2
      				tri.T3 = tri.V3
      				triangles.Add(tri)
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		surface.TextureCoords = texCoords.ToArray()
 
      		surface.ColorMethod = colorMethodType.byEntity
      		surface.MaterialName = "test"
 
      		model.Entities.Add(surface)
      	End Sub
 
      	Public Shared Sub Smooth(model As Model)
      		Dim vertices As New List(Of Point3D)(rows * cols)
      		Dim surface As New Mesh()
      		surface.NormalAveragingMode = Mesh.normalAveragingType.Averaged
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				vertices.Add(New Point3D(x, y, f))
      			Next
      		Next
      		Dim triangles As New List(Of SmoothTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				triangles.Add(New SmoothTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1))
      				triangles.Add(New SmoothTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols))
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		model.Entities.Add(surface, 0, Color.Green)
      	End Sub
 
      	Public Shared Sub ColoredSmooth(model As Model)
      		Dim vertices As New List(Of Point3D)(rows * cols)
      		Dim surface As New Mesh()
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				vertices.Add(New Point3D(x, y, f))
      			Next
      		Next
      		Dim triangles As New List(Of ColorSmoothTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				' generates a random color
      				Dim red As Integer = (255 - i * 100)
      				Dim green As Integer = (255 - j * 50)
      				Dim blue As Integer = 127
      				' clamps color values lat 0-255
      				Utility.LimitRange(Of Integer)(0, red, 255)
      				Utility.LimitRange(Of Integer)(0, green, 255)
      				Utility.LimitRange(Of Integer)(0, blue, 255)
      				triangles.Add(New ColorSmoothTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1, CByte(red), CByte(green), CByte(blue)))
      				triangles.Add(New ColorSmoothTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols, CByte(red), CByte(green), CByte(blue)))
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		model.Entities.Add(surface, 0)
      	End Sub
 
      	Public Shared Sub MulticolorSmooth(model As Model)
      		Dim vertices As New List(Of PointRGB)(rows * cols)
      		Dim surface As New Mesh()
      		surface.NormalAveragingMode = Mesh.normalAveragingType.Averaged
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				' generates a random color
      				Dim red As Integer = CInt(y * y * 30)
      				Dim green As Integer = CInt(x * x * 30)
      				Dim blue As Integer = CInt(255 - f * f * 1000)
      				' clamps color values lat 0-255
      				Utility.LimitRange(Of Integer)(0, red, 255)
      				Utility.LimitRange(Of Integer)(0, green, 255)
      				Utility.LimitRange(Of Integer)(0, blue, 255)
      				vertices.Add(New PointRGB(x, y, f, CByte(red), CByte(green), CByte(blue)))
      			Next
      		Next
      		Dim triangles As New List(Of SmoothTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				triangles.Add(New SmoothTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1))
      				triangles.Add(New SmoothTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols))
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		model.Entities.Add(surface, 0)
      	End Sub
 
      	Public Shared Sub TexturedSmooth(model As Model)
      		Dim vertices As New List(Of Point3D)(rows * cols)
      		Dim texCoords As New List(Of Point2D)(rows * cols)
      		Dim surface As New Mesh()
      		For j As Integer = 0 To rows - 1
      			For i As Integer = 0 To cols - 1
      				Dim x As Double = -i / 5.0 - 2
      				Dim y As Double = -j / 5.0 - 2
      				Dim f As Double = 0
      				Dim den As Double = Math.Sqrt(x * x + y * y)
      				If den <> 0 Then
      					f = scale * Math.Sin(Math.Sqrt(x * x + y * y)) / den
      				End If
      				vertices.Add(New Point3D(x, y, f))
      				texCoords.Add(New Point2D((-x * 5) / (rows - 1), (-y * 5) / (cols - 1)))
      			Next
      		Next
      		Dim bmp As New Bitmap(Properties.Resources.Smiley)
      		Dim mat As New Material(bmp)
      		model.Materials.Add("test", mat)
      		Dim triangles As New List(Of RichSmoothTriangle)((rows - 1) * (cols - 1) * 2)
      		For j As Integer = 0 To (rows - 1) - 1
      			For i As Integer = 0 To (cols - 1) - 1
      				Dim tri As New RichSmoothTriangle(i + j * cols, i + j * cols + 1, i + (j + 1) * cols + 1)
      				tri.T1 = tri.V1
      				tri.T2 = tri.V2
      				tri.T3 = tri.V3
      				triangles.Add(tri)
      				tri = New RichSmoothTriangle(i + j * cols, i + (j + 1) * cols + 1, i + (j + 1) * cols)
      				tri.T1 = tri.V1
      				tri.T2 = tri.V2
      				tri.T3 = tri.V3
      				triangles.Add(tri)
      			Next
      		Next
      		surface.Vertices = vertices.ToArray()
      		surface.Triangles = triangles.ToArray()
      		surface.TextureCoords = texCoords.ToArray()
 
      		surface.MaterialName = "test"
      		surface.ColorMethod = colorMethodType.byEntity
 
      		model.Entities.Add(surface, 0)
      	End Sub
 
      End Class
  End Namespace					
This language is not supported or no code example is available.

.NET Framework

Supported in: 4.5, 4.6, 4.7

In this article

Definition