本文整理汇总了C++中Bounds::getMax方法的典型用法代码示例。如果您正苦于以下问题:C++ Bounds::getMax方法的具体用法?C++ Bounds::getMax怎么用?C++ Bounds::getMax使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bounds
的用法示例。
在下文中一共展示了Bounds::getMax方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: launchEditDialog
void StickyNoteActor::launchEditDialog(bool selectExistingText)
{
_selectExistingText = selectExistingText;
// NOTE: for the future, we may want QuickLook-like behaviour where
// we follow the sticky notes as the user clicks around on the screen.
// If so, then we should keep a reference to the existing dialog some
// where and pass it into this launch process?
// if one does not exist, create a new sticky not dialog
// and center it
if (!_editDialog)
_editDialog = new StickyNoteEditDialog();
else
{
// close the dialog and disconnect all signals
_editDialog->accept();
_editDialog->disconnect();
}
// setup all the connections
connect(_editDialog, SIGNAL(finished(int)), this, SLOT(finishedEditing()));
connect(_editDialog, SIGNAL(accepted()), this, SLOT(finishedEditing()));
connect(_editDialog, SIGNAL(rejected()), this, SLOT(finishedEditing()));
// move it to the appropriate place
const int marginLeftRight = 20;
const int marginTopBottom = -20;
Bounds b = this->getScreenBoundingBox();
POINT windowPos = {0, 0};
ClientToScreen(winOS->GetWindowsHandle(), &windowPos);
Vec3 screenMin = b.getMin() + Vec3(windowPos.x, windowPos.y, 0);
Vec3 screenMax = b.getMax() + Vec3(windowPos.x, windowPos.y, 0);
Vec3 screenDims = Vec3(winOS->GetWindowWidth(), winOS->GetWindowHeight(), 0);
Vec3 tr(NxMath::max(screenMin.x, screenMax.x), NxMath::min(screenMin.y, screenMax.y), 0);
Vec3 tl(NxMath::min(screenMin.x, screenMax.x), NxMath::min(screenMin.y, screenMax.y), 0);
int yBound = NxMath::min(NxMath::max((int) tr.y + marginTopBottom, windowPos.y + abs(marginTopBottom)), windowPos.y + (int) screenDims.y - abs(marginTopBottom) - _editDialog->height());
if ((tr.x + marginLeftRight + _editDialog->width()) <= (windowPos.x + screenDims.x - marginLeftRight))
{
// put this note to the right of this actor
_editDialog->move(tr.x + marginLeftRight, yBound);
}
else if ((tl.x - marginLeftRight - _editDialog->width()) >= marginLeftRight)
{
// put this note to the left of this actor
_editDialog->move((tl.x - marginLeftRight - _editDialog->width()), yBound);
}
Mat34 finalPose;
Vec3 finalDims;
calculateDialogPoseDims(finalPose, finalDims);
const int StickyNoteActorNumTempActorSteps = 13;
const int StickyNoteActorNumStickySteps = 8;
// create a new proxy actor
assert(!_tmpAnimationActor);
_tmpAnimationActor = new Actor();
_tmpAnimationActor->pushActorType(Temporary);
_tmpAnimationActor->setObjectToMimic(this);
_tmpAnimationActor->setFrozen(false);
_tmpAnimationActor->setGravity(false);
_tmpAnimationActor->setCollisions(false);
_tmpAnimationActor->setAlphaAnim(0.0f, 1.0f, StickyNoteActorNumTempActorSteps);
_tmpAnimationActor->setSizeAnim(lerpRange(getDims(), finalDims, StickyNoteActorNumTempActorSteps, SoftEase));
_tmpAnimationActor->setPoseAnim(slerpPose(getGlobalPose(), finalPose, StickyNoteActorNumTempActorSteps, SoftEase), (FinishedCallBack) EditStickyNoteAfterAnim, NULL);
setAlphaAnim(getAlpha(), 0.4f, StickyNoteActorNumStickySteps);
}
示例2: main
// FIXME: maybe mmap isn't such a good idea for giant files?
int main(int argc, char *argv[])
{
int i, out, count;
MPEG2Parser *mpeg2parser;
// check for our arguments
#ifdef WRITEOUT
if (argc < 3)
{
fprintf(stderr, _("Usage: %s INPUT OUTPUT\n"), argv[0]);
exit(1);
}
#else // WRITEOUT
if (argc < 2)
{
fprintf(stderr, _("Usage: %s INPUT\n"), argv[0]);
exit(1);
}
#endif // WRITEOUT
decode_init();
mpeg2parser = new MPEG2Parser();
if (!mpeg2parser->init(argv[1], ticker))
{
fprintf(stderr, "%s\n", mpeg2parser->getError());
exit(1);
}
mpeg2parser->parse();
if (mpeg2parser->getError())
fprintf(stderr, "%s\n", mpeg2parser->getError());
#ifdef WRITEOUT
// open our output file for writing
if ((out = open(argv[2], O_WRONLY | O_CREAT | O_EXCL | O_LARGEFILE,
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)) < 0)
{
perror(argv[2]);
exit(1);
}
#endif // WRITEOUT
List *GOPs = mpeg2parser->getGOPs();
printf(_("GOPs: %d\n"), GOPs->getNum());
#ifdef RENDEROUT
int GOPmax = GOPs->getNum();
for (i = 0; i < GOPmax; i++)
{
Pack *packet;
GroupOfPictures *GOP;
Bounds *bounds;
ElementStream *ves;
int start, stop;
int ves_start, ves_stop;
uint8_t *loc;
size_t len;
ticker(_("Rendering GOPs"), (float) ((float) i / (float) GOPmax));
GOP = (GroupOfPictures *) GOPs->vector(i);
bounds = GOP->getPacketBounds();
start = bounds->getFirst();
stop = bounds->getMax();
for (int j = start; j < stop; j++)
{
if (!(packet = (Pack *) mpeg2parser->getPackets()->vector(j)))
{
printf("%s", _("NULL packet?!\n"));
exit(1);
}
ves_start = packet->getVideoFirst();
ves_stop = packet->getVideoMax();
#ifdef WRITEOUT
/* write packets to disk */
if (loc =
mpeg2parser->bytesAvail(packet->getStart(), packet->getLen()))
{
write(out, loc, packet->getLen());
}
else
printf("%s", _("NULL vector area?!\n"));
#endif // WRITEOUT
for (int k = ves_start; k < ves_stop; k++)
{
if (!
(ves =
(ElementStream *) mpeg2parser->getVideo()->vector(k)))
//.........这里部分代码省略.........