
#######
HitItem
#######

.. js:class:: cee.ug.HitItem

   Interface for an object describing the result of a picking action on a :js:class:`RemoteModel <cee.ug.RemoteModel>`\ .
   
   This object is provided to the :js:class:`RayIntersectCallback <cee.ug.RayIntersectCallback>`\ .
   
   
   Index
   =====
   
   .. rubric:: Properties
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:data:`~cee.ug.HitItem.anythingHit`
   * :js:data:`~cee.ug.HitItem.elementArea`
   * :js:data:`~cee.ug.HitItem.elementEdgeIndex`
   * :js:data:`~cee.ug.HitItem.elementFaceIndex`
   * :js:data:`~cee.ug.HitItem.elementId`
   * :js:data:`~cee.ug.HitItem.elementIndex`
   * :js:data:`~cee.ug.HitItem.elementNodeIndex`
   * :js:data:`~cee.ug.HitItem.elementNodeResult`
   * :js:data:`~cee.ug.HitItem.elementResult`
   * :js:data:`~cee.ug.HitItem.elementResultIsInterpolated`
   * :js:data:`~cee.ug.HitItem.elementTriangleVertices`
   * :js:data:`~cee.ug.HitItem.elementType`
   * :js:data:`~cee.ug.HitItem.elementVolume`
   * :js:data:`~cee.ug.HitItem.frameIndex`
   * :js:data:`~cee.ug.HitItem.geometryIndex`
   * :js:data:`~cee.ug.HitItem.intersectionPoint`
   * :js:data:`~cee.ug.HitItem.intersectionPointNormal`
   * :js:data:`~cee.ug.HitItem.intersectionPointResult`
   * :js:data:`~cee.ug.HitItem.nodeId`
   * :js:data:`~cee.ug.HitItem.nodeIndex`
   * :js:data:`~cee.ug.HitItem.nodePosition`
   * :js:data:`~cee.ug.HitItem.nodeResult`
   * :js:data:`~cee.ug.HitItem.nodeResultIsInterpolated`
   * :js:data:`~cee.ug.HitItem.objectId`
   * :js:data:`~cee.ug.HitItem.objectIndex`
   * :js:data:`~cee.ug.HitItem.objectName`
   * :js:data:`~cee.ug.HitItem.objectType`
   * :js:data:`~cee.ug.HitItem.scalarResultName`
   
   



.. rst-class:: kind-group kind-properties

.. rubric:: Properties
   :class: kind-group-title


.. js:data:: cee.ug.HitItem.anythingHit

      .. rst-class:: sig-pretty-signature
      
         | anythingHit: *boolean*
      
      Whether anything was hit during the action. If false, the other properties in this object will be undefined.
      



.. js:data:: cee.ug.HitItem.elementArea

      .. rst-class:: sig-pretty-signature
      
         | elementArea: *number*
      
      The area of the element (if applicable)
      



.. js:data:: cee.ug.HitItem.elementEdgeIndex

      .. rst-class:: sig-pretty-signature
      
         | elementEdgeIndex: *number*
      
      The local index (zero based) of the closest element edge to the actual intersection point in the data model on the server that was hit
      



.. js:data:: cee.ug.HitItem.elementFaceIndex

      .. rst-class:: sig-pretty-signature
      
         | elementFaceIndex: *number*
      
      The local index (zero based) of the element face that was hit
      



.. js:data:: cee.ug.HitItem.elementId

      .. rst-class:: sig-pretty-signature
      
         | elementId: *number*
      
      The id of the element in the data model on the server that was hit
      



.. js:data:: cee.ug.HitItem.elementIndex

      .. rst-class:: sig-pretty-signature
      
         | elementIndex: *number*
      
      The index (zero based) of the element in the data model on the server that was hit
      



.. js:data:: cee.ug.HitItem.elementNodeIndex

      .. rst-class:: sig-pretty-signature
      
         | elementNodeIndex: *number*
      
      The local index (zero based) of the closest element node to the actual intersection point in the data model on the server that was hit
      



.. js:data:: cee.ug.HitItem.elementNodeResult

      .. rst-class:: sig-pretty-signature
      
         | elementNodeResult: *number*
      
      The scalar result in the closest element node. Only defined if the current result is per element node
      



.. js:data:: cee.ug.HitItem.elementResult

      .. rst-class:: sig-pretty-signature
      
         | elementResult: *number*
      
      The scalar result in the element that was hit.
      



.. js:data:: cee.ug.HitItem.elementResultIsInterpolated

      .. rst-class:: sig-pretty-signature
      
         | elementResultIsInterpolated: *boolean*
      
      Whether the element result is interpolated (e.g. from a nodal result). False if the result is an actual per element result.
      



