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.clear();
|
||||||
tmp_bus.show();
|
tmp_bus.show();
|
||||||
new_bus = true;
|
new_bus = true;
|
||||||
|
newBusStarted(tmp_bus.busType());
|
||||||
markPins(tmp_bus.busType());
|
markPins(tmp_bus.busType());
|
||||||
if (qgraphicsitem_cast<BlockItemPin*>(mm_ci)->alignment() == Qt::AlignLeft ||
|
if (qgraphicsitem_cast<BlockItemPin*>(mm_ci)->alignment() == Qt::AlignLeft ||
|
||||||
qgraphicsitem_cast<BlockItemPin*>(mm_ci)->alignment() == Qt::AlignRight)
|
qgraphicsitem_cast<BlockItemPin*>(mm_ci)->alignment() == Qt::AlignRight)
|
||||||
@@ -1201,6 +1202,7 @@ void BlockView::adjustThumb() {
|
|||||||
|
|
||||||
void BlockView::newBranch(BlockBusItem * item) {
|
void BlockView::newBranch(BlockBusItem * item) {
|
||||||
bus_from = item;
|
bus_from = item;
|
||||||
|
newBusStarted(item->busType());
|
||||||
markPins(item->busType());
|
markPins(item->busType());
|
||||||
new_branch = true;
|
new_branch = true;
|
||||||
tmp_bus.setBusType(item->busType());
|
tmp_bus.setBusType(item->busType());
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ protected:
|
|||||||
|
|
||||||
virtual void loadBus(BlockBusItem * bus) {}
|
virtual void loadBus(BlockBusItem * bus) {}
|
||||||
virtual void copyBlocks(QList<BlockItem * > items, QPointF offset) {}
|
virtual void copyBlocks(QList<BlockItem * > items, QPointF offset) {}
|
||||||
|
virtual void newBusStarted(int bus_type) {}
|
||||||
|
|
||||||
QGraphicsScene * scene_;
|
QGraphicsScene * scene_;
|
||||||
QGraphicsRectItem sel_rect;
|
QGraphicsRectItem sel_rect;
|
||||||
|
|||||||
@@ -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];}
|
~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();}
|
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) {
|
Chunk * newChunk(const Vector3i & i) {
|
||||||
int _i = i.p0 % BIG_CHUNK_SIZE, _j = i.p1 % BIG_CHUNK_SIZE, _k = i.p2 % BIG_CHUNK_SIZE;
|
int ii = i.p0 % BIG_CHUNK_SIZE, jj = i.p1 % BIG_CHUNK_SIZE, kk = 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 (ii < 0) ii += BIG_CHUNK_SIZE;
|
||||||
if (chunks[_i][_j][_k] == 0) {qDebug() << "insert" << _i << _j << _k; chunks[_i][_j][_k] = new Chunk();}
|
if (jj < 0) jj += BIG_CHUNK_SIZE;
|
||||||
return chunks[_i][_j][_k];}
|
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;
|
Vector3i index;
|
||||||
Chunk * chunks[BIG_CHUNK_SIZE][BIG_CHUNK_SIZE][BIG_CHUNK_SIZE];
|
Chunk * chunks[BIG_CHUNK_SIZE][BIG_CHUNK_SIZE][BIG_CHUNK_SIZE];
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user