Ejemplo n.º 1
0
/*
函数功能:	文件系统测试
参数	:	void
返回值	:	void
*/
void FS_Test(void)
{
	FS_Object TextFile;
	FS_Object TextDir;
	u8 str[]="star dust!";
	
	CreateNewObject(&RootDir,&TextDir,"test",DIR);
	CreateNewObject(&TextDir,&TextFile,"text.txt",FILE);
	WriteFile(&TextFile,str,sizeof(str)-1);
	
	if(Search_inDir(&RootDir,&TextDir,"picture",DIR)==FILE_EXIST)
	{
		LsDir(&TextDir);
	}
}
Ejemplo n.º 2
0
bool TestCreateObject(uint32_t offset, uint32_t length)
{
    JS::RootedObject obj(cx, CreateNewObject(offset, length));
    CHECK(VerifyObject(obj, offset, length, true));

    return true;
}
Ejemplo n.º 3
0
bool TestTransferObject()
{
    JS::RootedObject obj1(cx, CreateNewObject(8, 12));
    CHECK(obj1);
    JS::RootedValue v1(cx, JS::ObjectValue(*obj1));

    // Create an Array of transferable values.
    JS::AutoValueVector argv(cx);
    if (!argv.append(v1))
        return false;

    JS::RootedObject obj(cx, JS_NewArrayObject(cx, JS::HandleValueArray::subarray(argv, 0, 1)));
    CHECK(obj);
    JS::RootedValue transferable(cx, JS::ObjectValue(*obj));

    JSAutoStructuredCloneBuffer cloned_buffer(JS::StructuredCloneScope::SameProcessSameThread, nullptr, nullptr);
    CHECK(cloned_buffer.write(cx, v1, transferable, nullptr, nullptr));
    JS::RootedValue v2(cx);
    CHECK(cloned_buffer.read(cx, &v2, nullptr, nullptr));
    JS::RootedObject obj2(cx, v2.toObjectOrNull());
    CHECK(VerifyObject(obj2, 8, 12, true));
    CHECK(JS_IsDetachedArrayBufferObject(obj1));

    return true;
}
Ejemplo n.º 4
0
bool TestDetachObject()
{
    JS::RootedObject obj(cx, CreateNewObject(8, 12));
    CHECK(obj);
    JS_DetachArrayBuffer(cx, obj);
    CHECK(JS_IsDetachedArrayBufferObject(obj));

    return true;
}
Ejemplo n.º 5
0
void CGWIC_Cell::RandomPlaceObjects(int count, irr::io::path filename)
{
	vector3df rndpos;
	for (int i=0; i<count; i++) {
		rndpos.X = Random_FLOAT(GWIC_METERS_PER_CELL);
		rndpos.Z = Random_FLOAT(GWIC_METERS_PER_CELL);
		rndpos.Y = GetTerrainHeightUnderPointMetric(rndpos) + 1.f;
		if (!CreateNewObject(rndpos,filename)) return;
	}
}
Ejemplo n.º 6
0
bool TestStealContents()
{
    JS::RootedObject obj(cx, CreateNewObject(8, 12));
    CHECK(obj);
    void* contents = JS_StealArrayBufferContents(cx, obj);
    CHECK(contents);
    CHECK(memcmp(contents, test_data + 8, 12) == 0);
    CHECK(JS_IsDetachedArrayBufferObject(obj));

    return true;
}
Ejemplo n.º 7
0
void CreateSWrapObjectProc::Begin( IObjCreate *ioc, ClassDesc *desc )
	{
	createInterface = ioc;
	cDesc           = desc;
	attachedToNode  = FALSE;
	createCB        = NULL;
	SWrapNode         = NULL;
	SWrapObj       = NULL;
	dostuff=0;
	CreateNewObject();
	}
