예제 #1
0
	virtual bool	Setup(Pint& pint, const PintCaps& caps)
	{
		if(!CylinderTest::Setup(pint, caps))
			return false;

		// Create ramp
		{
			Matrix3x3 M;
			M.RotZ(-0.2f);
			const Quat R = M;

			PINT_BOX_CREATE BoxDesc(10.0f, 1.0f, 10.0f);
			BoxDesc.mRenderer	= CreateBoxRenderer(BoxDesc.mExtents);
			PintObjectHandle Handle = CreateStaticObject(pint, &BoxDesc, Point(0.0f, 0.0f, 0.0f), &R);
			ASSERT(Handle);
		}

		const bool UseConvexes = mCheckBox_UseConvexesForAll ? mCheckBox_UseConvexesForAll->IsChecked() : false;

		if(!caps.mSupportCylinders || UseConvexes)
		{
			// Create cylinder as a convex object
			PINT_CONVEX_CREATE ConvexCreate(mCylinder.mNbVerts, mCylinder.mVerts);
			ConvexCreate.mRenderer	= GetRegisteredRenderers()[0];
			PintObjectHandle Handle = CreateDynamicObject(pint, &ConvexCreate, Point(0.0f, mCylinder.mRadius+2.0f, 0.0f));
			ASSERT(Handle);
		}
		else
		{
			PINT_CYLINDER_CREATE CylinderCreate(mCylinder.mRadius, mCylinder.mHalfHeight);
			CylinderCreate.mRenderer	= GetRegisteredRenderers()[1];
			const Quat Q = ShortestRotation(Point(0.0f, 1.0f, 0.0f), Point(0.0f, 0.0f, 1.0f));
			PintObjectHandle Handle = CreateDynamicObject(pint, &CylinderCreate, Point(0.0f, mCylinder.mRadius+2.0f, 0.0f), &Q);
			ASSERT(Handle);
		}
		return true;
	}