summaryrefslogtreecommitdiff
path: root/src/Plate/Plate_LinearScalarConstraint.cxx
blob: 18006e9f3680b0b34d499b3a192d342bf1cbd764 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// File:	Plate_LinearScalarConstraint.cxx
// Created:	Thu Mar 26 14:39:21 1998
// Author:	# Andre LIEUTIER
//		<alr@sgi63>


#include <Plate_LinearScalarConstraint.ixx>
#include <Standard_DimensionMismatch.hxx>


Plate_LinearScalarConstraint::Plate_LinearScalarConstraint() {}

Plate_LinearScalarConstraint::Plate_LinearScalarConstraint
   (const Plate_PinpointConstraint& PPC1,const gp_XYZ& coeff)

{
  myPPC = new Plate_HArray1OfPinpointConstraint(1,1);
  myCoef = new TColgp_HArray2OfXYZ(1,1,1,1);

  myPPC->ChangeValue(1) = PPC1;
  myCoef->ChangeValue(1,1) = coeff;
}

Plate_LinearScalarConstraint::Plate_LinearScalarConstraint(const Plate_Array1OfPinpointConstraint& ppc,const TColgp_Array1OfXYZ& coeff)
{
  if(coeff.Length()!= ppc.Length()) Standard_DimensionMismatch::Raise();
  myPPC = new Plate_HArray1OfPinpointConstraint(1,ppc.Length());
  myCoef = new TColgp_HArray2OfXYZ(1,1,1,coeff.Length());

  myPPC->ChangeArray1() = ppc;
  for(Standard_Integer i = 1; i<= coeff.Length(); i++) {
    myCoef->ChangeValue(1,i) = coeff(i+coeff.Lower()-1);
  }
}

Plate_LinearScalarConstraint::Plate_LinearScalarConstraint
   (const Plate_Array1OfPinpointConstraint& ppc,const TColgp_Array2OfXYZ& coeff)
{
  if(coeff.RowLength()!= ppc.Length()) Standard_DimensionMismatch::Raise();
  myPPC = new Plate_HArray1OfPinpointConstraint(1,ppc.Length());
  myCoef = new TColgp_HArray2OfXYZ(1,coeff.ColLength(),1,coeff.RowLength());
  
  myPPC->ChangeArray1() = ppc;
  myCoef->ChangeArray2() = coeff;
}


Plate_LinearScalarConstraint::Plate_LinearScalarConstraint(const Standard_Integer ColLen,const Standard_Integer RowLen)
{
  myPPC = new Plate_HArray1OfPinpointConstraint(1,RowLen);
  myCoef = new TColgp_HArray2OfXYZ(1,ColLen,1,RowLen);
  myCoef->Init(gp_XYZ(0.,0.,0.));
}

 void Plate_LinearScalarConstraint::SetPPC(const Standard_Integer Index,const Plate_PinpointConstraint& Value) 
{
  myPPC->ChangeValue(Index) = Value;
}

 void Plate_LinearScalarConstraint::SetCoeff(const Standard_Integer Row,const Standard_Integer Col,const gp_XYZ& Value) 
{
  myCoef->ChangeValue(Row,Col) = Value;
}