File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
LoopStructural/modelling/features/builders Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 77from LoopStructural .utils .exceptions import LoopException
88
99import numpy as np
10+ import copy
1011
1112from ....utils import getLogger
1213from ....datatypes import BoundingBox
@@ -120,6 +121,38 @@ def __init__(
120121 model = self .model ,
121122 )
122123 self ._frame .builder = self
124+
125+ @classmethod
126+ def from_feature_builder (cls , feature_builder , ** kwargs ):
127+ """
128+ Create a structural frame builder from an existing feature builder
129+
130+ Parameters
131+ ----------
132+ feature_builder - a geological feature builder
133+ kwargs
134+
135+ Returns
136+ -------
137+
138+ """
139+ if not isinstance (feature_builder , GeologicalFeatureBuilder ):
140+ raise LoopException (
141+ f"feature_builder is { type (feature_builder )} and must be a GeologicalFeatureBuilder"
142+ )
143+ if hasattr (feature_builder , 'fold' ):
144+ logger .warning ("feature builder has a fold - using this to create a folded frame" )
145+ kwargs ['fold' ] = copy .deepcopy (feature_builder .fold )
146+ builder = cls (
147+ interpolatortype = [feature_builder .interpolator .type ]* 3 ,
148+ bounding_box = feature_builder .model .bounding_box ,
149+ nelements = [feature_builder .interpolator .n_elements ]* 3 ,
150+ name = feature_builder .name ,
151+ ** kwargs
152+ )
153+ builder .add_data_from_data_frame (feature_builder .data )
154+ return builder
155+
123156 @property
124157 def build_arguments (self ):
125158 return self .builders [0 ].build_arguments
You can’t perform that action at this time.
0 commit comments