本文整理汇总了C++中MapSector::getLines方法的典型用法代码示例。如果您正苦于以下问题:C++ MapSector::getLines方法的具体用法?C++ MapSector::getLines怎么用?C++ MapSector::getLines使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MapSector
的用法示例。
在下文中一共展示了MapSector::getLines方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applyVavoomSlopeThing
void MapSpecials::applyVavoomSlopeThing(SLADEMap* map, MapThing* thing)
{
int target_idx = map->sectorAt(thing->point());
if (target_idx < 0)
return;
MapSector* target = map->getSector(target_idx);
int tid = thing->intProperty("id");
vector<MapLine*> lines;
target->getLines(lines);
// TODO unclear if this is the same order that ZDoom would go through the
// lines, which matters if two lines have the same first arg
for (unsigned a = 0; a < lines.size(); a++)
{
if (tid != lines[a]->intProperty("arg0"))
continue;
// Vavoom things use the plane defined by the thing and its two
// endpoints, based on the sector's original (flat) plane and treating
// the thing's height as absolute
if (MathStuff::distanceToLineFast(thing->point(), lines[a]->seg()) == 0)
{
LOG_MESSAGE(1, "Vavoom thing %d lies directly on its target line %d", thing->getIndex(), a);
return;
}
short height = target->getPlaneHeight<p>();
fpoint3_t p1(thing->xPos(), thing->yPos(), thing->floatProperty("height"));
fpoint3_t p2(lines[a]->x1(), lines[a]->y1(), height);
fpoint3_t p3(lines[a]->x2(), lines[a]->y2(), height);
target->setPlane<p>(MathStuff::planeFromTriangle(p1, p2, p3));
return;
}
LOG_MESSAGE(1, "Vavoom thing %d has no matching line with first arg %d", thing->getIndex(), tid);
}