Value Object_GlyphSlot::DoGetProp(Environment &env, const Symbol *pSymbol, const SymbolSet &attrs, bool &evaluatedFlag) { evaluatedFlag = true; if (pSymbol->IsIdentical(Gura_UserSymbol(advance))) { AutoPtr<Object_Vector> pObj(new Object_Vector( Object::Reference(this), &_glyphSlot->advance)); return Value(pObj.release()); } else if (pSymbol->IsIdentical(Gura_UserSymbol(format))) { return Value(_glyphSlot->format); } else if (pSymbol->IsIdentical(Gura_UserSymbol(bitmap))) { AutoPtr<Object_Bitmap> pObj(new Object_Bitmap( Object::Reference(this), &_glyphSlot->bitmap)); return Value(pObj.release()); } else if (pSymbol->IsIdentical(Gura_UserSymbol(bitmap_left))) { return Value(_glyphSlot->bitmap_left); } else if (pSymbol->IsIdentical(Gura_UserSymbol(bitmap_top))) { return Value(_glyphSlot->bitmap_top); } else if (pSymbol->IsIdentical(Gura_UserSymbol(outline))) { AutoPtr<Object_Outline> pObj(new Object_Outline( Object::Reference(this), &_glyphSlot->outline)); return Value(pObj.release()); } evaluatedFlag = false; return Value::Nil; }
TEST(FactoriesTest, pluginDowncast) { ObjSPtr pObj(new ObjA()); ObjSPtr pObjNull; EXPECT_TRUE(ObjA::downcast(pObj)); EXPECT_FALSE(ObjA::downcast(pObjNull)); }
bool Disk::Sample(const Point2f &sample, Interaction *it) const { Point2f pd = ConcentricSampleDisk(sample); Point3f pObj(pd.x * radius, pd.y * radius, height); it->n = Normalize((*ObjectToWorld)(Normal3f(0, 0, 1))); if (ReverseOrientation) it->n *= -1.f; Vector3f pObjError(0.f, 0.f, MachineEpsilon * height); it->p = (*ObjectToWorld)(pObj, pObjError, &it->pError); return true; }
CContactManager::CContactManager(QObject *parent) :CBaseObject(parent) { for(int i = 0; i <100; ++i) { QSharedPointer<Z_WX_USER_DATA> pObj(new Z_WX_USER_DATA); pObj.data()->UserName = QUuid::createUuid().toString(); pObj.data()->NickName = QString("TEMP%1").arg(i); m_contackMap.insert(pObj.data()->UserName,pObj); } }
bool nwxGrid::CopyToClipboard(wxGrid *pGrid,bool bLabels) { wxString s(GetTabDelimited(pGrid,bLabels)); auto_ptr<wxTextDataObject> pObj(new wxTextDataObject(s)); wxClipboard clp; bool bRtn = clp.Open(); if(bRtn) { clp.SetData(pObj.release()); clp.Flush(); clp.Close(); } return bRtn; }
TEST(FactoriesTest, create_downcast) { ObjSPtr pObj(new Obj()); ObjSPtr pObjA(new ObjA()); ObjSPtr pObjB1(new ObjB1()); EXPECT_FALSE(HierarchyObjFactory::downcastObjA(pObj)); EXPECT_TRUE(HierarchyObjFactory::downcastObjA(pObjA)); EXPECT_FALSE(HierarchyObjFactory::downcastObjA(pObjB1)); EXPECT_FALSE(HierarchyObjFactory::downcastObjB1(pObj)); EXPECT_FALSE(HierarchyObjFactory::downcastObjB1(pObjA)); EXPECT_TRUE(HierarchyObjFactory::downcastObjB1(pObjB1)); }
TEST(FactoriesTest, hierarchyClone) { { ObjSPtr pObj(new ObjA()); pObj->set_o(1); ObjSPtr pCloneObj = HierarchyObjFactory::clone(pObj); EXPECT_EQ(pObj->o(), pCloneObj->o()); pObj->set_o(pObj->o() + 1); EXPECT_NE(pObj->o(), pCloneObj->o()); ObjASPtr pObjA = HierarchyObjFactory::downcastObjA(pObj); pObjA->set_a(2); pCloneObj = HierarchyObjFactory::clone(pObj); ObjASPtr pCloneObjA = HierarchyObjFactory::downcastObjA(pCloneObj); EXPECT_EQ(pObjA->a(), pCloneObjA->a()); pObjA->set_a(pObjA->a() + 1); EXPECT_NE(pObjA->a(), pCloneObjA->a()); } { ObjSPtr pObj(new ObjB1()); pObj->set_o(1); ObjSPtr pCloneObj = HierarchyObjFactory::clone(pObj); EXPECT_EQ(pObj->o(), pCloneObj->o()); pObj->set_o(pObj->o() + 1); EXPECT_NE(pObj->o(), pCloneObj->o()); ObjB1SPtr pObjB1 = HierarchyObjFactory::downcastObjB1(pObj); pObjB1->set_b1(3); pCloneObj = HierarchyObjFactory::clone(pObj); ObjB1SPtr pCloneObjB1 = HierarchyObjFactory::downcastObjB1(pCloneObj); EXPECT_EQ(pObjB1->b1(), pCloneObjB1->b1()); pObjB1->set_b1(pObjB1->b1() + 1); EXPECT_NE(pObjB1->b1(), pCloneObjB1->b1()); } }
int CScriptBind_Physics::SamplePhysEnvironment(IFunctionHandler *pH) { int nEnts,i,nHits=0,objtypes = ent_static|ent_rigid|ent_sleeping_rigid|ent_sort_by_mass; pe_status_nparts snp; pe_status_pos sp; IPhysicalEntity **pEnts; geom_world_data gwd; IGeometry *pSphere; primitives::sphere sph; intersection_params ip; geom_contact *pcontacts; IPhysicalWorld *pWorld = m_pSystem->GetIPhysicalWorld(); IEntity *pEntity; SmartScriptTable pObj(m_pSS); ip.bStopAtFirstTri=ip.bNoBorder=ip.bNoAreaContacts = true; ip.bThreadSafe = true; if (!pH->GetParams(sph.center,sph.r)) return pH->EndFunction(); if (pH->GetParamCount()>2) pH->GetParam(3,objtypes); pSphere = pWorld->GetGeomManager()->CreatePrimitive(primitives::sphere::type,&sph); nEnts = pWorld->GetEntitiesInBox(sph.center-Vec3(sph.r),sph.center+Vec3(sph.r),pEnts,objtypes); for(i=0;i<nEnts;i++) for(sp.ipart=pEnts[i]->GetStatus(&snp)-1;sp.ipart>=0;sp.ipart--) { sp.partid=-1; pEnts[i]->GetStatus(&sp); gwd.offset=sp.pos; gwd.R=Matrix33(sp.q); gwd.scale=sp.scale; WriteLockCond lock; if ((sp.flagsOR & (geom_colltype0|geom_no_coll_response))==geom_colltype0 && sp.pGeomProxy->IntersectLocked(pSphere,&gwd,0,&ip,pcontacts,lock)) { ++nHits; if (pEntity = (IEntity*)pEnts[i]->GetForeignData(PHYS_FOREIGN_ID_ENTITY)) pObj->SetAt(nHits*3-2, pEntity->GetScriptTable()); else pObj->SetNullAt(nHits*3-2); pObj->SetAt(nHits*3-1, sp.partid); pObj->SetAt(nHits*3, pWorld->GetPhysicalEntityId(pEnts[i])); if (pEnts[i]->GetType()!=PE_ARTICULATED) break; } } pSphere->Release(); return pH->EndFunction(*pObj); }
void CPDF_StreamContentParser::Handle_BeginImage() { FX_FILESIZE savePos = m_pSyntax->GetPos(); CPDF_Dictionary* pDict = CPDF_Dictionary::Create(); while (1) { CPDF_StreamParser::SyntaxType type = m_pSyntax->ParseNextElement(); if (type == CPDF_StreamParser::Keyword) { CFX_ByteString bsKeyword(m_pSyntax->GetWordBuf(), m_pSyntax->GetWordSize()); if (bsKeyword != FX_BSTRC("ID")) { m_pSyntax->SetPos(savePos); pDict->Release(); return; } } if (type != CPDF_StreamParser::Name) { break; } CFX_ByteString key((const FX_CHAR*)m_pSyntax->GetWordBuf() + 1, m_pSyntax->GetWordSize() - 1); nonstd::unique_ptr<CPDF_Object, ReleaseDeleter<CPDF_Object>> pObj( m_pSyntax->ReadNextObject()); if (!key.IsEmpty()) { FX_DWORD dwObjNum = pObj ? pObj->GetObjNum() : 0; if (dwObjNum) pDict->SetAtReference(key, m_pDocument, dwObjNum); else pDict->SetAt(key, pObj.release()); } } _PDF_ReplaceAbbr(pDict); CPDF_Object* pCSObj = NULL; if (pDict->KeyExist(FX_BSTRC("ColorSpace"))) { pCSObj = pDict->GetElementValue(FX_BSTRC("ColorSpace")); if (pCSObj->IsName()) { CFX_ByteString name = pCSObj->GetString(); if (name != FX_BSTRC("DeviceRGB") && name != FX_BSTRC("DeviceGray") && name != FX_BSTRC("DeviceCMYK")) { pCSObj = FindResourceObj(FX_BSTRC("ColorSpace"), name); if (pCSObj && !pCSObj->GetObjNum()) { pCSObj = pCSObj->Clone(); pDict->SetAt(FX_BSTRC("ColorSpace"), pCSObj); } } } } CPDF_Stream* pStream = m_pSyntax->ReadInlineStream( m_pDocument, pDict, pCSObj, m_Options.m_bDecodeInlineImage); while (1) { CPDF_StreamParser::SyntaxType type = m_pSyntax->ParseNextElement(); if (type == CPDF_StreamParser::EndOfData) { break; } if (type != CPDF_StreamParser::Keyword) { continue; } if (m_pSyntax->GetWordSize() == 2 && m_pSyntax->GetWordBuf()[0] == 'E' && m_pSyntax->GetWordBuf()[1] == 'I') { break; } } if (m_Options.m_bTextOnly) { if (pStream) { pStream->Release(); } else { pDict->Release(); } return; } pDict->SetAtName(FX_BSTRC("Subtype"), FX_BSTRC("Image")); CPDF_ImageObject* pImgObj = AddImage(pStream, NULL, TRUE); if (!pImgObj) { if (pStream) { pStream->Release(); } else { pDict->Release(); } } }