Class: MeshFactory

PD. MeshFactory


new MeshFactory()

A class for creating basic mesh shapes for cursors and indicators.

Author:
  • drajmarsh

Methods


generateArrowManipulator_60deg( [axis] [, surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Creates an angled arrow manipulator shape with and without shaft, and an outline.

If the axis is a corner alignment (eg: PD.ALIGN.BOT_LEFT), the shaft is replaced by a small triangular indent to accommodate the corner.

          1__                        1__
          |  \__                     |  \__
          |     \__                  |     \__
          |        \__               |        \__
 5--------2           \__            2           \__
 |                       0             5            0
 6--------3          __/             3          __/
          |       __/                |       __/
          |    __/                   |    __/
          | __/                      | __/
          4'                         4'
        AXIS                      CORNER
Parameters:
Name Type Argument Description
axis PD.AXIS | PD.ALIGN <optional>

The axis or alignment of the arrow.

surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateArrowManipulator_90Deg( [axis] [, surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Creates a simple 45deg triangular arrow shape with shaft, and an outline.

If the axis is a corner alignment (eg: PD.ALIGN.BOT_LEFT), a 90deg triangular indent will be added to shaft to accommodate the corner.

              3                                     3
              :  =                                  :  =
              :     =                               :     =
      5- - - -4        =                    5- - - -4        =
      :       :           =                   =  C  :           =
      :  C  . :  \           =                  =   :  \           =
      :       :   \             =                 = :   \             =
      :   .   ;    +   A           2                7    +   A           2
      :       :   /             =                 = :   /             =
      : .  B  :  /           =                  =   :  /           =
      :       :           =                   =  B  :           =
      6- - - -0        =                    6- - - -0        =
              :     =                               :     =
              :  =                                  :  =
              1                                     1
            AXIS                                 CORNER
Parameters:
Name Type Argument Description
axis PD.AXIS | PD.ALIGN <optional>

The axis or alignment of the arrow - set this to a valid value to include an axis indicator inside arrow head.

surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateArrowManipulator_Chevron( [axis] [, surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Creates a 45deg chevron arrow shape with or without shaft, and an outline.

If the axis is a corner alignment (eg: PD.ALIGN.BOT_LEFT), the shaft is not added to accommodate the corner.

              _.1                    _.1
            2'   \                 2'   \
             \    \                 \    \
              \    \                 \    \
               \    \                 \    \
 4--------------3    \                 \    \
 |                    0                 3    0
 5--------------6    /                 /    /
               /    /                 /    /
              /    /                 /    /
             /    /                 /    /
            7._  /                 5._  /
               '8                     '5
            AXIS                  CORNER
Parameters:
Name Type Argument Description
axis PD.AXIS | PD.ALIGN <optional>

The axis or alignment of the arrow.

surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateBoxManipulator( [surfaceMaterial] [, size] [, mesh]) <static>

Creates a simple box marker manipulator with just surfaces and no outline.

       7-----------6
      /|          /|
     4-----------5 |
     | |         | |
     | 3 - - - - | 2
     |/          |/
     0-----------1
Parameters:
Name Type Argument Description
surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

size number <optional>

The size of the marker to create, defaults to 50mm.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateCircleManipulator( [surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Generates a simple circle marker shape with outline.

          \
           \
            \ , - ~ ' ~ - ,
          , '               ' ,
        ,                       ,
       ,                         ,
      ,             |             ,
      ,          ---x---          ,
      ,             |             ,
       ,                         ,
        ,                       ,
          ,                  , '
            ' - , _ _ _ ,  '
Parameters:
Name Type Argument Description
surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateImageManipulator( [surfaceMaterial] [, index] [, mesh]) <static>

Creates a simple square manipulator shape with varying UV coordinates.

      3            0.5            2
      + - - - - - - - - - - - - - +
      : 2        .  : 3        .  :
      :       .     :       .     :
      :    .        :    .        :
      : .           : .           :
  0.5 : - - - - - - + - - - - - - : 0.5
      : 0        .  : 1        .  :
      :       .     :       .     :
      :    .        :    .        :
      : .           : .           :
      + - - - - - - - - - - - - - +
      0            0.5            1
Parameters:
Name Type Argument Description
surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

index number <optional>

An optional index defining which edge/corner to indent.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateMarkerManipulator( [surfaceMaterial] [, size] [, mesh]) <static>

Creates a simple diamond marker manipulator with just surfaces and no outline.

            _1_
          _/  \\_
        _/     \ \_
      _/    E   \ F\_
     2-----------3---4
      \_    A   / B_/
        \_     / _/
          \_  /_/
            '0'
Parameters:
Name Type Argument Description
surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

size number <optional>

The size of the marker to create, defaults to 50mm.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generatePointerArrowGeometry( [geometry]) <static>

Creates a mouse arrow and button simulator.

     0                                        /
      +_                              _______+_______
      : \__                         _/    |     |    \_
      :    \__                     |      |     |      |
      :       \__                  |      |     |      |
      :          \__               |      |     |      |
      :             \__            |------+-----+------|
      :   2   5 _______'+ 6        |                   |
      :   ,\    \                  |                   |
      : ,'  \    \                 |                   |
      +      \    \                |                   |
      1       \  _.+               |_                 _|
               +'    4               \_______________/
               3
Parameters:
Name Type Argument Description
geometry THREE.BufferGeometry <optional>

An optional buffer geometry object receive the new data.

Returns:

Returns the newly created surface geometry.

Type
THREE.BufferGeometry

generateRotationManipulator( [radius] [, surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Creates a circle rotation manipulator shape with outline.

              , - ~ ' ~ - ,
          , '               ' ,
        ,       . - ' - .       ,
       ,    .'             '.  _/,
      ,    .        |        .'   ,
      ,    :     ---x---     :      ,
      ,    '        |        '._  ,
       ,    '               '   \,
        ,     ' . _   _ . '     ,
          ,         '        , '
            ' - , _   _ ,  '
                    '
Parameters:
Name Type Argument Description
radius PD.AXIS <optional>

Set this to a valid value to include an axis indicator.

surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateSectionManipulator( [surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Generates an architectural section marker shape with outline.

                    1
                    : =
                    :    =
              , - ~ : ~ - , =
          , '       :       ' ,
        ,           :           ,=
       ,            :            , =
      ,             |             ,  =
      ,          ---x---          ,     0
      ,             |             ,  =
       ,            :            , =
        ,           :           ,=
          ,         :        , '
            ' - , _ : _ ,  '=
                    :    =
                    : =
                    2
Parameters:
Name Type Argument Description
surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateSpikedCircleManipulator( [axis] [, surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Creates a simple spiked circle manipulator shape with outline.

                    +
                   / \
              , - '   ' - ,
          , '               ' ,
        ,         _ = _         ,
       ,      _ '       ' _      ,
   __.'      .      |      .      '.__
 ' __       =    ---x---    =       __ '
     ',      '_     |     _'      ,'
       ,       . _     _ .       ,
        ,          '='          ,
          ,                  , '
            ' - . ,    , . - '
                   \ /
                    +
Parameters:
Name Type Argument Description
axis PD.AXIS <optional>

Set this to a valid value to include an axis indicator.

surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh

generateSquareManipulator( [surfaceMaterial] [, outlineMaterial] [, mesh]) <static>

Creates a simple square manipulator shape, with outline if an outline material is given.

      3                           2
      + - - - - - - - - - - - - - +
      :                        .  :
      :                     .     :
      :       B     7    .        :
      :             | .           :
      :         4---x---5         :
      :          .  |             :
      :       .     6      A      :
      :    .                      :
      : .                         :
      + - - - - - - - - - - - - - +
      0                           1
Parameters:
Name Type Argument Description
surfaceMaterial THREE.Material <optional>

The material to use when rendering triangle geometry.

outlineMaterial THREE.Material <optional>

The material to use when rendering line geometry.

mesh THREE.Mesh <optional>

An optional mesh object to receive the new surface and outline data.

Returns:

Returns the updated or newly created mesh.

Type
THREE.Mesh