message: wip, add dashed in lines builder
diff: /**
  - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  + * Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
  @@ -12,12 +12,15 @@ import { Cage } from '../../../mol-geo/primitive/cage';
  export interface LinesBuilder {
  add(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, group: number): void
  + addFixedCountDashes(start: Vec3, end: Vec3, segmentCount: number, group: number): void
  + addFixedLengthDashes(start: Vec3, end: Vec3, segmentLength: number, group: number): void
  addCage(t: Mat4, cage: Cage, group: number): void
  getLines(): Lines
  }
  -const tmpVecA = Vec3.zero()
  -const tmpVecB = Vec3.zero()
  +const tmpVecA = Vec3()
  +const tmpVecB = Vec3()
  +const tmpDir = Vec3()
  export namespace LinesBuilder {
  export function create(initialCount = 2048, chunkSize = 1024, lines?: Lines): LinesBuilder {
  @@ -42,8 +45,29 @@ export namespace LinesBuilder {
  ChunkedArray.add3(indices, offset + 1, offset + 3, offset + 2);
  }
  + const addFixedCountDashes = (start: Vec3, end: Vec3, segmentCount: number, group: number) => {
  + const d = Vec3.distance(start, end)
  + const s = Math.floor(segmentCount / 2)
  + const step = 1 / segmentCount
  +
  + Vec3.sub(tmpDir, end, start)
  + for (let j = 0; j < s; ++j) {
  + const f = step * (j * 2 + 1)
  + Vec3.setMagnitude(tmpDir, tmpDir, d * f)
  + Vec3.add(tmpVecA, start, tmpDir)
  + Vec3.setMagnitude(tmpDir, tmpDir, d * step * ((j + 1) * 2))
  + Vec3.add(tmpVecB, start, tmpDir)
  + add(tmpVecA[0], tmpVecA[1], tmpVecA[2], tmpVecB[0], tmpVecB[1], tmpVecB[2], group)
  + }
  + }
  +
  return {
  add,
  + addFixedCountDashes,
  + addFixedLengthDashes: (start: Vec3, end: Vec3, segmentLength: number, group: number) => {
  + const d = Vec3.distance(start, end)
  + addFixedCountDashes(start, end, d / segmentLength, group)
  + },
  addCage: (t: Mat4, cage: Cage, group: number) => {
  const { vertices, edges } = cage
  for (let i = 0, il = edges.length; i < il; i += 2) {
  