import type { SimplexConstitutiveEvaluationN } from './simplex-constitutive.js'; import { SimplexConstitutiveFamilyN, type SimplexConstitutiveFamilyElementN } from './simplex-constitutive-family.js'; import { type LinearSimplexMeasureAnalysisN } from './simplex-measure-cast.js'; import { XpbdParticleN, XpbdWorldN, type XpbdStateGuardContextN, type XpbdStateGuardEvaluationN, type XpbdStateGuardN } from './xpbd-world.js'; export interface CompileSimplexConstitutiveFamilyMeasureTrajectoryGuardNOptions> { readonly id: string; readonly family: SimplexConstitutiveFamilyN; /** Required intrinsic current/rest measure ratio along every linear chord. */ readonly minimumMeasureRatio: number; readonly timeTolerance?: number; readonly maximumDepth?: number; readonly relativeCoefficientTolerance?: number; } export type SimplexConstitutiveFamilyMeasureTrajectoryGuardStatusN = 'accepted' | 'initial-violation' | 'possible-violation'; export interface SimplexConstitutiveFamilyMeasureTrajectoryGuardCandidateN { readonly elementIndex: number; readonly element: SimplexConstitutiveFamilyElementN; readonly analysis: LinearSimplexMeasureAnalysisN; } export interface SimplexConstitutiveFamilyMeasureTrajectoryGuardEvaluationN extends XpbdStateGuardEvaluationN { readonly status: SimplexConstitutiveFamilyMeasureTrajectoryGuardStatusN; readonly requiredMinimumMeasureRatio: number; readonly inspectedElementCount: number; /** Conservative lower bound in squared measure-ratio margin units. */ readonly minimumMarginLowerBound: number | null; readonly candidate: SimplexConstitutiveFamilyMeasureTrajectoryGuardCandidateN | null; } /** Continuous intrinsic rank/measure policy for one arbitrary simplex family. */ export declare class SimplexConstitutiveFamilyMeasureTrajectoryGuardN> implements XpbdStateGuardN { readonly id: string; readonly dimension: number; readonly particles: readonly XpbdParticleN[]; readonly family: SimplexConstitutiveFamilyN; readonly minimumMeasureRatio: number; readonly timeTolerance: number | undefined; readonly maximumDepth: number | undefined; readonly relativeCoefficientTolerance: number | undefined; private readonly restPositions; private attachedWorld; private constructor(); static compile>(options: CompileSimplexConstitutiveFamilyMeasureTrajectoryGuardNOptions): SimplexConstitutiveFamilyMeasureTrajectoryGuardN; evaluate(context: XpbdStateGuardContextN): SimplexConstitutiveFamilyMeasureTrajectoryGuardEvaluationN; /** Registers this policy; family particles must already belong to the world. */ addToWorld(world: XpbdWorldN): XpbdWorldN; } export declare function compileSimplexConstitutiveFamilyMeasureTrajectoryGuardN>(options: CompileSimplexConstitutiveFamilyMeasureTrajectoryGuardNOptions): SimplexConstitutiveFamilyMeasureTrajectoryGuardN; //# sourceMappingURL=simplex-constitutive-measure-trajectory-guard.d.ts.map