Module imp3d

Class MeshNode

All Implemented Interfaces:
Transformation, Pickable, Polygonizable, Renderable, Manageable, PersistenceCapable, Shareable, UserFields, XObject, Map, Serializable
Direct Known Subclasses:
GPP, GWedge, LeafMeshImpl, PropertyMeshNode, SphereSegment

public class MeshNode extends ShadedNull implements Pickable, Polygonizable, Renderable
A MeshNode is used to represent a polygonal mesh defined by an instance of Polygons within the graph.
Author:
Ole Kniemeyer
See Also:
  • Field Details

    • polygons

      protected Polygons polygons
      This defines the geometry of this node, namely a polygonal mesh.
    • visibleSides

      protected int visibleSides
    • $TYPE

      public static final Node.NType $TYPE
    • polygons$FIELD

      public static final Node.NType.Field polygons$FIELD
    • visibleSides$FIELD

      public static final Node.NType.Field visibleSides$FIELD
  • Constructor Details

    • MeshNode

      public MeshNode()
    • MeshNode

      public MeshNode(Polygons polygons)
  • Method Details

    • getPolygonizableSource

      public ContextDependent getPolygonizableSource(GraphState gs)
      Description copied from interface: Polygonizable
      Defines the data source on which the polygonization depends.
      Specified by:
      getPolygonizableSource in interface Polygonizable
      Parameters:
      gs - the current graph state
      Returns:
      the data source
    • pick

      public void pick(Object node, boolean asNode, Point3d origin, Vector3d direction, Matrix4d transformation, PickList list)
      Description copied from interface: Pickable
      Computes intersections of a given ray with this shape.
      Specified by:
      pick in interface Pickable
      Parameters:
      node - the object of which this shape is an attribute
      asNode - true iff object is a node
      origin - the origin of the ray, in local coordinates
      direction - the direction of the ray, in local coordinates
      transformation - the transformation from local coordinates to world coordinates
      list - the list to which intersections have to be added
    • getPolygonization

      public Polygonization getPolygonization()
      Description copied from interface: Polygonizable
      Defines the algorithm which is used to decompose the data into a polygon mesh representation.
      Specified by:
      getPolygonization in interface Polygonizable
      Returns:
      polygonization algorithm
    • draw

      public void draw(Object object, boolean asNode, RenderState rs)
      Specified by:
      draw in interface Renderable
    • getNTypeImpl

      protected Node.NType getNTypeImpl()
      Description copied from class: Node
      This method returns the Node.NType which describes the managed fields of the class of this node. This method has to be implemented in every concrete subclass.
      Overrides:
      getNTypeImpl in class ShadedNull
      Returns:
      type describing the managed fields of the class of this node
    • newInstance

      protected Node newInstance()
      Description copied from class: Node
      This method returns a new instance of the class of this node. This method has to be implemented in every concrete subclass.
      Overrides:
      newInstance in class ShadedNull
      Returns:
      new instance of class of this node
    • getVisibleSides

      public int getVisibleSides()
    • setVisibleSides

      public void setVisibleSides(int value)
    • getPolygons

      public Polygons getPolygons()
    • setPolygons

      public void setPolygons(Polygons value)
    • getAreaOfTriangulation

      public static double getAreaOfTriangulation(float[] pointlist)
    • getSurfaceArea

      public double getSurfaceArea()
      Calculates the area of an object. Intersection with other object are not considered.The total area will be calculated.
      Overrides:
      getSurfaceArea in class ShadedNull
      Returns:
      area
    • getVolume

      public double getVolume()
      Calculates the volume. Intersection with other object are not considered.The total volume will be calculated. V=tbd
      Overrides:
      getVolume in class ShadedNull
      Returns:
      volume