RegisteredSuffixedInteger::RegisteredSuffixedInteger (const Glib::ustring& label, const Glib::ustring& tip, const Glib::ustring& suffix, const Glib::ustring& key, Registry& wr, Inkscape::XML::Node* repr_in, SPDocument *doc_in) : RegisteredWidget<Scalar>(label, tip, 0, suffix), setProgrammatically(false) { init_parent(key, wr, repr_in, doc_in); setRange (0, 1e6); setDigits (0); setIncrements(1, 10); _changed_connection = signal_value_changed().connect (sigc::mem_fun(*this, &RegisteredSuffixedInteger::on_value_changed)); }
RegisteredPoint::RegisteredPoint ( const Glib::ustring& label, const Glib::ustring& tip, const Glib::ustring& key, Registry& wr, Inkscape::XML::Node* repr_in, SPDocument* doc_in ) : RegisteredWidget<Point> (label, tip) { init_parent(key, wr, repr_in, doc_in); setRange (-1e6, 1e6); setDigits (2); setIncrements(0.1, 1.0); _value_x_changed_connection = signal_x_value_changed().connect (sigc::mem_fun (*this, &RegisteredPoint::on_value_changed)); _value_y_changed_connection = signal_y_value_changed().connect (sigc::mem_fun (*this, &RegisteredPoint::on_value_changed)); }
RegisteredRandom::RegisteredRandom ( const Glib::ustring& label, const Glib::ustring& tip, const Glib::ustring& key, Registry& wr, Inkscape::XML::Node* repr_in, SPDocument * doc_in ) : RegisteredWidget<Random> (label, tip) { init_parent(key, wr, repr_in, doc_in); setProgrammatically = false; setRange (-1e6, 1e6); setDigits (2); setIncrements(0.1, 1.0); _value_changed_connection = signal_value_changed().connect (sigc::mem_fun (*this, &RegisteredRandom::on_value_changed)); _reseeded_connection = signal_reseeded.connect(sigc::mem_fun(*this, &RegisteredRandom::on_value_changed)); }
/* * resize */ void Volume::resize(void) { int w = 0; int h = 0; int d = 0; int start_width = 0; int start_height = 0; int start_depth = 0; if (!isPowerOfTwo(getWidth())) { w = nextPowerOfTwo(getWidth()); start_width = (w - getWidth()) / 2; } if (!isPowerOfTwo(getHeight())) { h = nextPowerOfTwo(getHeight()); start_height = (h - getHeight()) / 2; } if (!isPowerOfTwo(getDepth())) { d = nextPowerOfTwo(getDepth()); start_depth = (d - getDepth()) / 2; } if ((w != 0) || (h != 0) || (d != 0)) { if (w == 0) { w = getWidth(); } if (h == 0) { h = getHeight(); } if (d == 0) { d = getDepth(); } int _size[3]; _size[0] = w; _size[1] = h; _size[2] = d; int _borderSize = 0; int _numberOfVoxels = (_size[0] + 2 * _borderSize) * (_size[1] + 2 * _borderSize) * (_size[2] + 2 * _borderSize); unsigned char* _voxelsBase = new unsigned char[_numberOfVoxels]; for (int k = 0; k < getDepth(); k++) { for (int j = 0; j < getHeight(); j++) { for (int i = 0; i < getWidth(); i++) { _voxelsBase[((start_depth + k) * (w * h)) + ((start_height + j) * w) + (start_width + i)] = voxels[(k * (getWidth() * getHeight())) + (j * getWidth()) + i]; } } } Point _origin = Point::origin; Size _extent; Point _center; for (int i = 0; i < 3; ++i) { _extent[i] = Scalar(_size[i]) * scale[i]; _center[i] = _origin[i] + _extent[i] * Scalar(0.5); } unsigned char* _voxels = _voxelsBase + borderSize; int _increments[3]; _increments[2] = 1; for (int i = 2; i > 0; --i) { _increments[i - 1] = _increments[i] * (_size[i] + 2 * _borderSize); _voxels += _borderSize * _increments[i - 1]; } setNumberOfVoxels(_numberOfVoxels); setSize(_size); setOrigin(_origin); setExtent(_extent); setCenter(_center); delete byteVoxelsBase; setByteVoxelsBase(_voxelsBase); setBorderSize(_borderSize); setIncrements(_increments); setVoxels(_voxels); } } // end resize()