diff options
author | Martin Ashby <martin@martin-laptop.lan> | 2018-05-17 20:17:01 +0100 |
---|---|---|
committer | Martin Ashby <martin@martin-laptop.lan> | 2018-05-17 20:17:01 +0100 |
commit | 10e7ce5764b3b456e1f909cd6b6a90f076c2e014 (patch) | |
tree | d9344bfa3e271ef179b2ea969c27bf4b39bfe260 /src/PaintArea.js | |
parent | e9ee34abf84a10911b2c6041534c2df7f91f052a (diff) | |
download | unicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.tar.gz unicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.tar.bz2 unicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.tar.xz unicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.zip |
Fixed rotation problem. Added rotate function. Added docker file
Diffstat (limited to 'src/PaintArea.js')
-rw-r--r-- | src/PaintArea.js | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/PaintArea.js b/src/PaintArea.js index 1ffec83..3b64beb 100644 --- a/src/PaintArea.js +++ b/src/PaintArea.js @@ -1,4 +1,5 @@ import React, { Component } from 'react' +import { rgb, getPixel } from './Utils' /** * Expects props: @@ -44,29 +45,33 @@ export default class PaintArea extends Component { } render() { - let cells = this.props.data.map((row, iy) => { - let rowCells = row.map((cell, ix) => { - let r = cell[0] - let g = cell[1] - let b = cell[2] - return <td - onMouseMove={() => this.handleMouseMove(ix, iy)} - onClick={() => this.props.onTool(ix, iy)} - className="paintareacell" - style={{ - background: `rgb(${r},${g},${b})` - }} - key={(ix * 100000) + iy}/> - }) - return <tr key={iy}>{rowCells}</tr> - }) + let data = this.props.data + let height = data[0] ? data[0].length : 0 + let rows = [] + for (var y=height-1; y>=0; y--) { + let cells = [] + for (var x=0; x<data.length; x++) { + let {r, g, b} = rgb(getPixel(x, y, data)) + let ix = x + let iy = y + cells.push(<td + onMouseMove={() => this.handleMouseMove(ix, iy)} + onClick={() => this.props.onTool(ix, iy)} + className="paintareacell" + style={{ + background: `rgb(${r},${g},${b})` + }} + key={(ix * 100000) + iy}/>) + } + rows.push(<tr key={y}>{cells}</tr>) + } return ( <table className="paintarea" draggable={false}> <tbody> - {cells} + {rows} </tbody> </table> ) |