本文整理汇总了C++中GetFrame函数的典型用法代码示例。如果您正苦于以下问题:C++ GetFrame函数的具体用法?C++ GetFrame怎么用?C++ GetFrame使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetFrame函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: wxCHECK_RET
void wxMenuBar::Refresh()
{
if ( IsFrozen() )
return;
wxCHECK_RET( IsAttached(), wxT("can't refresh unattached menubar") );
#if defined(WINCE_WITHOUT_COMMANDBAR)
if (GetToolBar())
{
CommandBar_DrawMenuBar((HWND) GetToolBar()->GetHWND(), 0);
}
#elif defined(WINCE_WITH_COMMANDBAR)
if (m_commandBar)
DrawMenuBar((HWND) m_commandBar);
#else
DrawMenuBar(GetHwndOf(GetFrame()));
#endif
}
示例2: GetShipType
// Input: direction in ship's frame, doesn't need to be normalized
// Approximate positive angular velocity at match point
// Applies thrust directly
// old: returns whether it can reach that direction in this frame
// returns angle to target
double Ship::AIFaceDirection(const vector3d &dir, double av)
{
double timeStep = Pi::game->GetTimeStep();
double maxAccel = GetShipType().angThrust / GetAngularInertia(); // should probably be in stats anyway
if (maxAccel <= 0.0) return 0.0;
double frameAccel = maxAccel * timeStep;
matrix4x4d rot; GetRotMatrix(rot);
vector3d head = (dir * rot).Normalized(); // create desired object-space heading
vector3d dav(0.0, 0.0, 0.0); // desired angular velocity
double ang = 0.0;
if (head.z > -0.99999999)
{
ang = acos (Clamp(-head.z, -1.0, 1.0)); // scalar angle from head to curhead
double iangvel = av + sqrt (2.0 * maxAccel * ang); // ideal angvel at current time
double frameEndAV = iangvel - frameAccel;
if (frameEndAV <= 0.0) iangvel = ang / timeStep; // last frame discrete correction
else iangvel = (iangvel + frameEndAV) * 0.5; // discrete overshoot correction
// Normalize (head.x, head.y) to give desired angvel direction
if (head.z > 0.999999) head.x = 1.0;
double head2dnorm = 1.0 / sqrt(head.x*head.x + head.y*head.y); // NAN fix shouldn't be necessary if inputs are normalized
dav.x = head.y * head2dnorm * iangvel;
dav.y = -head.x * head2dnorm * iangvel;
}
vector3d cav = (GetAngVelocity() - GetFrame()->GetAngVelocity()) * rot; // current obj-rel angvel
// vector3d cav = GetAngVelocity() * rot; // current obj-rel angvel
vector3d diff = (dav - cav) / frameAccel; // find diff between current & desired angvel
// If the player is pressing a roll key, don't override roll.
// XXX this really shouldn't be here. a better way would be to have a
// field in Ship describing the wanted angvel adjustment from input. the
// baseclass version in Ship would always be 0. the version in Player
// would be constructed from user input. that adjustment could then be
// considered by this method when computing the required change
if (IsType(Object::PLAYER) && (KeyBindings::rollLeft.IsActive() || KeyBindings::rollRight.IsActive()))
diff.z = m_angThrusters.z;
SetAngThrusterState(diff);
return ang;
}
示例3: GetFreeDockingPort
void SpaceStation::DoLawAndOrder()
{
Sint64 fine, crimeBitset;
Polit::GetCrime(&crimeBitset, &fine);
bool isDocked = static_cast<Ship*>(Pi::player)->GetDockedWith() ? true : false;
if (Pi::player->GetFlightState() != Ship::DOCKED
&& m_numPoliceDocked
&& (fine > 1000)
&& (GetPositionRelTo(static_cast<Body*>(Pi::player)).Length() < 100000.0)) {
int port = GetFreeDockingPort();
if (port != -1) {
m_numPoliceDocked--;
// Make police ship intent on killing the player
Ship *ship = new Ship(ShipType::LADYBIRD);
ship->AIKill(Pi::player);
ship->SetFrame(GetFrame());
ship->SetDockedWith(this, port);
Space::AddBody(ship);
{ // blue and white thang
ShipFlavour f;
f.type = ShipType::LADYBIRD;
strncpy(f.regid, "POLICE", 16);
f.price = ship->GetFlavour()->price;
LmrMaterial m;
m.diffuse[0] = 0.0f; m.diffuse[1] = 0.0f; m.diffuse[2] = 1.0f; m.diffuse[3] = 1.0f;
m.specular[0] = 0.0f; m.specular[1] = 0.0f; m.specular[2] = 1.0f; m.specular[3] = 1.0f;
m.emissive[0] = 0.0f; m.emissive[1] = 0.0f; m.emissive[2] = 0.0f; m.emissive[3] = 0.0f;
m.shininess = 50.0f;
f.primaryColor = m;
m.shininess = 0.0f;
m.diffuse[0] = 1.0f; m.diffuse[1] = 1.0f; m.diffuse[2] = 1.0f; m.diffuse[3] = 1.0f;
f.secondaryColor = m;
ship->ResetFlavour(&f);
}
ship->m_equipment.Set(Equip::SLOT_LASER, 0, Equip::PULSECANNON_DUAL_1MW);
ship->m_equipment.Add(Equip::SHIELD_GENERATOR);
ship->m_equipment.Add(Equip::LASER_COOLING_BOOSTER);
ship->m_equipment.Add(Equip::ATMOSPHERIC_SHIELDING);
ship->UpdateMass();
}
}
}
示例4: double
void DynamicBody::TimeStepUpdate(const float timeStep)
{
if (m_enabled) {
m_force += m_externalForce;
m_oldOrient = m_orient;
m_vel += double(timeStep) * m_force * (1.0 / m_mass);
m_angVel += double(timeStep) * m_torque * (1.0 / m_angInertia);
// angvel is always relative to non-rotating frame, so need to counter frame angvel
vector3d consideredAngVel = m_angVel - GetFrame()->GetAngVelocity();
vector3d pos = GetPosition();
// applying angular velocity :-/
{
double len = consideredAngVel.Length();
if (len > 1e-16) {
vector3d rotAxis = consideredAngVel * (1.0 / len);
matrix4x4d rotMatrix = matrix4x4d::RotateMatrix(len * timeStep,
rotAxis.x, rotAxis.y, rotAxis.z);
m_orient = rotMatrix * m_orient;
}
}
m_oldAngDisplacement = consideredAngVel * timeStep;
pos += m_vel * double(timeStep);
m_orient[12] = pos.x;
m_orient[13] = pos.y;
m_orient[14] = pos.z;
TriMeshUpdateLastPos(m_orient);
//printf("vel = %.1f,%.1f,%.1f, force = %.1f,%.1f,%.1f, external = %.1f,%.1f,%.1f\n",
// m_vel.x, m_vel.y, m_vel.z, m_force.x, m_force.y, m_force.z,
// m_externalForce.x, m_externalForce.y, m_externalForce.z);
m_force = vector3d(0.0);
m_torque = vector3d(0.0);
CalcExternalForce(); // regenerate for new pos/vel
} else {
m_oldOrient = m_orient;
m_oldAngDisplacement = vector3d(0.0);
}
}
示例5: GetFrame
nsAccessible*
nsXULTreeAccessible::GetChildAtPoint(PRInt32 aX, PRInt32 aY,
EWhichChildAtPoint aWhichChild)
{
nsIFrame *frame = GetFrame();
if (!frame)
return nsnull;
nsPresContext *presContext = frame->PresContext();
nsCOMPtr<nsIPresShell> presShell = presContext->PresShell();
nsIFrame *rootFrame = presShell->GetRootFrame();
NS_ENSURE_TRUE(rootFrame, nsnull);
nsIntRect rootRect = rootFrame->GetScreenRectExternal();
PRInt32 clientX = presContext->DevPixelsToIntCSSPixels(aX - rootRect.x);
PRInt32 clientY = presContext->DevPixelsToIntCSSPixels(aY - rootRect.y);
PRInt32 row = -1;
nsCOMPtr<nsITreeColumn> column;
nsCAutoString childEltUnused;
mTree->GetCellAt(clientX, clientY, &row, getter_AddRefs(column),
childEltUnused);
// If we failed to find tree cell for the given point then it might be
// tree columns.
if (row == -1 || !column)
return nsAccessibleWrap::GetChildAtPoint(aX, aY, aWhichChild);
nsAccessible *child = GetTreeItemAccessible(row);
if (aWhichChild == eDeepestChild && child) {
// Look for accessible cell for the found item accessible.
nsRefPtr<nsXULTreeItemAccessibleBase> treeitem = do_QueryObject(child);
nsAccessible *cell = treeitem->GetCellAccessible(column);
if (cell)
child = cell;
}
return child;
}
示例6: Explode
void Missile::Explode()
{
Pi::game->GetSpace()->KillBody(this);
const double damageRadius = 200.0;
const double kgDamage = 10000.0;
for (Space::BodyIterator i = Pi::game->GetSpace()->BodiesBegin(); i != Pi::game->GetSpace()->BodiesEnd(); ++i) {
if ((*i)->GetFrame() != GetFrame()) continue;
double dist = ((*i)->GetPosition() - GetPosition()).Length();
if (dist < damageRadius) {
// linear damage decay with distance
(*i)->OnDamage(m_owner, kgDamage * (damageRadius - dist) / damageRadius);
if ((*i)->IsType(Object::SHIP))
Pi::luaOnShipHit->Queue(dynamic_cast<Ship*>(*i), m_owner);
}
}
Sfx::Add(this, Sfx::TYPE_EXPLOSION);
}
示例7: GetFrame
/**
* Our action name is the reverse of our state:
* if we are closed -> open is our name.
* if we are open -> closed is our name.
* Uses the frame to get the state, updated on every click
*/
NS_IMETHODIMP nsHTMLComboboxAccessible::GetActionName(PRUint8 aIndex, nsAString& aName)
{
if (aIndex != nsHTMLComboboxAccessible::eAction_Click) {
return NS_ERROR_INVALID_ARG;
}
nsIFrame *frame = GetFrame();
if (!frame) {
return NS_ERROR_FAILURE;
}
nsIComboboxControlFrame *comboFrame = do_QueryFrame(frame);
if (!comboFrame) {
return NS_ERROR_FAILURE;
}
if (comboFrame->IsDroppedDown())
aName.AssignLiteral("close");
else
aName.AssignLiteral("open");
return NS_OK;
}
示例8: shell
NS_IMETHODIMP
nsAccessNode::ScrollTo(PRUint32 aScrollType)
{
if (IsDefunct())
return NS_ERROR_FAILURE;
nsCOMPtr<nsIPresShell> shell(GetPresShell());
NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE);
nsIFrame *frame = GetFrame();
NS_ENSURE_TRUE(frame, NS_ERROR_FAILURE);
nsCOMPtr<nsIContent> content = frame->GetContent();
NS_ENSURE_TRUE(content, NS_ERROR_FAILURE);
PRInt16 vPercent, hPercent;
nsCoreUtils::ConvertScrollTypeToPercents(aScrollType, &vPercent, &hPercent);
return shell->ScrollContentIntoView(content, vPercent, hPercent,
nsIPresShell::SCROLL_OVERFLOW_HIDDEN);
}
示例9: check
void FGearVR::GetCurrentPose(FQuat& CurrentHmdOrientation, FVector& CurrentHmdPosition, bool bUseOrienationForPlayerCamera, bool bUsePositionForPlayerCamera)
{
check(IsInGameThread());
auto frame = GetFrame();
check(frame);
if (bUseOrienationForPlayerCamera || bUsePositionForPlayerCamera)
{
// if this pose is going to be used for camera update then save it.
// This matters only if bUpdateOnRT is OFF.
frame->EyeRenderPose[0] = frame->CurEyeRenderPose[0];
frame->EyeRenderPose[1] = frame->CurEyeRenderPose[1];
frame->HeadPose = frame->CurSensorState.Predicted.Pose;
}
frame->PoseToOrientationAndPosition(frame->CurSensorState.Predicted.Pose, CurrentHmdOrientation, CurrentHmdPosition);
//UE_LOG(LogHMD, Log, TEXT("CRPOSE: Pos %.3f %.3f %.3f"), CurrentHmdPosition.X, CurrentHmdPosition.Y, CurrentHmdPosition.Z);
//UE_LOG(LogHMD, Log, TEXT("CRPOSE: Yaw %.3f Pitch %.3f Roll %.3f"), CurrentHmdOrientation.Rotator().Yaw, CurrentHmdOrientation.Rotator().Pitch, CurrentHmdOrientation.Rotator().Roll);
}
示例10: GetFrame
void EnviroGUI::SetTerrainToGUI(vtTerrain *pTerrain)
{
GetFrame()->SetTerrainToGUI(pTerrain);
if (pTerrain)
{
if (m_pJFlyer)
{
float speed = pTerrain->GetParams().GetValueFloat(STR_NAVSPEED);
m_pJFlyer->SetSpeed(speed);
}
ShowMapOverview(pTerrain->GetParams().GetValueBool(STR_OVERVIEW));
ShowCompass(pTerrain->GetParams().GetValueBool(STR_COMPASS));
}
else
{
ShowMapOverview(false);
ShowCompass(false);
}
}
示例11: wxFileSelector
void AudioView::Import()
{
wxString fileName =
wxFileSelector("Select an audio file...",
"", // Path
"", // Name
"", // Extension
"", // Wildcard
0, // Flags
GetFrame()); // Parent
if (fileName == "")
return;
WaveTrack *left = 0;
WaveTrack *right = 0;
if (ImportWAV(fileName, &left, &right, &((AudioDoc *)GetDocument())->dirManager)) {
if (left || right) {
SelectNone();
}
if (left) {
GetTracks()->Add(left);
left->selected = true;
}
if (right) {
GetTracks()->Add(right);
right->selected = true;
}
PushState();
FixScrollbars();
REDRAW(trackPanel);
REDRAW(rulerPanel);
}
}
示例12: Activate
bool TextEditView::OnClose(bool deleteWindow)
{
if ( !wxView::OnClose(deleteWindow) )
return false;
Activate(false);
if ( wxGetApp().GetMode() == MyApp::Mode_Single )
{
m_text->Clear();
}
else // not single window mode
{
if ( deleteWindow )
{
GetFrame()->Destroy();
SetFrame(NULL);
}
}
return true;
}
示例13: do_QueryFrame
NS_IMETHODIMP
nsMenuBoxObject::GetOpenedWithKey(bool* aOpenedWithKey)
{
*aOpenedWithKey = false;
nsMenuFrame* menuframe = do_QueryFrame(GetFrame(false));
if (!menuframe)
return NS_OK;
nsIFrame* frame = menuframe->GetParent();
while (frame) {
nsMenuBarFrame* menubar = do_QueryFrame(frame);
if (menubar) {
*aOpenedWithKey = menubar->IsActiveByKeyboard();
return NS_OK;
}
frame = frame->GetParent();
}
return NS_OK;
}
示例14: ClearResultStrings
void SDIOAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& channel, DisplayBase display_base )
{
ClearResultStrings();
Frame frame = GetFrame( frame_index );
// if this is command data
if (frame.mType == FRAME_TYPE_CMD_DATA)
{
SdioCmd *tmp = SdioCmd::CreateSdioCmd(frame.mData1);
string *s = tmp->getShortString();
AddResultString( s->c_str() );
delete s;
}
// else, this is data line data, should be partitioned into bytes
else
{
char number_str[128] = {0};
sprintf(number_str, "0x%02X", frame.mData1);
AddResultString( number_str );
}
}
示例15: while
void sPerfMonGpu::Flip()
{
if(Current)
{
// Leave(&MasterSection);
Current->FrequencyQuery->End(Adapter->ImmediateContext);
PendingFrames.AddTail(Current);
Current = 0;
uint64 freq;
while(PendingFrames.GetCount()>History)
GetLastFrame(freq);
}
if(sPerfMonEnable)
{
Current = GetFrame();
Current->Data.Clear();
sASSERT(Current->Queries.IsEmpty());
Current->FrequencyQuery->Begin(Adapter->ImmediateContext);
// Enter(&MasterSection);
}
}