2025-12-01
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
from ctypes import *
|
||||
|
||||
class Parameters(Structure):
|
||||
_fields_ = [
|
||||
('remesh', c_bool),
|
||||
('sharpAngle', c_float),
|
||||
('alpha', c_float), # Unused
|
||||
('scaleFact', c_float), #Unused
|
||||
('hasFeature', c_bool),
|
||||
('hasField', c_bool),
|
||||
]
|
||||
|
||||
|
||||
class QRParameters(Structure):
|
||||
_fields_ = [
|
||||
("useFlowSolver", c_bool),
|
||||
("flow_config_filename", c_char_p),
|
||||
("satsuma_config_filename", c_char_p),
|
||||
("initialRemeshing", c_bool),
|
||||
("initialRemeshingEdgeFactor", c_double),
|
||||
("reproject", c_bool),
|
||||
("splitConcaves", c_bool),
|
||||
("finalSmoothing", c_bool),
|
||||
|
||||
("ilpMethod", c_int),
|
||||
("alpha", c_double),
|
||||
("isometry", c_bool),
|
||||
("regularityQuadrilaterals", c_bool),
|
||||
("regularityNonQuadrilaterals", c_bool),
|
||||
("regularityNonQuadrilateralsWeight", c_double),
|
||||
("alignSingularities", c_bool),
|
||||
("alignSingularitiesWeight", c_double),
|
||||
("repeatLosingConstraintsIterations", c_bool),
|
||||
("repeatLosingConstraintsQuads", c_bool),
|
||||
("repeatLosingConstraintsNonQuads", c_bool),
|
||||
("repeatLosingConstraintsAlign", c_bool),
|
||||
("feasibilityFix", c_bool),
|
||||
("hardParityConstraint", c_bool),
|
||||
|
||||
("timeLimit", c_double),
|
||||
("gapLimit", c_double),
|
||||
("minimumGap", c_double),
|
||||
("callbackTimeLimit", POINTER(c_float)),
|
||||
("callbackGapLimit", POINTER(c_float)),
|
||||
|
||||
("chartSmoothingIterations", c_int),
|
||||
("quadrangulationFixedSmoothingIterations", c_int),
|
||||
("quadrangulationNonFixedSmoothingIterations", c_int),
|
||||
("doubletRemoval", c_bool),
|
||||
|
||||
("resultSmoothingIterations", c_int),
|
||||
("resultSmoothingNRing", c_double),
|
||||
("resultSmoothingLaplacianIterations", c_int),
|
||||
("resultSmoothingLaplacianNRing", c_double),
|
||||
]
|
||||
|
||||
|
||||
def create_string(input):
|
||||
return create_string_buffer(str.encode(input, encoding='utf-8'))
|
||||
|
||||
|
||||
def create_default_QRParameters():
|
||||
callbackTimeLimitDefault = [3.00, 5.000, 10.0, 20.0, 30.0, 60.0, 90.0, 120.0]
|
||||
callbackGapLimitDefault = [0.005, 0.02, 0.05, 0.10, 0.15, 0.20, 0.25, 0.3]
|
||||
|
||||
params = QRParameters()
|
||||
|
||||
# Possibly unused
|
||||
params.initialRemeshing = True
|
||||
params.initialRemeshingEdgeFactor = 1
|
||||
params.reproject = True
|
||||
params.splitConcaves = False
|
||||
params.finalSmoothing = True
|
||||
params.doubletRemoval = True
|
||||
params.resultSmoothingIterations = 5
|
||||
params.resultSmoothingNRing = 3
|
||||
params.resultSmoothingLaplacianIterations = 2
|
||||
params.resultSmoothingLaplacianNRing = 3
|
||||
|
||||
# From configs
|
||||
params.alpha = 0.005
|
||||
params.ilpMethod = 1
|
||||
params.timeLimit = 200
|
||||
params.gapLimit = 0.0
|
||||
params.callbackTimeLimit = (c_float * len(callbackTimeLimitDefault))(*callbackTimeLimitDefault)
|
||||
params.callbackGapLimit = (c_float * len(callbackGapLimitDefault))(*callbackGapLimitDefault)
|
||||
params.minimumGap = 0.4
|
||||
params.isometry = 1
|
||||
params.regularityQuadrilaterals = 1
|
||||
params.regularityNonQuadrilaterals = 1
|
||||
params.regularityNonQuadrilateralsWeight = 0.9
|
||||
params.alignSingularities = 1
|
||||
params.alignSingularitiesWeight = 0.1
|
||||
params.repeatLosingConstraintsIterations = 1
|
||||
params.repeatLosingConstraintsQuads = 0
|
||||
params.repeatLosingConstraintsNonQuads = 0
|
||||
params.repeatLosingConstraintsAlign = 1
|
||||
params.hardParityConstraint = 1
|
||||
params.useFlowSolver = 1
|
||||
params.flow_config_filename = "config/main_config/flow_virtual_simple.json".encode()
|
||||
params.satsuma_config_filename = "config/satsuma/default.json".encode()
|
||||
|
||||
# Hardcoded in lib
|
||||
params.chartSmoothingIterations = 0
|
||||
params.quadrangulationFixedSmoothingIterations = 0
|
||||
params.quadrangulationNonFixedSmoothingIterations = 0
|
||||
params.feasibilityFix = False
|
||||
|
||||
return params
|
||||
Reference in New Issue
Block a user