import HardConstraint from 'Artistoo/src/hamiltonian/HardConstraint.js'
public class

# HardConstraint

#### Extends:

Constraint → HardConstraint

#### Direct Subclass:

Extension of class Constraint used for a hard constraint. See description in Constraint for details. This class is not used on its own but serves as a base class for a hard constraint.

## Member Summary

 Public Members public get Let the CPM know that this is a soft constraint, so return 'soft'.

## Method Summary

 Public Methods public abstract fulfilled(src_i: IndexCoordinate, tgt_i: IndexCoordinate, src_type: CellId, tgt_type: CellId): boolean Hard constraints must have a 'fulfilled' method to compute whether the copy attempt fulfills the rule.

## Inherited Summary

 From class Constraint public get abstract This method is actually implemented in the subclass. public set CPM(C: CPM) This function attaches the relevant CPM to this constraint, so that information about this cpm can be requested from the constraint. public get parameters: object: * Get the parameters of this constraint from the conf object. public C: CPM CPM on which this constraint acts. public Configuration object for this constraint. public abstract cellParameter(param: string, cid: CellId): any Get a cellid or cellkind-specific parameter for a constraint. public abstract The optional confChecker method should verify that all the required conf parameters are actually present in the conf object and have the right format. public paramOfCell(param: string, cid: CellId): any Get a cellId specific parameter, only used if CPMEvol is used: looks whether the requested parameter is overwritten in an @object Cell and otherwise returns @function paramOfKind public paramOfKind(param: string, cid: CellId): any Returns a cellKind specfic variable: Assumes that the parameter is indexable by cellkind.

## Public Members

### publicgetCONSTRAINT_TYPE: string: string source

Let the CPM know that this is a soft constraint, so return 'soft'.

#### Override:

Constraint#CONSTRAINT_TYPE

#### Return:

 string "hard"

## Public Methods

### publicabstractfulfilled(src_i: IndexCoordinate, tgt_i: IndexCoordinate, src_type: CellId, tgt_type: CellId): boolean source

Hard constraints must have a 'fulfilled' method to compute whether the copy attempt fulfills the rule. This method must be implemented in the subclass.

#### Params:

 Name Type Attribute Description src_i IndexCoordinate coordinate of the source pixel that tries to copy. tgt_i IndexCoordinate coordinate of the target pixel the source is trying to copy into. src_type CellId cellid of the source pixel. tgt_type CellId cellid of the target pixel.

#### Return:

 boolean whether the copy attempt satisfies the constraint.