Ejemplo n.º 8
0
//TapeHelpCreationManager::TapeHelpCreationManager( IObjCreate *ioc, ClassDesc *desc )
void TapeHelpCreationManager::Begin( IObjCreate *ioc, ClassDesc *desc )
{
    createInterface = ioc;
    cDesc           = desc;
    attachedToNode  = FALSE;
    createCB    = NULL;
    tapeNode    = NULL;
    targNode    = NULL;
    tapeObject     = NULL;
    targObject     = NULL;
    CreateNewObject();
}
Ejemplo n.º 9
0
bool TestCloneObject()
{
    JS::RootedObject obj1(cx, CreateNewObject(8, 12));
    CHECK(obj1);
    JSAutoStructuredCloneBuffer cloned_buffer(JS::StructuredCloneScope::SameProcessSameThread, nullptr, nullptr);
    JS::RootedValue v1(cx, JS::ObjectValue(*obj1));
    CHECK(cloned_buffer.write(cx, v1, nullptr, nullptr));
    JS::RootedValue v2(cx);
    CHECK(cloned_buffer.read(cx, &v2, nullptr, nullptr));
    JS::RootedObject obj2(cx, v2.toObjectOrNull());
    CHECK(VerifyObject(obj2, 8, 12, false));

    return true;
}
Ejemplo n.º 10
0
int ObjectManager::CreateObjectFromTemplate(string TemplateName)
{
	//load a template vector and create a new object
	vector<string> Template = TemplateMap[TemplateName];
	int ObjectID = CreateNewObject();

	//loop through the template adding each component
	for (unsigned int i = 0; i < Template.size(); i ++)
	{
		AddComponent(Template.at(i), ObjectID);
	}

	return ObjectID;
}
Ejemplo n.º 11
0
RefResult CreateSWrapObjectProc::NotifyRefChanged(
	Interval changeInt, 
	RefTargetHandle hTarget, 
	PartID& partID,  
	RefMessage message) 
	{
	switch (message) {
		case REFMSG_PRENOTIFY_PASTE:
		case REFMSG_TARGET_SELECTIONCHANGE:
		 	if ( ignoreSelectionChange ) {
				break;
				}
		 	if ( SWrapObj && SWrapNode==hTarget ) {
				// this will set camNode== NULL;
				theHold.Suspend();
				DeleteReference(0);
				theHold.Resume();
				goto endEdit;
				}
			// fall through

		case REFMSG_TARGET_DELETED:		
			if (SWrapObj && SWrapNode==hTarget ) {
				endEdit:
				if (createInterface->GetCommandMode()->ID() == CID_STDPICK) 
				{ if (SWrapObj->creating) 
						{  theCreateSWrapObjectMode.JumpStart(SWrapObj->ip,SWrapObj);
							createInterface->SetCommandMode(&theCreateSWrapObjectMode);
					    } 
				  else {createInterface->SetStdCommandMode(CID_OBJMOVE);}
				}
#ifdef _OSNAP
				SWrapObj->ClearAFlag(A_OBJ_LONG_CREATE);
#endif
				SWrapObj->EndEditParams( (IObjParam*)createInterface, 0, NULL);
				SWrapObj  = NULL;				
				SWrapNode    = NULL;
				CreateNewObject();	
				attachedToNode = FALSE;
				}
			break;		
		}
	return REF_SUCCEED;
	}
