import type { SimplexConstitutiveEvaluationN } from './simplex-constitutive.js'; import { SimplexConstitutiveFamilyN, type SimplexConstitutiveFamilyElementN } from './simplex-constitutive-family.js'; import { type LinearSimplexOrientationAnalysisN } from './simplex-orientation-cast.js'; import { XpbdParticleN, XpbdWorldN, type XpbdStateGuardContextN, type XpbdStateGuardEvaluationN, type XpbdStateGuardN } from './xpbd-world.js'; export interface CompileSimplexConstitutiveFamilyTrajectoryGuardNOptions> { readonly id: string; readonly family: SimplexConstitutiveFamilyN; /** Required signed current/rest ratio along every linear substep chord. */ readonly minimumSignedMeasureRatio: number; readonly timeTolerance?: number; readonly maximumDepth?: number; readonly relativeCoefficientTolerance?: number; } export type SimplexConstitutiveFamilyTrajectoryGuardStatusN = 'accepted' | 'initial-violation' | 'possible-violation'; export interface SimplexConstitutiveFamilyTrajectoryGuardCandidateN { readonly elementIndex: number; readonly element: SimplexConstitutiveFamilyElementN; readonly analysis: LinearSimplexOrientationAnalysisN; } export interface SimplexConstitutiveFamilyTrajectoryGuardEvaluationN extends XpbdStateGuardEvaluationN { readonly status: SimplexConstitutiveFamilyTrajectoryGuardStatusN; readonly requiredMinimumSignedMeasureRatio: number; readonly inspectedElementCount: number; readonly minimumMarginLowerBound: number | null; readonly candidate: SimplexConstitutiveFamilyTrajectoryGuardCandidateN | null; } /** Continuous linear-chord orientation policy for one full-dimensional family. */ export declare class SimplexConstitutiveFamilyTrajectoryGuardN> implements XpbdStateGuardN { readonly id: string; readonly dimension: number; readonly particles: readonly XpbdParticleN[]; readonly family: SimplexConstitutiveFamilyN; readonly minimumSignedMeasureRatio: number; readonly timeTolerance: number | undefined; readonly maximumDepth: number | undefined; readonly relativeCoefficientTolerance: number | undefined; private readonly restPositions; private attachedWorld; private constructor(); static compile>(options: CompileSimplexConstitutiveFamilyTrajectoryGuardNOptions): SimplexConstitutiveFamilyTrajectoryGuardN; evaluate(context: XpbdStateGuardContextN): SimplexConstitutiveFamilyTrajectoryGuardEvaluationN; /** Registers this policy; family particles must already belong to the world. */ addToWorld(world: XpbdWorldN): XpbdWorldN; } export declare function compileSimplexConstitutiveFamilyTrajectoryGuardN>(options: CompileSimplexConstitutiveFamilyTrajectoryGuardNOptions): SimplexConstitutiveFamilyTrajectoryGuardN; //# sourceMappingURL=simplex-constitutive-trajectory-guard.d.ts.map