本文整理汇总了C++中StelObjectP类的典型用法代码示例。如果您正苦于以下问题:C++ StelObjectP类的具体用法?C++ StelObjectP怎么用?C++ StelObjectP使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了StelObjectP类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawPointer
void StarMgr::drawPointer(StelRenderer* renderer, StelProjectorP projector, const StelCore* core)
{
const QList<StelObjectP> newSelected = objectMgr->getSelectedObject("Star");
if (!newSelected.empty())
{
const StelObjectP obj = newSelected[0];
Vec3d pos=obj->getJ2000EquatorialPos(core);
Vec3d win;
// Compute 2D pos and return if outside screen
if (!projector->project(pos, win))
{
return;
}
if(NULL == texPointer)
{
texPointer = renderer->createTexture("textures/pointeur2.png"); // Load pointer texture
}
Vec3f c(obj->getInfoColor());
if (StelApp::getInstance().getVisionModeNight())
c = StelUtils::getNightColor(c);
renderer->setGlobalColor(c[0], c[1], c[2]);
texPointer->bind();
renderer->setBlendMode(BlendMode_Alpha);
const float angle = StelApp::getInstance().getTotalRunTime() * 40.0f;
renderer->drawTexturedRect(win[0] - 13.0f, win[1] - 13.0f, 26.0f, 26.0f, angle);
}
}
示例2: GETSTELMODULE
void Supernovae::drawPointer(StelCore* core, StelRenderer* renderer, StelProjectorP projector)
{
const QList<StelObjectP> newSelected = GETSTELMODULE(StelObjectMgr)->getSelectedObject("Supernova");
if (!newSelected.empty())
{
const StelObjectP obj = newSelected[0];
Vec3d pos=obj->getJ2000EquatorialPos(core);
Vec3d screenpos;
// Compute 2D pos and return if outside screen
if (!projector->project(pos, screenpos))
{
return;
}
const Vec3f& c(obj->getInfoColor());
renderer->setGlobalColor(c[0],c[1],c[2]);
if(NULL == texPointer)
{
texPointer = renderer->createTexture("textures/pointeur2.png");
}
texPointer->bind();
renderer->setBlendMode(BlendMode_Alpha);
renderer->drawTexturedRect(screenpos[0] - 13.0f, screenpos[1] - 13.0f, 26.0f, 26.0f,
StelApp::getInstance().getTotalRunTime() * 40.0f);
}
}
示例3: GETSTELMODULE
void NebulaMgr::drawPointer(const StelCore* core, StelPainter& sPainter)
{
const StelProjectorP prj = core->getProjection(StelCore::FrameJ2000);
const QList<StelObjectP> newSelected = GETSTELMODULE(StelObjectMgr)->getSelectedObject("Nebula");
if (!newSelected.empty())
{
const StelObjectP obj = newSelected[0];
Vec3d pos=obj->getJ2000EquatorialPos(core);
// Compute 2D pos and return if outside screen
if (!prj->projectInPlace(pos)) return;
if (StelApp::getInstance().getVisionModeNight())
sPainter.setColor(0.8f,0.0f,0.0f);
else
sPainter.setColor(0.4f,0.5f,0.8f);
texPointer->bind();
sPainter.enableTexture2d(true);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Normal transparency mode
// Size on screen
float size = obj->getAngularSize(core)*M_PI/180.*prj->getPixelPerRadAtCenter();
size+=20.f + 10.f*std::sin(2.f * StelApp::getInstance().getTotalRunTime());
sPainter.drawSprite2dMode(pos[0]-size/2, pos[1]-size/2, 10, 90);
sPainter.drawSprite2dMode(pos[0]-size/2, pos[1]+size/2, 10, 0);
sPainter.drawSprite2dMode(pos[0]+size/2, pos[1]+size/2, 10, -90);
sPainter.drawSprite2dMode(pos[0]+size/2, pos[1]-size/2, 10, -180);
}
}
示例4: drawPointer
void StarMgr::drawPointer(StelPainter& sPainter, const StelCore* core)
{
const QList<StelObjectP> newSelected = objectMgr->getSelectedObject("Star");
if (!newSelected.empty())
{
const StelObjectP obj = newSelected[0];
Vec3d pos=obj->getJ2000EquatorialPos(core);
Vec3d screenpos;
// Compute 2D pos and return if outside screen
if (!sPainter.getProjector()->project(pos, screenpos))
return;
Vec3f c(obj->getInfoColor());
if (StelApp::getInstance().getVisionModeNight())
c = StelUtils::getNightColor(c);
sPainter.setColor(c[0], c[1], c[2]);
texPointer->bind();
sPainter.enableTexture2d(true);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Normal transparency mode
sPainter.drawSprite2dMode(screenpos[0], screenpos[1], 13.f, StelApp::getInstance().getTotalRunTime()*40.);
}
}
示例5: qDebug
/* ********************************************************************* */
void LogBook::enableLogBook(bool b)
{
sessionsDialog->setVisible(b);
// Toggle the plugin on & off. To toggle on, we want to ensure there is a selected object.
if (!StelApp::getInstance().getStelObjectMgr().getWasSelected()) {
qDebug() << "====> Nothing selected.";
} else {
QList<StelObjectP> selectedObjects = StelApp::getInstance().getStelObjectMgr().getSelectedObject();
QListIterator<StelObjectP> objectIterator(selectedObjects);
while (objectIterator.hasNext()) {
StelObjectP stelObject = objectIterator.next();
qDebug() << "====> Name: "<< stelObject->getNameI18n();
}
}
}
示例6: GETSTELMODULE
void Novae::drawPointer(StelCore* core, StelPainter &painter)
{
const QList<StelObjectP> newSelected = GETSTELMODULE(StelObjectMgr)->getSelectedObject("Nova");
if (!newSelected.empty())
{
const StelObjectP obj = newSelected[0];
Vec3d pos=obj->getJ2000EquatorialPos(core);
Vec3d screenpos;
// Compute 2D pos and return if outside screen
if (!painter.getProjector()->project(pos, screenpos))
return;
const Vec3f& c(obj->getInfoColor());
painter.setColor(c[0],c[1],c[2]);
texPointer->bind();
painter.enableTexture2d(true);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Normal transparency mode
painter.drawSprite2dMode(screenpos[0], screenpos[1], 13.f, StelApp::getInstance().getTotalRunTime()*40.);
}
}
示例7: GETSTELMODULE
void Pulsars::drawPointer(StelCore* core, StelPainter& painter)
{
const StelProjectorP prj = core->getProjection(StelCore::FrameJ2000);
const QList<StelObjectP> newSelected = GETSTELMODULE(StelObjectMgr)->getSelectedObject("Pulsar");
if (!newSelected.empty())
{
const StelObjectP obj = newSelected[0];
Vec3d pos=obj->getJ2000EquatorialPos(core);
Vec3d screenpos;
// Compute 2D pos and return if outside screen
if (!painter.getProjector()->project(pos, screenpos))
return;
const Vec3f& c(obj->getInfoColor());
painter.setColor(c[0],c[1],c[2]);
texPointer->bind();
painter.setBlending(true);
painter.drawSprite2dMode(screenpos[0], screenpos[1], 13.f, StelApp::getInstance().getTotalRunTime()*40.);
}
}
示例8: getObjectInfo
QVariantMap StelObjectMgr::getObjectInfo(const StelObjectP obj)
{
QVariantMap map;
if (!obj)
{
qDebug() << "getObjectInfo WARNING - object not found";
map.insert("found", false);
}
else
{
map=obj->getInfoMap(StelApp::getInstance().getCore());
map.insert("found", true);
}
return map;
}
示例9: objectIterator
void TargetsDialog::createTargetFromSelection()
{
if (StelApp::getInstance().getStelObjectMgr().getWasSelected()) {
QList<StelObjectP> selectedObjects = StelApp::getInstance().getStelObjectMgr().getSelectedObject();
QListIterator<StelObjectP> objectIterator(selectedObjects);
StelCore* core = StelApp::getInstance().getCore();
while (objectIterator.hasNext()) {
StelObjectP stelObject = objectIterator.next();
QString type = stelObject->getType();
QString englishName = stelObject->getEnglishName();
if (englishName == "") {
englishName = "No Name";
}
float magnatude = stelObject->getVMagnitude(core);
double angularSize = stelObject->getAngularSize(core);
Vec3d pos;
double ra, dec;
// ra/dec in J2000
pos = stelObject->getJ2000EquatorialPos(core);
StelUtils::rectToSphe(&ra, &dec, pos);
QSqlField field1("name", QVariant::String);
QSqlField field2("right_ascension", QVariant::Double);
QSqlField field3("declination", QVariant::Double);
QSqlField field4("target_type_id", QVariant::Int);
QSqlField field5("magnitude", QVariant::Double);
QSqlField field6("size", QVariant::Double);
field1.setValue(QVariant(englishName));
field2.setValue(QVariant(ra));
field3.setValue(QVariant(dec));
field4.setValue(QVariant(1));
field5.setValue(QVariant(magnatude));
field6.setValue(QVariant(angularSize));
QSqlRecord newRecord = QSqlRecord();
newRecord.append(field1);
newRecord.append(field2);
newRecord.append(field3);
newRecord.append(field4);
newRecord.append(field5);
newRecord.append(field6);
if (tableModel->insertRecord(-1, newRecord)) {
ui->targetsListView->setCurrentIndex(tableModel->index(tableModel->rowCount() - 1, 1));
} else {
qWarning() << "LogBook: could not insert new target. The error is: " << tableModel->lastError();
}
}
} else {
qDebug() << "====> Nothing selected.";
}
}
示例10: set
void TelescopeClientJsonRts2::telescopeGoto(const Vec3d &j2000Pos, StelObjectP selectObject)
{
if (!isConnected())
return;
QUrl set(baseurl);
set.setPath(baseurl.path() + "/api/cmd");
QUrlQuery query;
query.addQueryItem("d", telName);
bool commanded = false;
// if it's satellite, use move_tle
if (selectObject)
{
QVariantMap objectMap = selectObject->getInfoMap(StelApp::getInstance().getCore());
if (objectMap.contains("tle1") && objectMap.contains("tle2"))
{
query.addQueryItem("c", QString("move_tle+%22") + objectMap["tle1"].toString() + QString("%22+%22") + objectMap["tle2"].toString() + QString("%22"));
commanded = true;
}
}
if (commanded == false)
{
double ra, dec;
StelUtils::rectToSphe(&ra, &dec, j2000Pos);
query.addQueryItem("c", QString("move+%1+%2").arg(ra * 180 / M_PI).arg(dec * 180 / M_PI));
}
set.setQuery(query);
QNetworkRequest setR;
setR.setUrl(set);
qDebug() << "TelescopeRTS2(" << name << ")::telescopeGoto: request: " << set.toString();
networkManager.get(setR);
}
示例11: initListEphemeris
void AstroCalcDialog::generateEphemeris()
{
float currentStep, ra, dec;
QString currentPlanet = ui->celestialBodyComboBox->currentData().toString();
initListEphemeris();
switch (ui->ephemerisStepComboBox->currentData().toInt()) {
case 1:
currentStep = 10 * StelCore::JD_MINUTE;
break;
case 2:
currentStep = StelCore::JD_HOUR;
break;
case 3:
currentStep = StelCore::JD_DAY;
break;
case 4:
currentStep = 5 * StelCore::JD_DAY;
break;
case 5:
currentStep = 10 * StelCore::JD_DAY;
break;
case 6:
currentStep = 15 * StelCore::JD_DAY;
break;
case 7:
currentStep = 30 * StelCore::JD_DAY;
break;
case 8:
currentStep = 60 * StelCore::JD_DAY;
break;
default:
currentStep = StelCore::JD_DAY;
break;
}
StelObjectP obj = solarSystem->searchByName(currentPlanet);
if (obj)
{
double currentJD = core->getJD(); // save current JD
double firstJD = StelUtils::qDateTimeToJd(ui->dateFromDateTimeEdit->dateTime());
firstJD = firstJD - StelUtils::getGMTShiftFromQT(firstJD)/24;
int elements = (int)((StelUtils::qDateTimeToJd(ui->dateToDateTimeEdit->dateTime()) - firstJD)/currentStep);
EphemerisListJ2000.clear();
EphemerisListJ2000.reserve(elements);
for (int i=0; i<elements; i++)
{
double JD = firstJD + i*currentStep;
core->setJD(JD);
core->update(0); // force update to get new coordinates
Vec3d pos = obj->getJ2000EquatorialPos(core);
EphemerisListJ2000.append(pos);
StelUtils::rectToSphe(&ra,&dec,pos);
ACTreeWidgetItem *treeItem = new ACTreeWidgetItem(ui->ephemerisTreeWidget);
// local date and time
treeItem->setText(EphemerisDate, StelUtils::jdToQDateTime(JD + StelUtils::getGMTShiftFromQT(JD)/24).toString("yyyy-MM-dd hh:mm:ss"));
treeItem->setText(EphemerisJD, QString::number(JD, 'f', 5));
treeItem->setText(EphemerisRA, StelUtils::radToHmsStr(ra));
treeItem->setTextAlignment(EphemerisRA, Qt::AlignRight);
treeItem->setText(EphemerisDec, StelUtils::radToHmsStr(dec));
treeItem->setTextAlignment(EphemerisDec, Qt::AlignRight);
treeItem->setText(EphemerisMagnitude, QString::number(obj->getVMagnitudeWithExtinction(core), 'f', 2));
treeItem->setTextAlignment(EphemerisMagnitude, Qt::AlignRight);
}
core->setJD(currentJD); // restore time
}
// adjust the column width
for(int i = 0; i < EphemerisCount; ++i)
{
ui->ephemerisTreeWidget->resizeColumnToContents(i);
}
// sort-by-date
ui->ephemerisTreeWidget->sortItems(EphemerisDate, Qt::AscendingOrder);
}
示例12: addObject
void TrailGroup::addObject(const StelObjectP& obj, const Vec3f* col)
{
allTrails.append(TrailGroup::Trail(obj, col==NULL ? obj->getInfoColor() : *col));
}
示例13: draw
bool SkyLabel::draw(StelCore* core, StelPainter& sPainter)
{
if(labelFader.getInterstate() <= 0.0)
return false;
Vec3d objectPos = labelObject->getJ2000EquatorialPos(core);
Vec3d labelXY;
sPainter.getProjector()->project(objectPos,labelXY);
sPainter.setFont(labelFont);
double xOffset(0.);
double yOffset(0.);
char hJustify = 'c';
char vJustify = 'c';
if (labelSide.toUpper().contains("N"))
{
yOffset = 1.0;
vJustify = 'b'; // bottom justify text
}
else if (labelSide.toUpper().contains("S"))
{
yOffset = -1.0;
vJustify = 't'; // top justufy text
}
if (labelSide.toUpper().contains("E"))
{
xOffset = 1.0;
hJustify = 'l'; // right justify text
}
else if (labelSide.toUpper().contains("W"))
{
xOffset = -1.0;
hJustify = 'r'; // left justify text
}
if (labelDistance >= 0.0)
{
xOffset *= labelDistance;
yOffset *= labelDistance;
}
else
{
float shift = 4.f + labelObject->getAngularSize(core)*M_PI/180.*sPainter.getProjector()->getPixelPerRadAtCenter()/1.8f;
// use the object size
xOffset *= shift;
yOffset *= shift;
}
double jxOffset(0.);
double jyOffset(0.);
if (hJustify == 'r')
jxOffset = sPainter.getFontMetrics().width(labelText);
else if (hJustify == 'c')
jxOffset = sPainter.getFontMetrics().width(labelText) / 2.;
if (vJustify == 't')
jyOffset = sPainter.getFontMetrics().height();
else if (vJustify == 'c')
jyOffset = sPainter.getFontMetrics().height() / 2.;
sPainter.setColor(labelColor[0], labelColor[1], labelColor[2], labelFader.getInterstate());
sPainter.drawText(labelXY[0]+xOffset-jxOffset, labelXY[1]+yOffset-jyOffset, labelText, 0, 0, 0, false);
if (labelStyle == SkyLabel::Line)
{
sPainter.enableTexture2d(false);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
// screen coordinates of object
Vec3d objXY;
sPainter.getProjector()->project(objectPos,objXY);
double lineEndX = labelXY[0]+xOffset;
double lineEndY = labelXY[1]+yOffset;
if (vJustify == 'b')
lineEndY -= 5;
else if (vJustify == 't')
lineEndY += 5;
if (hJustify == 'l')
lineEndX -= 5;
else if (hJustify == 'r')
lineEndX += 5;
sPainter.setColor(labelColor[0], labelColor[1], labelColor[2], labelFader.getInterstate());
sPainter.drawLine2d(lineEndX,lineEndY,objXY[0], objXY[1]);
}
return true;
}
示例14: draw
bool SkyLabel::draw(StelCore* core, StelRenderer* renderer, StelProjectorP projector)
{
if(labelFader.getInterstate() <= 0.0)
return false;
Vec3d objectPos = labelObject->getJ2000EquatorialPos(core);
Vec3d labelXY;
projector->project(objectPos, labelXY);
renderer->setFont(labelFont);
double xOffset(0.);
double yOffset(0.);
char hJustify = 'c';
char vJustify = 'c';
if (labelSide.toUpper().contains("N"))
{
yOffset = 1.0;
vJustify = 'b'; // bottom justify text
}
else if (labelSide.toUpper().contains("S"))
{
yOffset = -1.0;
vJustify = 't'; // top justufy text
}
if (labelSide.toUpper().contains("E"))
{
xOffset = 1.0;
hJustify = 'l'; // right justify text
}
else if (labelSide.toUpper().contains("W"))
{
xOffset = -1.0;
hJustify = 'r'; // left justify text
}
if (labelDistance >= 0.0)
{
xOffset *= labelDistance;
yOffset *= labelDistance;
}
else
{
float shift = 4.0f + labelObject->getAngularSize(core) * M_PI / 180.0f *
projector->getPixelPerRadAtCenter() / 1.8f;
// use the object size
xOffset *= shift;
yOffset *= shift;
}
QFontMetrics fontMetrics(labelFont);
const float jxOffset = hJustify == 'r' ? fontMetrics.width(labelText) :
hJustify == 'c' ? fontMetrics.width(labelText) * 0.5 :
0.0;
const float jyOffset = vJustify == 't' ? fontMetrics.height() :
vJustify == 'c' ? fontMetrics.height() * 0.5 :
0.0;
renderer->setGlobalColor(labelColor[0], labelColor[1],
labelColor[2], labelFader.getInterstate());
renderer->drawText(TextParams(labelXY[0] + xOffset - jxOffset,
labelXY[1] + yOffset - jyOffset,
labelText).useGravity());
if (labelStyle == SkyLabel::Line)
{
renderer->setBlendMode(BlendMode_Alpha);
// screen coordinates of object
Vec3d objXY;
projector->project(objectPos, objXY);
double lineEndX = labelXY[0]+xOffset;
double lineEndY = labelXY[1]+yOffset;
if (vJustify == 'b')
lineEndY -= 5;
else if (vJustify == 't')
lineEndY += 5;
if (hJustify == 'l')
lineEndX -= 5;
else if (hJustify == 'r')
lineEndX += 5;
renderer->setGlobalColor(labelColor[0], labelColor[1], labelColor[2],
labelFader.getInterstate());
renderer->drawLine(lineEndX,lineEndY,objXY[0], objXY[1]);
}
return true;
}