trick/trick_sims/SIM_rti/S_define

101 lines
2.6 KiB
Plaintext
Raw Normal View History

2015-02-26 15:02:31 +00:00
/************************TRICK HEADER*************************
PURPOSE:
(This comment lists out the other object files that are not included from c++ headers)
LIBRARY DEPENDENCIES:
(
)
*************************************************************/
#include "sim_objects/default_trick_sys.sm"
##include "test_ip/include/Ball_test.hh"
/* base ball... get it? :) */
class ballSimObject : public Trick::SimObject {
public:
Ball_alex obj ;
TEST_STRUCT t ;
my_ns::AA ns_test ;
ballSimObject() {
("default_data") obj.force.default_data() ;
("default_data") obj.state.default_data() ;
("initialization") obj.state_init() ;
("derivative") obj.force_field() ;
("derivative") obj.state_deriv() ;
("integration") trick_ret = obj.state_integ() ;
(10.0, "scheduled") trick_ret = obj.state_print() ;
("freeze") obj.state_print() ;
}
private:
ballSimObject (const ballSimObject &);
ballSimObject & operator= (const ballSimObject &);
} ;
class disabledSimObject : public Trick::SimObject {
public:
void print_me() {
message_publish( 7 , "\033[31mThis statement in disabledSimObject should not print because the sim object is disabled!!!\033[0m\n" ) ;
add_test_result( "IPtest" , "Disable sim_object" , "job not disabled\n") ;
}
disabledSimObject() {
("initialization") print_me() ;
(10.0 , "scheduled") print_me() ;
}
} ;
class emptySimObject : public Trick::SimObject {
public:
Ball_alex obj ;
private:
emptySimObject (const emptySimObject &);
emptySimObject & operator= (const emptySimObject &);
} ;
class reallyemptySimObject : public Trick::SimObject {
public:
int ii ;
} ;
class plainClass {
public:
double d ;
float f ;
plainClass() : d() , f() {} ;
}
// Instantiations
ballSimObject ball ;
disabledSimObject disabled_obj ;
// This collect can now be done in create_connections or the input file.
//collect ball.obj.state.work.external_force = {ball.obj.force.output.force[0]};
IntegLoop my_integ_loop (0.01) ball;
// Connect objects
void create_connections() {
// Set the default termination time
trick_sys.sched.set_terminate_time(300.0) ;
trick_sys.sched.set_freeze_frame(0.10) ;
my_integ_loop.getIntegrator( Runge_Kutta_2, 4 );
// Example of adding a collect in create_connections.
ball.obj.state.add_external_force( ball.obj.force.output.force ) ;
}