git-svn-id: svn://db.shs.com.ru/libs@153 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -289,6 +289,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
||||
tmp_bus.clear();
|
||||
tmp_bus.show();
|
||||
new_bus = true;
|
||||
newBusStarted(tmp_bus.busType());
|
||||
markPins(tmp_bus.busType());
|
||||
if (qgraphicsitem_cast<BlockItemPin*>(mm_ci)->alignment() == Qt::AlignLeft ||
|
||||
qgraphicsitem_cast<BlockItemPin*>(mm_ci)->alignment() == Qt::AlignRight)
|
||||
@@ -1201,6 +1202,7 @@ void BlockView::adjustThumb() {
|
||||
|
||||
void BlockView::newBranch(BlockBusItem * item) {
|
||||
bus_from = item;
|
||||
newBusStarted(item->busType());
|
||||
markPins(item->busType());
|
||||
new_branch = true;
|
||||
tmp_bus.setBusType(item->busType());
|
||||
|
||||
@@ -104,7 +104,8 @@ protected:
|
||||
|
||||
virtual void loadBus(BlockBusItem * bus) {}
|
||||
virtual void copyBlocks(QList<BlockItem * > items, QPointF offset) {}
|
||||
|
||||
virtual void newBusStarted(int bus_type) {}
|
||||
|
||||
QGraphicsScene * scene_;
|
||||
QGraphicsRectItem sel_rect;
|
||||
QGraphicsItem * mm_ci;
|
||||
|
||||
@@ -67,10 +67,12 @@ protected:
|
||||
~BigChunk() {for (int i = 0; i < BIG_CHUNK_SIZE; ++i) for (int j = 0; j < BIG_CHUNK_SIZE; ++j) for (int k = 0; k < BIG_CHUNK_SIZE; ++k) if (chunks[i][j][k] != 0) delete chunks[i][j][k];}
|
||||
void saveState() {for (int i = 0; i < BIG_CHUNK_SIZE; ++i) for (int j = 0; j < BIG_CHUNK_SIZE; ++j) for (int k = 0; k < BIG_CHUNK_SIZE; ++k) if (chunks[i][j][k] != 0) chunks[i][j][k]->saveState();}
|
||||
Chunk * newChunk(const Vector3i & i) {
|
||||
int _i = i.p0 % BIG_CHUNK_SIZE, _j = i.p1 % BIG_CHUNK_SIZE, _k = i.p2 % BIG_CHUNK_SIZE;
|
||||
if (_i < 0) _i += BIG_CHUNK_SIZE; if (_j < 0) _j += BIG_CHUNK_SIZE; if (_k < 0) _k += BIG_CHUNK_SIZE;
|
||||
if (chunks[_i][_j][_k] == 0) {qDebug() << "insert" << _i << _j << _k; chunks[_i][_j][_k] = new Chunk();}
|
||||
return chunks[_i][_j][_k];}
|
||||
int ii = i.p0 % BIG_CHUNK_SIZE, jj = i.p1 % BIG_CHUNK_SIZE, kk = i.p2 % BIG_CHUNK_SIZE;
|
||||
if (ii < 0) ii += BIG_CHUNK_SIZE;
|
||||
if (jj < 0) jj += BIG_CHUNK_SIZE;
|
||||
if (kk < 0) kk += BIG_CHUNK_SIZE;
|
||||
if (chunks[ii][jj][kk] == 0) {qDebug() << "insert" << ii << jj << kk; chunks[ii][jj][kk] = new Chunk();}
|
||||
return chunks[ii][jj][kk];}
|
||||
Vector3i index;
|
||||
Chunk * chunks[BIG_CHUNK_SIZE][BIG_CHUNK_SIZE][BIG_CHUNK_SIZE];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user