Options
All
  • Public
  • Public/Protected
  • All
Menu

@youwol/io - v0.0.25-wip

Index

Options Type aliases

GocadEncodeOptions: { expandAttributes: boolean; saveAttributes: boolean; saveGeometry: boolean; saveTopology: boolean; userData: {} }

Type declaration

  • expandAttributes: boolean
  • saveAttributes: boolean
  • saveGeometry: boolean
  • saveTopology: boolean
  • userData: {}
    • [key: string]: object
XYZEncodeOptions: { delimiter?: string; expandAttributes: boolean; fixed?: number; saveAttributes?: boolean; saveGeometry?: boolean; userData: {} }

Options for getting a buffer (string) in XYZ format

Type declaration

  • Optional delimiter?: string

    The delimiter for the number. Default is one space

  • expandAttributes: boolean
  • Optional fixed?: number

    The number of digits. Default is undefined and will not fixe the digits (number will be "as is")

  • Optional saveAttributes?: boolean

    Save or not the attributes. Default is true

  • Optional saveGeometry?: boolean

    Save or not the point geometry. Default is true

  • userData: {}

    Any user data (undefined by default)

    • [key: string]: object

Other Type aliases

DxfReturnType: [number, number, number, number][]
Entry: { name?: string; vendor?: string; decode: any; encode: any }

Type declaration

  • Optional name?: string
  • Optional vendor?: string
  • decode:function
    • decode(bugger: string, options: { merge: boolean; repair: boolean; shared: boolean }): DataFrame[]
    • Parameters

      • bugger: string
      • options: { merge: boolean; repair: boolean; shared: boolean }
        • merge: boolean
        • repair: boolean
        • shared: boolean

      Returns DataFrame[]

  • encode:function
    • encode(dataframe: DataFrame, options: object): string
    • Parameters

      • dataframe: DataFrame
      • options: object

      Returns string

Variables

IOFactory: { getFilter: (filename: string) => Entry; registerFilter: any } = ...

Usage for getting an encoder/decoder

const filename = 'myFile.obj'
const filter = IOFactory.getFilter(filename)
if (filter) {
// buffer is the content of the file
filter.decode(buffer, {shared: true})
}

Usage for registering a new filter

// Register a decoder/encoder for the extension abc,
// where myEncoder and myDecoder are your 2 functions
IOFactory.registerFilter('abc', {encoder: myEncoder, decoder: myDecoder})

Type declaration

  • getFilter: (filename: string) => Entry
      • (filename: string): Entry
      • Parameters

        • filename: string

        Returns Entry

  • registerFilter:function
    • registerFilter(extension: string, entry: Entry): void
    • Parameters

      • extension: string
      • entry: Entry

      Returns void