.. js:data:: cee.ug.HitItem.elementTriangleVertices

      .. rst-class:: sig-pretty-signature
      
         | elementTriangleVertices: *number*\ []
      
      A tessellation of triangles of the element that was hit.
      
      This array contains x,y,z values for each triangle vertex. So there will be 9 values (3 vertices \* (x,y,z)) per triangle. This can be used to highlight the selected element using the geometry or the markup model.
      



.. js:data:: cee.ug.HitItem.elementType

      .. rst-class:: sig-pretty-signature
      
         | elementType: *string*
      
      The type of the element in the data model on the server that was hit, for example 'Quad', 'Tetrahedron', 'Hexahedron'
      



.. js:data:: cee.ug.HitItem.elementVolume

      .. rst-class:: sig-pretty-signature
      
         | elementVolume: *number*
      
      The volume of the element (if applicable)
      



.. js:data:: cee.ug.HitItem.frameIndex

      .. rst-class:: sig-pretty-signature
      
         | frameIndex: *number*
      
      The index of the frame in which the picking occurred. This is 0 unless there is an animation.
      



.. js:data:: cee.ug.HitItem.geometryIndex

      .. rst-class:: sig-pretty-signature
      
         | geometryIndex: *number*
      
      The index of the CAE geometry.
      
      In almost all cases this will be 0. If using a partially adaptive model with remeshing only on parts of the model (e.g. in a Forging process) the concept of multiple geometries might be relevant.
      



.. js:data:: cee.ug.HitItem.intersectionPoint

      .. rst-class:: sig-pretty-signature
      
         | intersectionPoint: :js:class:`Vec3 <cee.Vec3>`
      
      The 3d point (in world coordinates) on the surface that was hit.
      
      This is the actual point that was hit
      



.. js:data:: cee.ug.HitItem.intersectionPointNormal

      .. rst-class:: sig-pretty-signature
      
         | intersectionPointNormal: :js:class:`Vec3 <cee.Vec3>`
      
      The normal of the surface at the point where the surface was hit.
      



.. js:data:: cee.ug.HitItem.intersectionPointResult

      .. rst-class:: sig-pretty-signature
      
         | intersectionPointResult: *number*
      
      The interpolated scalar result in the :js:data:`intersectionPoint <cee.ug.HitItem.intersectionPoint>`\ .
      



.. js:data:: cee.ug.HitItem.nodeId

      .. rst-class:: sig-pretty-signature
      
         | nodeId: *number*
      
      The id of the closest node to the actual intersection point in the data model on the server that was hit
      



.. js:data:: cee.ug.HitItem.nodeIndex

      .. rst-class:: sig-pretty-signature
      
         | nodeIndex: *number*
      
      The index (zero based) of the closest node to the actual intersection point in the data model on the server that was hit
      



.. js:data:: cee.ug.HitItem.nodePosition

      .. rst-class:: sig-pretty-signature
      
         | nodePosition: :js:class:`Vec3 <cee.Vec3>`
      
      The 3d point (in world coordinates) of the closest node as identified by nodeId/nodeIndex
      
      Use intersectionPoint for the actual point on the model that was hit
      



.. js:data:: cee.ug.HitItem.nodeResult

      .. rst-class:: sig-pretty-signature
      
         | nodeResult: *number*
      
      The scalar result in the closest node as indicated by :js:data:`nodeId <cee.ug.HitItem.nodeId>`\ /:js:data:`nodeIndex <cee.ug.HitItem.nodeIndex>`\ .
      



.. js:data:: cee.ug.HitItem.nodeResultIsInterpolated

      .. rst-class:: sig-pretty-signature
      
         | nodeResultIsInterpolated: *boolean*
      
      Whether the node result is interpolated (e.g. from a per element result). False if the result is an actual per node result.
      



.. js:data:: cee.ug.HitItem.objectId

      .. rst-class:: sig-pretty-signature
      
         | objectId: *number*
      
      The id of the object (part/iso/cut/isovol) that was hit
      



.. js:data:: cee.ug.HitItem.objectIndex

      .. rst-class:: sig-pretty-signature
      
         | objectIndex: *number*
      
      The index of the object (part/iso/cut/isovol) that was hit
      



.. js:data:: cee.ug.HitItem.objectName

      .. rst-class:: sig-pretty-signature
      
         | objectName: *string*
      
      The name of the object (part/iso/cut/isovol) that was hit
      



.. js:data:: cee.ug.HitItem.objectType

      .. rst-class:: sig-pretty-signature
      
         | objectType: :js:data:`ObjectType <cee.ug.ObjectType>`
      
      The type of object (part/iso/cut/isovol) that was hit
      



.. js:data:: cee.ug.HitItem.scalarResultName

      .. rst-class:: sig-pretty-signature
      
         | scalarResultName: *string*
      
      The name of the scalar that the results :js:data:`elementResult <cee.ug.HitItem.elementResult>` and :js:data:`nodeResult <cee.ug.HitItem.nodeResult>` apply to.
      




