#include "building/PlacementSystem.h"#include "building/HeightfieldSurface.h"#include "building/StaticMeshSurface.h"#include "building/BuildingDef.h"#include "building/Ghost.h"#include "building/PlacementWorld.h"#include "common/Diagnostic.h"#include "grid/GridProjection.h"#include <algorithm>#include <cmath>#include <limits>#include <unordered_set>命名空间 | |
| namespace | eve |
| Build metadata (engine git commit, build time, third-party version). | |
| namespace | eve::building |
| 建筑放置模块入口:定义 / 放置世界 / 鬼影 / 变更事件的脚本绑定点。 设计文档:docs/dev/建筑放置系统设计.md | |
变量说明
◆ halfHeight
| float halfHeight = 0.f |
在文件 PlacementSystem.cpp 第 44 行定义.
被这些函数引用 eve::physics::Shape3D::setBoxSize() , 以及 eve::physics::Shape3D::setCapsuleSize().
◆ halfWidth
| float halfWidth = 0.f |
在文件 PlacementSystem.cpp 第 43 行定义.
被这些函数引用 eve::map::DualGridMaskAtlas::bandAt(), eve::stylize::buildAreaIndicator(), eve::buildingfx::BuildingFx::buildEdgeCurveMesh(), eve::procgen::GeometryStroke::buildMeshResult(), eve::hexmap::buildRiverMesh(), eve::hexmap::buildRoadMesh(), eve::buildingfx::BuildingFx::buildSurfaceCurveMesh(), eve::map_editing::MapDocumentTarget::previewRoad(), eve::graphics::resolvePrimitiveStrokes2D(), eve::graphics::resolvePrimitiveStrokes3D() , 以及 eve::physics::Shape3D::setBoxSize().
◆ radius
| float radius = 0.f |
在文件 PlacementSystem.cpp 第 42 行定义.
被这些函数引用 eve::crowd::Crowd::addAgent(), eve::animation::DynamicBoneSolver::addBoneColliderCapsule(), eve::animation::DynamicBoneSolver::addBoneColliderSphere(), eve::animation::DynamicBoneSolver::addChain(), eve::animation::DynamicBoneSolver::addChainByName(), eve::procgen::ObjectBuildLayer::addChild(), eve::procgen::ObjectBuildLayer::addChildRule(), eve::animation::DynamicBoneSolver::addColliderCapsule(), eve::animation::DynamicBoneSolver::addColliderSphere(), eve::procgen::prototype_detail::addCylinder(), eve::procgen::addFoliageCluster(), eve::particles::ParticleEmitter::addForceField(), eve::animation::hair::addHeadCollider(), eve::crowd::Crowd::addNamedAgent(), eve::procgen::TerrainPolygonMask::addNode(), eve::map::Fov::addRevealer(), eve::map::Fov::addRevealer3(), eve::rts::RTSArchetypeMaterializer::apply(), eve::rts::RTSArchetypeMaterializer::apply(), eve::heightmap_target::HeightmapTargetModule::applyBrush(), eve::procgen::MeshDeformationSession::applyBrushGpuResult(), eve::procgen::MeshDeformationSession::applyBrushResult(), eve::particles::applyConfigDocument(), eve::procgen_editing::applyHeightmapBrush(), eve::procgen::MeshDeformationSession::applyImpactGpuResult(), eve::procgen::MeshDeformationSession::applyImpactResult(), eve::procgen::SplinePath::applyShapePresetResult(), eve::procgen::MeshDeformationSession::applySlimeImpulseResult(), eve::crowd::Crowd::applySpawnBatch(), eve::procgen::MeshDeformationSession::applySurfaceContactResult(), eve::procgen::applyTerrainObjectsMultiTile(), eve::procgen::applyTerrainSmooth(), eve::procgen::applyTerrainTreesMultiTile(), eve::graphics::detail::bakeDistantSkyAmbient(), eve::procgen::ObjectBuildLayer::build(), eve::graphics::buildClusteredLighting(), eve::map::Fov::Impl::buildOpaqueRects(), eve::fluids::buildVolumeFluidDiskDistribution(), eve::fluids::buildVolumeFluidSphereDistribution(), eve::gpuagents::ObstacleField::carveSphere(), eve::physics::DistanceField3D::castCapsule(), eve::physics::World3D::castCapsule(), eve::physics::World3D::castCapsuleAll(), eve::map::Fov::Impl::castLight(), eve::map::Fov::Impl::castRayLine(), eve::rts::RTS::castScriptAbility(), eve::physics::DistanceField3D::castSphere(), eve::physics::World3D::castSphere(), eve::physics::World3D::castSphereAll(), eve::physics::DistanceField3D::checkCapsule(), eve::physics::DistanceField3D::checkSphere(), eve::sensing::SensingWorld::circle(), eve::math::Math::circleRectOverlap(), eve::hexmap::HexMap::collectBrush(), eve::hexmap::HexSphereMap::collectBrush(), eve::domain_gizmo_editing::EditorGizmoPreviewBuilder::collider(), eve::gpuagents::detail::compactWeight(), eve::fluids::FluidSurfaceRenderer::compositeDiffuse(), eve::map::Fov::Impl::computeHexShadowcast(), eve::map::Fov::Impl::computeOrthoShadowcast(), eve::map::Fov::Impl::computePermissive(), eve::map::Fov::Impl::computeRaycast(), eve::map::Fov::Impl::computeRectangle(), eve::map::Fov::Impl::computeRevealer(), eve::map::Fov::Impl::computeShadowcast(), eve::weather::PcgInteriorWeatherVolume::configureSphere(), eve::fluids::FluidSurfaceRenderer::configureSurfaceBlurRadius(), eve::procgen::convolveTerrainHeightmap(), eve::graphics::cubemap_prefilter_detail::cosineSample(), eve::procgen::createCaveKnickpointSites(), eve::procgen::createCaveMixingSites(), eve::procgen::createCavePotholeSites(), eve::procgen::createCaveSediment(), eve::graphics::Light2D::createEmissiveProxy(), eve::graphics::Light3D::createEmissiveProxy(), eve::animation::DynamicBoneSolver::debugSnapshot(), eve::fluids::decodeVolumeFluid(), eve::procgen::ObjectBuildLayer::deserializeDefinition(), eve::graphics::PrimitiveSceneCanvas3D::drawArc(), eve::graphics::PrimitiveSceneCanvas3D::drawCapsule(), eve::graphics::PrimitiveCanvas2D::drawCircle(), eve::graphics::PrimitiveCanvas2D::drawCircle(), eve::graphics::PrimitiveSceneCanvas3D::drawCone(), eve::graphics::PrimitiveSceneCanvas3D::drawCylinder(), eve::graphics::PrimitiveSceneCanvas3D::drawDisk(), eve::graphics::PrimitiveSceneCanvas3D::drawSphere(), eve::graphics::PrimitiveSceneCanvas3D::drawSphere(), eve::hexmap::HexMap::editElevation(), eve::hexmap::HexSphereMap::editElevation(), eve::hexmap::HexMap::editFeatureLevel(), eve::hexmap::HexSphereMap::editFeatureLevel(), eve::hexmap::HexMap::editTerrainType(), eve::hexmap::HexSphereMap::editTerrainType(), eve::hexmap::HexMap::editWaterLevel(), eve::hexmap::HexSphereMap::editWaterLevel(), eve::procgen::TerrainPipeline::erodeFluvialDetailed(), eve::camera_editing::CameraPreview::evaluate(), eve::graphics::VolumeDensityGraph::evaluate(), eve::procgen::excludePointRadius(), eve::procgen::Procgen::excludeRadiusHandle(), eve::building::PlacementSession::executeBrush(), eve::asset_import::executeVegetationConversion(), eve::asset_import::executeVegetationMeshRules(), eve::physics::World3D::explode(), eve::pixelworld::PixelWorld::explode(), eve::procgen::exportTerrainObjectPoints(), eve::procgen::exportTerrainTreePoints(), eve::weapon::exposeCombatCarrierBindings(), eve::procgen::exposeGridMeshGraphs(), eve::graphics::exposePrimitiveScriptBindings(), eve::fluids::exposeVolumeFluidFactory(), eve::map::Fov::Impl::extendVertical(), eve::rts::CommandFanOutSystem::fanOut(), eve::procgen::fillDensityField(), eve::procgen::filterTerrainHeightmapNeighborhood(), eve::crowd::Crowd::Impl::forEachNeighbor(), eve::animation::AnimSmrSensorCloud::fromSkeletonDense(), eve::procgen::gridgraph::generate(), eve::procgen::generateBushMesh(), eve::procgen::generateCableChainRope(), eve::procgen::generateHexPlanetMesh(), eve::procgen::generateHexSphere(), eve::procgen::generateHexTerrainMesh(), eve::procgen::generateRockMesh(), eve::procgen::generateTerrainCurvatureMask(), eve::physics::Cloth::grabAt(), eve::physics::SoftBody3D::grabAt(), eve::physics::Cloth3D::grabAt(), eve::procgen::growShrinkTerrainMask(), eve::graphics::Volumetric::injectEmissiveLightProxy(), eve::map::Fov::Impl::inRadius2(), eve::map::Fov::Impl::inRadius3(), eve::graphics::fog::AnalyticalVolLight::integrate(), eve::physics::Cloth::interactAt(), eve::physics::ClothGPU::interactAt(), eve::physics::Fluid2D::interactAt(), eve::physics::Cloth3D::interactAt(), eve::physics::SoftBody3D::interactAt(), eve::graphics::fog::AnalyticalVolLight::intersectBeam(), eve::spatial::AABB2::intersectsCircle(), eve::spatial::AABB3::intersectsSphere(), eve::rts::systems_internal::isFormationSegmentClear(), eve::domain_gizmo_editing::EditorGizmoPreviewBuilder::light(), eve::building_editing::BuildingPlacementTarget::makeBrush(), eve::procgen::road::RoadNetwork::makeCurve(), eve::fluids::MeshSdf::makeSphere(), eve::graphics::meshInstanceRangeVisible(), eve::physics::DistanceField3D::moveCapsule(), eve::physics::World3D::moveCapsule(), eve::physics::World3D::moveCapsuleOwned(), eve::physics::Body3D::newCapsuleShape(), eve::physics::Body::newCircleFixture(), eve::hexmap::HexMapModule::newSphere(), eve::physics::Body3D::newSphereShape(), eve::fluids::VolumeFluid::overlap(), eve::fluids::VolumeFluid::paint(), eve::pixelworld::PixelWorld::paintCircle(), eve::pixelworld::PixelWorld::paintCircleChecked(), eve::building::PlacementSystem::placeBrush(), eve::rts::FormationPlanner::plan(), eve::math::Math::pointInCircle(), eve::math::Math::pointInSphere(), eve::physics::World::pointProbe(), eve::physics::World3D::pointProbe(), eve::physics::World3D::pointProbeFiltered(), eve::procgen::Procgen::poissonDiskHandle(), eve::procgen::poissonDiskPoints(), eve::math::Math::polarX(), eve::math::Math::polarY(), eve::model3d::prepareFoliageDeformation(), eve::building::PlacementSession::previewBrush(), eve::building::PlacementSystem::previewBrush(), eve::pixelworld_physics::probeTerrainCircle(), eve::physics::World3D::queryCapsule(), eve::physics::World3D::queryCapsuleOwned(), eve::spatial::BSPTree2D::queryCircle(), eve::spatial::QuadTree::queryCircle(), eve::spatial::SpatialHash2D::queryCircle(), eve::spatial::BSPTree3D::querySphere(), eve::spatial::Octree::querySphere(), eve::spatial::SpatialHash3D::querySphere(), eve::physics::World3D::querySphere(), eve::fluids::VolumeFluid::querySphere(), eve::math::Math::raycastCircle2(), eve::math::Math::raycastSphere(), eve::procgen_editing::registerRoadNetworkEditingCommands(), eve::graphics_editing::PrimitiveGizmoRenderer::render(), eve::rts::FireSupportSystem::request(), eve::rts::RTS::requestFireSupport(), eve::procgen::rescaleTerrainTreePoints(), eve::hexmap::HexSphereMap::reset(), eve::crowd::CrowdField::resolvePenetration(), eve::editor::CircleBrushKernel::sample(), eve::editor::BoxBrushKernel::sample(), eve::editor::SphereVolumeBrushKernel::sample(), eve::editor::BoxVolumeBrushKernel::sample(), eve::graphics::FogVolume::sampleExtinction(), eve::crowd::Crowd::Impl::selectAvoidanceVelocity(), eve::procgen::MeshDeformationSession::selectVerticesSphereResult(), eve::procgen::Procgen::selfPruneHandle(), eve::procgen::selfPrunePoints(), eve::math::steering::separation(), eve::math::steering::separation(), eve::crowd::Crowd::setAgentRadius(), eve::crowd::Crowd::setArriveRadius(), eve::procgen::LSystem::setBranchRadius(), eve::physics::Shape3D::setCapsuleSize(), eve::animation::DynamicBoneSolver::setColliderRadius(), eve::particles::ParticleEmitter::setCollision(), eve::camera::CameraController::setCollisionRadius(), eve::camera::CameraController::setDeadZone(), eve::crowd::Crowd::setDefaultRadius(), eve::ui::UI::setImageCornerRadius(), eve::particles::ParticleEmitter::setLights(), eve::fluids::FluidSimulator::setParticleRadius(), eve::building::PlacementSession::setPatternRadius(), eve::crowd::Crowd::setPerceptionRadius(), eve::procgen::ObjectBuildLayer::setPositionRadius(), eve::editor::FieldBrushTool::setRadius(), eve::editor::VolumeBrushTool::setRadius(), eve::graphics::AmbientOcclusion::setRadius(), eve::graphics::GlobalIllumination::setRadius(), eve::graphics::Light2D::setRadius(), eve::graphics::Light3D::setRadius(), eve::map::Fov::setRevealerRadius(), eve::fluids::FluidSimulator::setSdfSphere(), eve::crowd::Crowd::setSeparationRadius(), eve::physics::Cloth3D::setSkinConstraint(), eve::physics::Fluid2D::setSmoothingRadius(), eve::physics::Shape3D::setSphereRadius(), eve::animation::Animation::setupHairHeadCollider(), eve::procgen::smoothTerrainHeightmapRadius(), eve::fluids::FluidSimulator::spawnDrop(), eve::fluids::FluidSimulation::spawnDrop(), eve::procgen::SpatialData::sphere(), eve::physics::World3D::sphereCast(), eve::procgen::Procgen::sphereVolumeHandle(), eve::procgen::SpatialData::spline(), eve::procgen::Procgen::splineDataHandle(), eve::weather::SnowField::stampFootprint(), eve::weather::SnowField::stampImpact(), eve::math::Math::steeringSeparation2(), eve::math::Math::steeringSeparation3(), eve::rts::PatrolSystem::step(), eve::rts::TrafficReservationSystem::step(), eve::rts::NavigationSystem::step(), eve::procgen::TerrainStreamingCache::streamAround(), eve::pixelworld_physics::sweepTerrainCircle(), eve::map::Fov::Impl::tryMark2(), eve::fluids::SurfaceFluidRenderData::update(), eve::animation::DynamicBoneConfig::validate(), eve::rts::BuildInfluenceSystem::validate() , 以及 eve::ui::WidgetDesc::withCornerRadius().
◆ rotationRadians
| float rotationRadians = 0.f |
在文件 PlacementSystem.cpp 第 45 行定义.
◆ vertices
| std::vector<Point> vertices |
在文件 PlacementSystem.cpp 第 46 行定义.
被这些函数引用 eve::procgen::PcgMeshCombinePlan::appendSource(), eve::virtualgeometry_editing::VirtualGeometryBuildRuntime::build(), eve::hexmap::HexSphereTopology::build(), eve::fluids::buildVolumeFluidMeshDistribution(), eve::scene_editor::SceneEditorSession::cachePhysicsPlacementHull(), eve::building::StaticMeshSurface::create(), eve::scene_editor::ScenePhysicsPlacementBackend::Impl::createShape(), eve::graphics::decodeTveVegetationVertices(), eve::graphics::deformVegetation(), eve::physics::SoftBody3DRenderer::draw(), eve::graphics::vulkan::Graphics::drawPrimitiveScene(), eve::graphics::vulkan::Graphics::drawUiTextureRects(), eve::procgen::encodeGtsMaskedTerrainObj(), eve::scene_editor::exposeSceneEditorSessions(), eve::fluids::exposeVolumeFluidFactory(), eve::animation::AnimSkin::fromStreams(), eve::procgen::generateHexPlanetMesh(), eve::graphics::SkyWispsAsset::load(), eve::building_editing::BuildingPlacementTarget::makeEdgePath(), eve::physics::Body::newChainFixture(), eve::physics::Body3D::newConvexHullShape(), eve::physics::Body::newPolygonFixture(), eve::physics::Body3D::newTriangleMeshShape(), eve::building::PlacementSystem::placeEdgePath(), eve::asset_import::prepareUnityNativeMesh(), eve::building::PlacementSystem::previewEdgeCubicBezier(), eve::building::PlacementSystem::previewEdgePath(), eve::building::PlacementSystem::previewPattern(), eve::map_editing::MapDocumentTarget::previewRoad(), eve::building::PlacementSystem::sampleEdgeCubicBezier(), eve::physics::Shape3D::setConvexHullVertices(), eve::physics::Shape3D::setTriangleMeshData(), eve::scene_editor::ScenePhysicsPlacementBackend::step() , 以及 eve::graphics::updateVegetationMesh().
◆ x
| float x = 0.f |
在文件 PlacementSystem.cpp 第 37 行定义.
◆ y
| float y = 0.f |
在文件 PlacementSystem.cpp 第 38 行定义.