Ejemplo n.º 12
0
RefResult TapeHelpCreationManager::NotifyRefChanged(
    const Interval& changeInt,
    RefTargetHandle hTarget,
    PartID& partID,
    RefMessage message,
    BOOL propagate)
{
    switch (message) {
    case REFMSG_PRENOTIFY_PASTE:
    case REFMSG_TARGET_SELECTIONCHANGE:
        if ( ignoreSelectionChange ) {
            break;
        }
        if ( tapeObject && tapeNode==hTarget ) {
            // this will set tapeNode== NULL;
            DeleteReference(0);
            goto endEdit;
        }
    // fall through

    case REFMSG_TARGET_DELETED:
        if ( tapeObject && tapeNode==hTarget ) {
endEdit:
            tapeObject->EndEditParams( (IObjParam*)createInterface, 0, NULL);
            tapeObject  = NULL;
            tapeNode    = NULL;
            CreateNewObject();
            attachedToNode = FALSE;
        }
        else if (targNode==hTarget) {
            targNode = NULL;
            targObject = NULL;
        }
        break;
    }
    return REF_SUCCEED;
}
Ejemplo n.º 13
0
int TapeHelpCreationManager::proc(
    HWND hwnd,
    int msg,
    int point,
    int flag,
    IPoint2 m )
{
    int res = TRUE;
    TSTR targName;
    ViewExp& vpx = createInterface->GetViewExp(hwnd);
    assert( vpx.IsAlive() );
    DWORD hideflags;

    switch ( msg ) {
    case MOUSE_POINT:
        switch ( point ) {
        case 0: {
            pt0 = m;
            assert( tapeObject );
            if ( createInterface->SetActiveViewport(hwnd) ) {
                return FALSE;
            }

            if (createInterface->IsCPEdgeOnInView()) {
                res = FALSE;
                goto done;
            }

            // if helpers were hidden by category, re-display them
            hideflags = GetCOREInterface()->GetHideByCategoryFlags();
            if(hideflags & (HIDE_HELPERS))
            {
                hideflags = hideflags & ~(HIDE_HELPERS);
                GetCOREInterface()->SetHideByCategoryFlags(hideflags);
                hideflags = GetCOREInterface()->GetHideByCategoryFlags();
            }

            if ( attachedToNode ) {
                // send this one on its way
                tapeObject->EndEditParams( (IObjParam*)createInterface, 0, NULL);

                macroRec->EmitScript();
                // Get rid of the reference.
                if (tapeNode)
                    DeleteReference(0);

                // new object
                CreateNewObject();   // creates tapeObject
            }

            needToss = theHold.GetGlobalPutCount()!=lastPutCount;

            theHold.Begin();   // begin hold for undo
            mat.IdentityMatrix();

            // link it up
            INode *l_tapeNode = createInterface->CreateObjectNode( tapeObject);
            attachedToNode = TRUE;
            assert( l_tapeNode );
            createCB = tapeObject->GetCreateMouseCallBack();
            createInterface->SelectNode( l_tapeNode );

            // Create target object and node
            targObject = (Object*) createInterface->CreateInstance(GEOMOBJECT_CLASS_ID,Class_ID(TARGET_CLASS_ID,0));
            targObject->SetAFlag(A_OBJ_LONG_CREATE);
            assert(targObject);
            targNode = createInterface->CreateObjectNode( targObject);
            assert(targNode);
            targName = l_tapeNode->GetName();
            targName += GetString(IDS_DB_DOT_TARGET);
            macroRec->Disable();
            targNode->SetName(targName);
            macroRec->Enable();

            // hook up camera to target using lookat controller.
            createInterface->BindToTarget(l_tapeNode,targNode);

            // Reference the new node so we'll get notifications.
            theHold.Suspend();
            ReplaceReference( 0, l_tapeNode);
            theHold.Resume();

            // Position camera and target at first point then drag.
            mat.IdentityMatrix();
            //mat[3] = vpx.GetPointOnCP(m);
#ifdef _3D_CREATE
            mat.SetTrans( vpx.SnapPoint(m,m,NULL,SNAP_IN_3D) );
#else
            mat.SetTrans(vpx.SnapPoint(m,m,NULL,SNAP_IN_PLANE));
#endif
            createInterface->SetNodeTMRelConstPlane(tapeNode, mat);
            createInterface->SetNodeTMRelConstPlane(targNode, mat);
            tapeObject->Enable(1);

            ignoreSelectionChange = TRUE;
            createInterface->SelectNode( targNode,0);
            ignoreSelectionChange = FALSE;
            res = TRUE;
        }
        break;

        case 1:
            if (Length(m-pt0)<2)
                goto abort;
            //mat[3] = vpx.GetPointOnCP(m);
#ifdef _3D_CREATE
            mat.SetTrans( vpx.SnapPoint(m,m,NULL,SNAP_IN_3D) );
#else
            mat.SetTrans(vpx.SnapPoint(m,m,NULL,SNAP_IN_PLANE));
#endif
            macroRec->Disable();
            createInterface->SetNodeTMRelConstPlane(targNode, mat);
            macroRec->Enable();
            ignoreSelectionChange = TRUE;
            createInterface->SelectNode( tapeNode);
            ignoreSelectionChange = FALSE;

            createInterface->RedrawViews(createInterface->GetTime());

            theHold.Accept(IDS_DS_CREATE);
            targObject->ClearAFlag(A_OBJ_LONG_CREATE);

            res = FALSE;   // We're done
            break;
        }
        break;

    case MOUSE_MOVE:
        //mat[3] = vpx.GetPointOnCP(m);
#ifdef _3D_CREATE
        mat.SetTrans( vpx.SnapPoint(m,m,NULL,SNAP_IN_3D) );
#else
        mat.SetTrans(vpx.SnapPoint(m,m,NULL,SNAP_IN_PLANE));
#endif
        macroRec->Disable();
        createInterface->SetNodeTMRelConstPlane(targNode, mat);
        macroRec->Enable();
        createInterface->RedrawViews(createInterface->GetTime());

        macroRec->SetProperty(tapeObject, _T("target"),   // JBW 4/23/99
                              mr_create, Class_ID(TARGET_CLASS_ID, 0), GEOMOBJECT_CLASS_ID, 1, _T("transform"), mr_matrix3, &mat);

        res = TRUE;
        break;

    case MOUSE_FREEMOVE:
        SetCursor(LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CROSS_HAIR)));
#ifdef _OSNAP
        //Snap Preview
#ifdef _3D_CREATE
        vpx.SnapPreview(m,m,NULL, SNAP_IN_3D);
#else
        vpx.SnapPreview(m,m,NULL, SNAP_IN_PLANE);
#endif
#endif
        break;

    case MOUSE_PROPCLICK:
        // right click while between creations
        createInterface->RemoveMode(NULL);
        break;

    case MOUSE_ABORT:
abort:
        assert( tapeObject );
        tapeObject->EndEditParams( (IObjParam*)createInterface,0,NULL);
        macroRec->Cancel();
        theHold.Cancel();  // deletes both the camera and target.
        // Toss the undo stack if param changes have been made
        if (needToss)
            GetSystemSetting(SYSSET_CLEAR_UNDO);
        tapeNode = NULL;
        targNode = NULL;
        createInterface->RedrawViews(createInterface->GetTime());
        CreateNewObject();
        attachedToNode = FALSE;
        res = FALSE;
    }

