@@ -117,6 +117,36 @@ cdef extern from "target.hpp":
117117 const Vec3[T] & rotation_rate,
118118 const bool & skip_diffusion) except +
119119
120+ # ------------------------------------------------------------------------------
121+ # Targets Manager
122+ # Container for managing multiple 3D mesh targets in radar simulation
123+ # ------------------------------------------------------------------------------
124+ cdef extern from " targets_manager.hpp" :
125+ cdef cppclass TargetsManager[T]:
126+ TargetsManager() except +
127+ # Add a new target
128+ void AddTarget(const T * points, # Vertex coordinates array
129+ const int_t * cells, # Cell connectivity array
130+ const int_t & cell_size, # Number of cells in mesh
131+ const Vec3[T] & origin, # Target reference origin
132+ const vector[Vec3[T]] & location_array, # Time-varying locations
133+ const vector[Vec3[T]] & speed_array, # Time-varying velocities
134+ const vector[Vec3[T]] & rotation_array, # Time-varying rotations
135+ const vector[Vec3[T]] & rotation_rate_array, # Time-varying rotation rates
136+ const cpp_complex[T] & ep, # Relative permittivity (material property)
137+ const cpp_complex[T] & mu, # Relative permeability (material property)
138+ const bool & skip_diffusion) except +
139+
140+ void AddTargetSimple(const T * points,
141+ const int_t * cells,
142+ const int_t & cell_size,
143+ const Vec3[T] & origin,
144+ const Vec3[T] & location,
145+ const Vec3[T] & speed,
146+ const Vec3[T] & rotation,
147+ const Vec3[T] & rotation_rate,
148+ const bool & skip_diffusion) except +
149+
120150# ------------------------------------------------------------------------------
121151# Ray Tracing Primitives
122152# Ray representation for LiDAR and ray tracing operations
@@ -137,7 +167,7 @@ cdef extern from "simulator_rcs.hpp":
137167 RcsSimulator() except +
138168
139169 # Calculate RCS for multiple targets and observation angles
140- vector[T] Run(vector[Target [float ]] targets , # Array of target objects
170+ vector[T] Run(const shared_ptr[TargetsManager [float ]] & targets_manager , # Targets manager
141171 vector[Vec3[T]] inc_dir_array, # Incident wave directions
142172 vector[Vec3[T]] obs_dir_array, # Observation directions
143173 Vec3[cpp_complex[T]] inc_polarization, # Incident wave polarization
@@ -154,7 +184,7 @@ cdef extern from "simulator_lidar.hpp":
154184 LidarSimulator() except +
155185
156186 # Generate point cloud by ray casting
157- void Run(vector[Target [T]] targets,
187+ void Run(const shared_ptr[TargetsManager [T]] & targets_manager, # Targets manager
158188 const vector[T] & phi, # Azimuth angles (radians)
159189 const vector[T] & theta, # Elevation angles (radians)
160190 const Vec3[T] & position) # LiDAR sensor position
@@ -285,24 +315,6 @@ cdef extern from "simulator_point.hpp":
285315 void Run(Radar[H, L] & radar, # Radar configuration
286316 vector[Point[L]] & points) # Array of point targets
287317
288- # Targets Manager
289- # Manager class for handling multiple mesh targets in simulations
290- cdef extern from " targets_manager.hpp" :
291- cdef cppclass TargetsManager[T]:
292- TargetsManager() except +
293- # Add a new target
294- void AddTarget(const T * points, # Vertex coordinates array
295- const int_t * cells, # Cell connectivity array
296- const int_t & cell_size, # Number of cells in mesh
297- const Vec3[T] & origin, # Target reference origin
298- const vector[Vec3[T]] & location_array, # Time-varying locations
299- const vector[Vec3[T]] & speed_array, # Time-varying velocities
300- const vector[Vec3[T]] & rotation_array, # Time-varying rotations
301- const vector[Vec3[T]] & rotation_rate_array, # Time-varying rotation rates
302- const cpp_complex[T] & ep, # Relative permittivity (material property)
303- const cpp_complex[T] & mu, # Relative permeability (material property)
304- const bool & skip_diffusion) except +
305-
306318# Mesh-based Ray Tracing Simulation
307319# Physics-based 3D mesh target simulation using ray tracing and physical optics
308320# Usage: For realistic simulation of complex targets with detailed geometry.
@@ -313,7 +325,7 @@ cdef extern from "simulator_mesh.hpp":
313325
314326 # Run mesh simulation with configurable fidelity
315327 RadarSimErrorCode Run(Radar[H, L] & radar, # Radar configuration
316- const shared_ptr[TargetsManager[L]] & targets_manager, # Array of mesh targets
328+ const shared_ptr[TargetsManager[L]] & targets_manager, # Targets manager
317329 int level, # Simulation level (0=LOW, 1=MEDIUM, 2=HIGH)
318330 L density, # Ray density for physical optics
319331 Vec2[int_t] ray_filter, # Ray index filter [min, max]
0 commit comments