22 swigCPtr =
new global::System.Runtime.InteropServices.HandleRef(
this, cPtr);
25 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(
PathOperator obj) {
26 return (obj ==
null) ?
new global::System.Runtime.InteropServices.HandleRef(
null, global::System.IntPtr.Zero) : obj.swigCPtr;
29 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(PathOperator obj) {
32 throw new global::System.ApplicationException(
"Cannot release ownership as memory is not owned");
33 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
34 obj.swigCMemOwn =
false;
38 return new global::System.Runtime.InteropServices.HandleRef(
null, global::System.IntPtr.Zero);
42 protected override void Dispose(
bool disposing) {
44 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
49 swigCPtr =
new global::System.Runtime.InteropServices.HandleRef(
null, global::System.IntPtr.Zero);
51 base.Dispose(disposing);
56 private List<LongToInt> startEmptyPathCallbacks;
58 if (startEmptyPathCallbacks ==
null)
59 startEmptyPathCallbacks =
new List<LongToInt>();
60 startEmptyPathCallbacks.Add(path);
65 bool ret = operations_research_constraint_solverPINVOKE.PathOperator_MakeNeighbor(swigCPtr);
69 public override void Reset() {
73 public long Prev(
long node) {
116 private void SwigDirectorConnect() {
117 if (SwigDerivedClassHasMethod(
"ToString", swigMethodTypes0))
119 if (SwigDerivedClassHasMethod(
"Start", swigMethodTypes1))
121 if (SwigDerivedClassHasMethod(
"Reset", swigMethodTypes2))
123 if (SwigDerivedClassHasMethod(
"HasFragments", swigMethodTypes3))
125 if (SwigDerivedClassHasMethod(
"HoldsDelta", swigMethodTypes4))
127 if (SwigDerivedClassHasMethod(
"IsIncremental", swigMethodTypes5))
129 if (SwigDerivedClassHasMethod(
"OnStart", swigMethodTypes6))
131 if (SwigDerivedClassHasMethod(
"MakeOneNeighbor", swigMethodTypes7))
133 if (SwigDerivedClassHasMethod(
"MakeNeighbor", swigMethodTypes8))
135 if (SwigDerivedClassHasMethod(
"OnNodeInitialization", swigMethodTypes9))
137 if (SwigDerivedClassHasMethod(
"RestartAtPathStartOnSynchronize", swigMethodTypes10))
139 if (SwigDerivedClassHasMethod(
"OnSamePathAsPreviousBase", swigMethodTypes11))
141 if (SwigDerivedClassHasMethod(
"GetBaseNodeRestartPosition", swigMethodTypes12))
143 if (SwigDerivedClassHasMethod(
"SetNextBaseToIncrement", swigMethodTypes13))
145 if (SwigDerivedClassHasMethod(
"ConsiderAlternatives", swigMethodTypes14))
147 if (SwigDerivedClassHasMethod(
"InitPosition", swigMethodTypes15))
149 operations_research_constraint_solverPINVOKE.
PathOperator_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3, swigDelegate4, swigDelegate5, swigDelegate6, swigDelegate7, swigDelegate8, swigDelegate9, swigDelegate10, swigDelegate11, swigDelegate12, swigDelegate13, swigDelegate14, swigDelegate15);
152 private bool SwigDerivedClassHasMethod(
string methodName, global::System.Type[] methodTypes) {
153 global::System.Reflection.MethodInfo[] methodInfos = this.GetType().GetMethods(
154 global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance);
155 foreach (global::System.Reflection.MethodInfo methodInfo in methodInfos) {
156 if (methodInfo.DeclaringType ==
null)
159 if (methodInfo.Name != methodName)
162 var parameters = methodInfo.GetParameters();
163 if (parameters.Length != methodTypes.Length)
166 bool parametersMatch =
true;
167 for (var i = 0; i < parameters.Length; i++) {
168 if (parameters[i].ParameterType != methodTypes[i]) {
169 parametersMatch =
false;
174 if (!parametersMatch)
177 if (methodInfo.IsVirtual && (methodInfo.DeclaringType.IsSubclassOf(typeof(PathOperator))) &&
178 methodInfo.DeclaringType != methodInfo.GetBaseDefinition().DeclaringType) {
186 private string SwigDirectorMethodToString() {
190 private void SwigDirectorMethodStart(global::System.IntPtr assignment) {
191 Start((assignment == global::System.IntPtr.Zero) ?
null :
new Assignment(assignment,
false));
194 private void SwigDirectorMethodReset() {
198 private bool SwigDirectorMethodHasFragments() {
202 private bool SwigDirectorMethodHoldsDelta() {
206 private bool SwigDirectorMethodIsIncremental() {
210 private void SwigDirectorMethodOnStart() {
214 private bool SwigDirectorMethodMakeOneNeighbor() {
218 private bool SwigDirectorMethodMakeNeighbor() {
222 private void SwigDirectorMethodOnNodeInitialization() {
226 private bool SwigDirectorMethodRestartAtPathStartOnSynchronize() {
230 private bool SwigDirectorMethodOnSamePathAsPreviousBase(
long base_index) {
234 private long SwigDirectorMethodGetBaseNodeRestartPosition(
int base_index) {
238 private void SwigDirectorMethodSetNextBaseToIncrement(
long base_index) {
242 private bool SwigDirectorMethodConsiderAlternatives(
long base_index) {
246 private bool SwigDirectorMethodInitPosition() {
284 private static global::System.Type[] swigMethodTypes0 =
new global::System.Type[] { };
285 private static global::System.Type[] swigMethodTypes1 =
new global::System.Type[] { typeof(
Assignment) };
286 private static global::System.Type[] swigMethodTypes2 =
new global::System.Type[] { };
287 private static global::System.Type[] swigMethodTypes3 =
new global::System.Type[] { };
288 private static global::System.Type[] swigMethodTypes4 =
new global::System.Type[] { };
289 private static global::System.Type[] swigMethodTypes5 =
new global::System.Type[] { };
290 private static global::System.Type[] swigMethodTypes6 =
new global::System.Type[] { };
291 private static global::System.Type[] swigMethodTypes7 =
new global::System.Type[] { };
292 private static global::System.Type[] swigMethodTypes8 =
new global::System.Type[] { };
293 private static global::System.Type[] swigMethodTypes9 =
new global::System.Type[] { };
294 private static global::System.Type[] swigMethodTypes10 =
new global::System.Type[] { };
295 private static global::System.Type[] swigMethodTypes11 =
new global::System.Type[] { typeof(
long) };
296 private static global::System.Type[] swigMethodTypes12 =
new global::System.Type[] { typeof(
int) };
297 private static global::System.Type[] swigMethodTypes13 =
new global::System.Type[] { typeof(
long) };
298 private static global::System.Type[] swigMethodTypes14 =
new global::System.Type[] { typeof(
long) };
299 private static global::System.Type[] swigMethodTypes15 =
new global::System.Type[] { };