done:

    return res;
}
Ejemplo n.º 14
0
int CreateSWrapObjectProc::proc(HWND hwnd,int msg,int point,int flag,
				IPoint2 m )
{	int res=TRUE;	
	ViewExp *vpx = createInterface->GetViewport(hwnd); 
	assert( vpx );

#ifdef _3D_CREATE
	DWORD snapdim = SNAP_IN_3D;
#else
	DWORD snapdim = SNAP_IN_PLANE;
#endif
	switch ( msg ) {
		case MOUSE_POINT:
			switch ( point ) {
				case 0:
					assert( SWrapObj );					
					vpx->CommitImplicitGrid(m, flag );
					if ( createInterface->SetActiveViewport(hwnd) ) {
						return FALSE;
						}

					if (createInterface->IsCPEdgeOnInView()) { 
						res = FALSE;
						goto done;
						}

					if ( attachedToNode ) {
				   		// send this one on its way
#ifdef _OSNAP
                    SWrapObj->ClearAFlag(A_OBJ_LONG_CREATE);
#endif
				   		SWrapObj->EndEditParams( (IObjParam*)createInterface, 0, NULL);
						if (SWrapNode) {
							theHold.Suspend();
							DeleteReference(0);
							theHold.Resume();
							}

						// new object
						CreateNewObject();   // creates SWrapObj
						}

				   	theHold.Begin();	 // begin hold for undo
					mat.IdentityMatrix();

					// link it up
					SWrapNode = createInterface->CreateObjectNode( SWrapObj);
					attachedToNode = TRUE;
					assert( SWrapNode );					
					createCB = NULL;
					createInterface->SelectNode( SWrapNode );
					
					// Reference the new node so we'll get notifications.
					theHold.Suspend();
					MakeRefByID( FOREVER, 0, SWrapNode);
					theHold.Resume();
					mat.IdentityMatrix();
				default:				
					res = createmethod(vpx,msg,point,flag,m,mat);
					createInterface->SetNodeTMRelConstPlane(SWrapNode, mat);
					if (res==CREATE_ABORT)
						goto abort;
					if (res==CREATE_STOP){
#ifdef _OSNAP
                        SWrapObj->ClearAFlag(A_OBJ_LONG_CREATE);
#endif
						theHold.Accept(GetString(IDS_AP_CREATE));	
					}
					createInterface->RedrawViews(createInterface->GetTime()); 
					break;
				}			
			break;

		case MOUSE_MOVE:
			res = createmethod(vpx,msg,point,flag,m,mat);
			createInterface->SetNodeTMRelConstPlane(SWrapNode, mat);
			if (res==CREATE_ABORT)
				goto abort;
			if (res==CREATE_STOP){
#ifdef _OSNAP
               SWrapObj->ClearAFlag(A_OBJ_LONG_CREATE);
#endif
			   theHold.Accept(GetString(IDS_AP_CREATE));	
			}
			createInterface->RedrawViews(createInterface->GetTime()); 
		break;

/*			res = createmethod(vpx,msg,point,flag,m,mat);
			createInterface->SetNodeTMRelConstPlane(SWrapNode, mat);
			if (res==CREATE_ABORT)
				goto abort;
			if (res==CREATE_STOP)
				theHold.Accept(GetString(IDS_AP_CREATE));	
			createInterface->RedrawViews(createInterface->GetTime()); 
		break;*/
	case MOUSE_PROPCLICK:
		createInterface->SetStdCommandMode(CID_OBJMOVE);
		break;
	case MOUSE_ABORT: 
	abort:
		assert( SWrapObj );
#ifdef _OSNAP
			SWrapObj->ClearAFlag(A_OBJ_LONG_CREATE);
#endif
		SWrapObj->EndEditParams( (IObjParam*)createInterface,0,NULL);
		theHold.Cancel();	 // deletes both the object and target.
		if (theHold.GetGlobalPutCount()!=lastPutCount) 
					GetSystemSetting(SYSSET_CLEAR_UNDO);
		SWrapNode = NULL;			
		createInterface->RedrawViews(createInterface->GetTime()); 
		CreateNewObject();	
		attachedToNode = FALSE;
		res = FALSE;
		break;
	case MOUSE_FREEMOVE:
			SetCursor(LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CROSS_HAIR)));
#ifdef _OSNAP  //PREVIEW SNAP
			res = createmethod(vpx,msg,point,flag,m,mat);
#endif
		vpx->TrackImplicitGrid(m);
			break;

		}
	done:
	if ((res == CREATE_STOP)||(res==CREATE_ABORT))
		vpx->ReleaseImplicitGrid();
	createInterface->ReleaseViewport(vpx); 
	return res;
	}