//========= Copyright (c) 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef PORTAL_PLACEMENT_H #define PORTAL_PLACEMENT_H #ifdef _WIN32 #pragma once #endif struct CPortalCornerFitData; #include "portal_shareddefs.h" #include "CegClientWrapper.h" #if defined( CLIENT_DLL ) class C_Prop_Portal; typedef C_Prop_Portal CProp_Portal; #else class CProp_Portal; #endif bool FitPortalOnSurface( const CProp_Portal *pIgnorePortal, Vector &vOrigin, const Vector &vForward, const Vector &vRight, const Vector &vTopEdge, const Vector &vBottomEdge, const Vector &vRightEdge, const Vector &vLeftEdge, PortalPlacedBy_t ePlacedBy, ITraceFilter *pTraceFilterPortalShot, float fHalfWidth, float fHalfHeight, int iRecursions = 0, const CPortalCornerFitData *pPortalCornerFitData = 0, const int *p_piIntersectionIndex = 0, const int *piIntersectionCount = 0 ); bool IsPortalIntersectingNoPortalVolume( const Vector &vOrigin, const QAngle &qAngles, const Vector &vForward, float fHalfWidth, float fHalfHeight ); PortalPlacementResult_t IsPortalOverlappingOtherPortals( const CProp_Portal *pIgnorePortal, const Vector &vOrigin, const QAngle &qAngles, float fHalfWidth, float fHalfHeight, bool bFizzleAll = false, bool bFizzlePartnerPortals = false ); PortalPlacementResult_t VerifyPortalPlacement( const CProp_Portal *pIgnorePortal, Vector &vOrigin, QAngle &qAngles, float fHalfWidth, float fHalfHeight, PortalPlacedBy_t ePlacedBy ); PortalPlacementResult_t VerifyPortalPlacementAndFizzleBlockingPortals( const CProp_Portal *pIgnorePortal, Vector &vOrigin, QAngle &qAngles, float fHalfWidth, float fHalfHeight, PortalPlacedBy_t ePlacedBy ); bool PortalPlacementSucceeded( PortalPlacementResult_t eResult ); bool IsNoPortalMaterial( const trace_t &tr ); PortalSurfaceType_t PortalSurfaceType( const trace_t& tr ); bool IsOnPortalPaint( const trace_t &tr ); void InitSurfNoPortalFlag(); void InitPortalPaintPowerValue(); #endif // PORTAL_PLACEMENT_H