Decoder Functions

  • decodeGocadPL(buffer: string, __namedParameters?: { merge?: boolean; repair?: boolean; shared?: boolean }): DataFrame[]
  • Create a Gocad Polyline (DataFrame) from a string buffer

    Parameters

    • buffer: string
    • __namedParameters: { merge?: boolean; repair?: boolean; shared?: boolean } = {}
      • Optional merge?: boolean
      • Optional repair?: boolean
      • Optional shared?: boolean

    Returns DataFrame[]

  • decodeGocadSO(buffer: string, __namedParameters?: { merge?: boolean; repair?: boolean; shared?: boolean }): DataFrame[]
  • Create a Gocad Voule (DataFrame) from a string buffer

    Parameters

    • buffer: string
    • __namedParameters: { merge?: boolean; repair?: boolean; shared?: boolean } = {}
      • Optional merge?: boolean
      • Optional repair?: boolean
      • Optional shared?: boolean

    Returns DataFrame[]

  • decodeGocadTS(buffer: string, __namedParameters?: { merge?: boolean; repair?: boolean; shared?: boolean }): DataFrame[]
  • Create a Gocad Surface (DataFrame) from a string buffer

    Parameters

    • buffer: string
    • __namedParameters: { merge?: boolean; repair?: boolean; shared?: boolean } = {}
      • Optional merge?: boolean
      • Optional repair?: boolean
      • Optional shared?: boolean

    Returns DataFrame[]

  • decodeGocadVS(buffer: string, __namedParameters?: { merge?: boolean; repair?: boolean; shared?: boolean }): DataFrame[]
  • Create a Gocad Pointset (DataFrame) from a string buffer

    Parameters

    • buffer: string
    • __namedParameters: { merge?: boolean; repair?: boolean; shared?: boolean } = {}
      • Optional merge?: boolean
      • Optional repair?: boolean
      • Optional shared?: boolean

    Returns DataFrame[]

  • decodeOBJ(buffer: string, __namedParameters?: { merge?: boolean; shared?: boolean }): DataFrame[]
  • Parameters

    • buffer: string
    • __namedParameters: { merge?: boolean; shared?: boolean } = {}
      • Optional merge?: boolean
      • Optional shared?: boolean

    Returns DataFrame[]

  • decodeOFF(buffer: string, __namedParameters?: { merge?: boolean; shared?: boolean }): DataFrame[]
  • Parameters

    • buffer: string
    • __namedParameters: { merge?: boolean; shared?: boolean } = {}
      • Optional merge?: boolean
      • Optional shared?: boolean

    Returns DataFrame[]

  • decodeSTL(buffer: string | ArrayBufferLike, param1?: { shared?: boolean }): DataFrame[]
  • Decode STL files either in ASCII or in BINARY format. When usnig node.js, you should be carreful of how you read the data before calling decodeSTL.

    For example, for ASCII file, you should use:

    const array = fs.readFileSync('object.stl', 'utf8')
    const state = loaders.decodeSTL(array)

    And when using BINARY file, you should remove the utf8 encoding and use the buffer of the return array:

    const array = fs.readFileSync('object.stl')
    const state = loaders.decodeSTL(array.buffer)

    Parameters

    • buffer: string | ArrayBufferLike
    • param1: { shared?: boolean } = {}
      • Optional shared?: boolean

    Returns DataFrame[]

  • decodeXYZ(buffer: string, __namedParameters?: { merge?: boolean; shared?: boolean }): DataFrame[]
  • Format in order to know this is a cube:

    # nx: 10
    # ny: 10
    # nz: 10
    # x y z a normal stress1
    # sizes 1 3 6
    0 0 0  9  1 3 2  0 0 0 0 0 0
    ...
    
    example
    decodeXYZ(buffer)
    decodeXYZ(buffer, {merge: false})
    decodeXYZ(buffer, {merge: false, shared: false})

    Parameters

    • buffer: string
    • __namedParameters: { merge?: boolean; shared?: boolean } = {}
      • Optional merge?: boolean
      • Optional shared?: boolean

    Returns DataFrame[]

  • decoderDXF(buffer: string): DataFrame[]
  • Decode a dxf file in the most simple form. We assume a list of:

    999
    And this is a comment (previous group is 999)
    LINE
    8
    Calque 1
    999 x1
    10
    6.425910
    999 y1
    20
    66.390800
    999 x2
    11
    7.497000
    999 y2
    21
    67.080556
    0
    ...
    

    Parameters

    • buffer: string

    Returns DataFrame[]

    A serie with itemSize=2 (i.e., 2D points) and such that 2 consecutive points form a segments. Therefore, the number of segments in the serie is simply the `serie.count/4``

  • decoderSVG(buffer: string): DataFrame[]
  • Parameters

    • buffer: string

    Returns DataFrame[]

Encoder Functions

  • encodeDXF(dfs: DataFrame | DataFrame[]): string
  • Parameters

    • dfs: DataFrame | DataFrame[]

    Returns string

  • Get the buffer object of a Gocad lineset

    Parameters

    Returns string

  • Get the buffer object of a Gocad volume

    Parameters

    Returns string

  • Get the buffer object of a Gocad triangulated surface

    Parameters

    Returns string

  • Get the buffer object of a Gocad pointset

    Parameters

    Returns string

  • encodeOBJ(): string
  • Returns string

  • encodeOFF(): string
  • Returns string

  • encodeSTL(dfs: DataFrame | DataFrame[], __namedParameters?: { binary?: boolean }): string
  • Parameters

    • dfs: DataFrame | DataFrame[]
    • __namedParameters: { binary?: boolean } = {}
      • Optional binary?: boolean

    Returns string

  • encodeSVG(dfs: DataFrame | DataFrame[], __namedParameters: { precision?: number; scale?: number; translate?: [number, number] }): string
  • Encode a set of lines given in DataFrame(s) in SVG format. Positions will be normalized in output and therefore we introduce a scaling and trabslation in option.

    Options are:

    • scale = 1: The scaling factor of the normalized positions
    • translate = [0,0]: The translation of the normalized positions defined as an array of 2 items: [0, 0]
    • precision = 2: The number of digits

    Note that the scaling is applied before the translation.

    Parameters

    • dfs: DataFrame | DataFrame[]
    • __namedParameters: { precision?: number; scale?: number; translate?: [number, number] }
      • Optional precision?: number
      • Optional scale?: number
      • Optional translate?: [number, number]

    Returns string

  • Get the buffer object of an xyz pointset

    Parameters

    Returns string

Utils Functions

  • getBaseName(filename: string): string
  • Get the base name of a filename, i.e., the name without the extension

    example
    const e = getExtension('myfile.ts') // return 'myfile'
    

    Parameters

    • filename: string

    Returns string

  • getExtension(filename: string): string
  • Get the extension of a filename

    example
    const e = getExtension('myfile.ts') // return 'ts'
    

    Parameters

    • filename: string

    Returns string

  • merge(dataframes: DataFrame[]): DataFrame
  • Merge several objects loaded by any filter into one. Take care of the reindexation of the topological elements if any (combinatorial elements of dim > 1, i.e., meshes lines, meshed surfaces, meshed volumes). Also, attributes (other series) are merged as well if and only if they have the same name and itemSize.

    example
    import { decodeGocadTS, merge } from '@youwol/io'

    const t1 = decodeGocadTS(bufferTS1)
    const t2 = decodeGocadTS(bufferTS2)
    const t3 = merge([...t1, ...t2])

    Parameters

    • dataframes: DataFrame[]

    Returns DataFrame