| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GroupVectorAdd (LibOpt_ScopeThin scope, LibOpt_Group group) as BinaryValue | 
| { | 
|   Description: 'Calculate the new `NumberVector` that represents the associated groups, after adding another scope with an associated group.' | 
|   TextBody: | 
|   [* | 
|     result := BinaryValue::Construct(); | 
|     if( not isnull( group ) ) | 
|     { | 
|       vector := NumberVector::Construct( this.GroupVector() ); | 
|        | 
|       // Add enough space | 
|       if( vector.Size() <= scope.ID() ) | 
|       { | 
|         new_vector := NumberVector::Construct( scope.ID() + 1 ); | 
|         new_vector.SetRange( 0, vector ); | 
|          | 
|         vector := & new_vector; | 
|       } | 
|        | 
|       vector.Set( scope.ID(), group.ID() ); | 
|        | 
|       result := vector.AsBinaryValue(); | 
|     } | 
|     else | 
|     { | 
|       result := this.GroupVectorRemove( scope ); | 
|     } | 
|      | 
|     return result; | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |