本文整理汇总了C++中TRasterP::getCenterD方法的典型用法代码示例。如果您正苦于以下问题:C++ TRasterP::getCenterD方法的具体用法?C++ TRasterP::getCenterD怎么用?C++ TRasterP::getCenterD使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TRasterP
的用法示例。
在下文中一共展示了TRasterP::getCenterD方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateBox
void ShiftTraceTool::updateBox() {
if (0 <= m_ghostIndex && m_ghostIndex < 2 && m_row[m_ghostIndex] >= 0) {
int col = TApp::instance()->getCurrentColumn()->getColumnIndex();
int row = m_row[m_ghostIndex];
TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet();
TXshCell cell = xsh->getCell(row, col);
TXshSimpleLevel *sl = cell.getSimpleLevel();
if (sl) {
m_dpiAff = getDpiAffine(sl, cell.m_frameId);
TImageP img = cell.getImage(false);
if (img) {
if (TRasterImageP ri = img) {
TRasterP ras = ri->getRaster();
m_box = (convert(ras->getBounds()) - ras->getCenterD()) *
ri->getSubsampling();
} else if (TToonzImageP ti = img) {
TRasterP ras = ti->getRaster();
m_box = (convert(ras->getBounds()) - ras->getCenterD()) *
ti->getSubsampling();
} else if (TVectorImageP vi = img) {
m_box = vi->getBBox();
}
}
}
}
}
示例2: drawControlRect
void ShiftTraceTool::drawControlRect() {
if (m_ghostIndex < 0 || m_ghostIndex > 1) return;
int row = m_row[m_ghostIndex];
if (row < 0) return;
int col = TApp::instance()->getCurrentColumn()->getColumnIndex();
TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet();
TXshCell cell = xsh->getCell(row, col);
if (cell.isEmpty()) return;
TImageP img = cell.getImage(false);
if (!img) return;
TRectD box;
if (TRasterImageP ri = img) {
TRasterP ras = ri->getRaster();
box =
(convert(ras->getBounds()) - ras->getCenterD()) * ri->getSubsampling();
} else if (TToonzImageP ti = img) {
TRasterP ras = ti->getRaster();
box =
(convert(ras->getBounds()) - ras->getCenterD()) * ti->getSubsampling();
} else if (TVectorImageP vi = img) {
box = vi->getBBox();
} else {
return;
}
glPushMatrix();
tglMultMatrix(getGhostAff());
TPixel32 color;
color = m_highlightedGadget == TranslateGadget ? TPixel32(200, 100, 100)
: TPixel32(120, 120, 120);
tglColor(color);
glBegin(GL_LINE_STRIP);
glVertex2d(box.x0, box.y0);
glVertex2d(box.x1, box.y0);
glVertex2d(box.x1, box.y1);
glVertex2d(box.x0, box.y1);
glVertex2d(box.x0, box.y0);
glEnd();
color =
m_highlightedGadget == 2000 ? TPixel32(200, 100, 100) : TPixel32::White;
double r = 4 * sqrt(tglGetPixelSize2());
drawDot(box.getP00(), r, color);
drawDot(box.getP01(), r, color);
drawDot(box.getP10(), r, color);
drawDot(box.getP11(), r, color);
if (m_curveStatus == NoCurve) {
color =
m_highlightedGadget == 2001 ? TPixel32(200, 100, 100) : TPixel32::White;
TPointD c = m_center[m_ghostIndex];
drawDot(c, r, color);
}
glPopMatrix();
}
示例3: draw
void PlaneViewer::draw(TRasterP ras, double dpiX, double dpiY, TPalette *pal) {
TPointD rasCenter(ras->getCenterD());
TRaster32P aux(rasterBuffer());
aux->lock();
ras->lock();
glGetDoublev(GL_MODELVIEW_MATRIX, m_matrix);
TAffine viewAff(m_matrix[0], m_matrix[4], m_matrix[12], m_matrix[1],
m_matrix[5], m_matrix[13]);
viewAff = viewAff * TScale(Stage::inch / dpiX, Stage::inch / dpiY) *
TTranslation(-rasCenter);
pushGLWinCoordinates();
aux->clear();
if (pal)
TRop::quickPut(aux, (TRasterCM32P)ras, pal, viewAff);
else
TRop::quickPut(aux, ras, viewAff);
flushRasterBuffer();
popGLCoordinates();
}
示例4: convertWorldToRaster
TRect TRasterImageUtils::convertWorldToRaster(const TRectD &area, const TRasterImageP ri)
{
if (area.isEmpty())
return TRect();
if (!ri || !ri->getRaster())
return TRect(tfloor(area.x0), tfloor(area.y0), tfloor(area.x1) - 1, tfloor(area.y1) - 1);
TRasterP ras = ri->getRaster();
TRectD rect(area + ras->getCenterD());
return TRect(tfloor(rect.x0), tfloor(rect.y0), tceil(rect.x1) - 1, tceil(rect.y1) - 1);
}
示例5: add
QString ImageBuilder::add(const TImageP &img, const TAffine &aff) {
if (fabs(aff.det()) < 0.001) return "";
if (m_img && (m_img->getType() != img->getType()))
return "Image type mismatch";
if (!m_img && img->getType() != TImage::VECTOR && m_width > 0 &&
m_height > 0) {
TRasterP ras = img->raster()->create(m_width, m_height);
if (img->getType() == TImage::RASTER)
m_img = TRasterImageP(ras);
else if (img->getType() == TImage::TOONZ_RASTER) {
m_img = TToonzImageP(ras, ras->getBounds());
m_img->setPalette(img->getPalette());
} else
return "Bad image type";
}
if (!m_img && aff.isIdentity()) {
m_img = img->cloneImage();
} else if (img->getType() == TImage::VECTOR) {
// vector image
if (!m_img) {
// transform
TVectorImageP vi = img->cloneImage();
vi->transform(aff);
m_img = vi;
} else {
// merge
TVectorImageP up = img;
TVectorImageP dn = m_img;
dn->mergeImage(up, aff);
}
} else {
if (img->getType() != TImage::TOONZ_RASTER &&
img->getType() != TImage::RASTER) {
// this should not ever happen
return "Bad image type";
}
TRasterP up = img->raster();
if (!m_img) {
// create an empty bg
TRasterP ras = up->create();
ras->clear();
if (img->getType() == TImage::TOONZ_RASTER) {
TRasterCM32P rasCm = ras;
m_img = TToonzImageP(rasCm,
TRect(0, 0, ras->getLx() - 1, ras->getLy() - 1));
m_img->setPalette(img->getPalette());
} else {
m_img = TRasterImageP(ras);
}
}
TRasterP dn = m_img->raster();
if (aff.isTranslation() && aff.a13 == floor(aff.a13) &&
aff.a23 == floor(aff.a23)) {
// just a integer coord translation
TPoint delta = -up->getCenter() + dn->getCenter() +
TPoint((int)aff.a13, (int)aff.a23);
TRop::over(dn, up, delta);
} else {
TAffine aff1 = TTranslation(dn->getCenterD()) * aff *
TTranslation(-up->getCenterD());
TRop::over(dn, up, aff1, TRop::Mitchell);
}
}
return "";
}