I would like to know how to change a pixel value for the label map.
This is my initial approach. Unfortunately, the changes are not reflected in the canvas.
X.volume.prototype.SetPixelLabelMap = function(i, j, k, value){
this._labelmap._IJKVolume[k][j][i] = value;
var color = this._labelmap._colortable._map.get(value);
var changeRawData = function(rawdata, pos){
for(var n = 0; n < 4; n++){
rawdata[pos + n] = color[n + 1];
}
}
var dim = this._dimensions;
//in Z axis height is j width is i, the fast moving direction is the height
if(this._labelmap._children[2]._children[k]){
changeRawData(this._labelmap._children[2]._children[k]._texture._rawData, (dim[0]*i + j)*4);
}
//in Y axis height is k width is i
if(this._labelmap._children[1]._children[j]){
changeRawData(this._labelmap._children[1]._children[j]._texture._rawData, (dim[0]*i + k)*4);
}
if(this._labelmap._children[0]._children[i]){
//in X axis height is j width is k
changeRawData(this._labelmap._children[0]._children[i]._texture._rawData, (dim[2]*k + j)*4);
}
}
You can change it using
JSFiddle