当前位置: 首页>>代码示例>>C++>>正文


C++ Capability::getType方法代码示例

本文整理汇总了C++中Capability::getType方法的典型用法代码示例。如果您正苦于以下问题:C++ Capability::getType方法的具体用法?C++ Capability::getType怎么用?C++ Capability::getType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Capability的用法示例。


在下文中一共展示了Capability::getType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: capability

TEST(ReachabilitySphere, convertToCapability)
{
    Capability capability(CONE, 70.0, 55.0, 25.0);
    
    ReachabilitySphere sphere = createReachabilitySphereFromCapability(capability, 500);

    Capability testCapability = sphere.convertToCapability();

    ASSERT_TRUE(testCapability.getType() == CONE);
    ASSERT_TRUE(std::abs(testCapability.getPhi() - capability.getPhi()) < 2.0);
    ASSERT_TRUE(std::abs(testCapability.getTheta() - capability.getTheta()) < 2.0);
    ASSERT_TRUE(std::abs(testCapability.getHalfOpeningAngle() - capability.getHalfOpeningAngle()) < 2.0);
    ASSERT_EQ(0.0, testCapability.getShapeFitError());


    capability = Capability(CYLINDER_1, 70.0, 55.0, 25.0);
    
    sphere = createReachabilitySphereFromCapability(capability, 10000);

    testCapability = sphere.convertToCapability();

    ASSERT_TRUE(testCapability.getType() == CYLINDER_1);
    ASSERT_TRUE(std::abs(testCapability.getPhi() - capability.getPhi()) < 2.0);
    ASSERT_TRUE(std::abs(testCapability.getTheta() - capability.getTheta()) < 2.0);
    ASSERT_TRUE(std::abs(testCapability.getHalfOpeningAngle() - capability.getHalfOpeningAngle()) < 2.0);
    // ASSERT_EQ(0.0, testCapability.getShapeFitError());
    // TODO: improve PCA to get correct axis (for now SFE could be 0.0 but is higher)


    capability = Capability(CYLINDER_2, 70.0, 55.0, 25.0);
    
    sphere = createReachabilitySphereFromCapability(capability, 10000);

    testCapability = sphere.convertToCapability();

    ASSERT_TRUE(testCapability.getType() == CYLINDER_2);
    ASSERT_TRUE(std::abs(testCapability.getPhi() - capability.getPhi()) < 2.0);
    ASSERT_TRUE(std::abs(testCapability.getTheta() - capability.getTheta()) < 2.0);
    ASSERT_TRUE(std::abs(testCapability.getHalfOpeningAngle() - capability.getHalfOpeningAngle()) < 2.0);
    // ASSERT_EQ(0.0, testCapability.getShapeFitError());
}
开发者ID:JochenKempfle,项目名称:capability_map,代码行数:41,代码来源:CapabilityMapGeneratorTest.cpp

示例2: internalMatchProfile

bool ProfileDB::internalMatchProfile(Profile* profile,
        vector<Capability>& requiredCapabilites,
        vector<Capability>& optionalCapabilites, string& matchToken) {
	bool match = true;

	// When can we NOT reuse a specific runtime?
	// Only if fragmentation is set to BUILDTIME and if either a) one supports the capability and
	// the other does not OR b) the capability value differs.
	// So we add strings to create a unique match token for every
	// runtime that need be built
	for (vector<Capability>::iterator capability = requiredCapabilites.begin(); capability
	        != requiredCapabilites.end(); capability++) {
		Capability matchedCapability = profile->getCapability(
		        capability->getName());
		CapabilityState matchedState = matchedCapability.getState();
		// Ok, so we don't support this, bail out!
		if (matchedState == NOT_IMPLEMENTED || matchedState == UNSUPPORTED) {
			match = false;
		}
		Fragmentation fragmentation = matchedCapability.getFragmentation();
		string valueStr =
		        fragmentation == BUILDTIME ? matchedCapability.getValue() : "";
		matchToken.append(valueStr);
		matchToken.append("|");
	}

	// So, the optional capabilities are matched in a different way.
	// We add stuff to the matchTokens string to produce a string that
	// is unique to the optional capabilities being matched.
	for (vector<Capability>::iterator capability = optionalCapabilites.begin(); capability
	        != optionalCapabilites.end(); capability++) {
		Capability matchedCapability = profile->getCapability(
		        capability->getName());
		CapabilityState matchedState = matchedCapability.getState();
		Fragmentation fragmentation = matchedCapability.getFragmentation();
		string valueStr =
		        fragmentation == BUILDTIME ? matchedCapability.getValue() : "";
		bool capSupported = fragmentation == BUILDTIME && (matchedState
		        == NOT_IMPLEMENTED || matchedState == UNSUPPORTED);
		matchToken.append((capSupported ? "+" : "-") + valueStr);
		matchToken.append("|");
	}

	// Finally we add PROPERTIES of the runtime which are buildtime fragmented.
	// For example, different device types or icon sizes should always generate
	// a unique runtime.
	set<string> allCapabilities = profile->getCapabilities();
	for (set<string>::iterator allCapabilitesIt = allCapabilities.begin(); allCapabilitesIt
	        != allCapabilities.end(); allCapabilitesIt++) {
		string capabilityName = *allCapabilitesIt;
		Capability capability = profile->getCapability(capabilityName);
		if (capability.getType() == "property") {
			Fragmentation fragmentation = capability.getFragmentation();
			string valueStr =
			        fragmentation == BUILDTIME ? capability.getValue() : "-";
			matchToken.append(valueStr);
			matchToken.append("|");
		}
	}
	return match;
}
开发者ID:Ginox,项目名称:MoSync,代码行数:61,代码来源:profiledb.cpp


注:本文中的Capability::getType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。