本文整理汇总了C++中Registry::ObjCreate方法的典型用法代码示例。如果您正苦于以下问题:C++ Registry::ObjCreate方法的具体用法?C++ Registry::ObjCreate怎么用?C++ Registry::ObjCreate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Registry
的用法示例。
在下文中一共展示了Registry::ObjCreate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main() {
// This has to be done before anything else. This initializes
// all of the registry information for the schema you are using.
// The SchemaInit() function is generated by exp2cxx... see
// extern statement above.
Registry * registry = new Registry( SchemaInit );
// The nifty thing about the Registry is that it basically keeps a list
// of everything in your schema. What this means is that we can go
// through the Registry and instantiate, say, one of everything, without
// knowing at coding-time what entities there are to instantiate. So,
// this test could be linked with other class libraries produced from
// other schema, rather than the example, and run happily.
InstMgr instance_list;
// Here's what's going to happen below: we're going to figure out
// how many different entities there are, instantiate one of each and
// keep an array of pointers to each. We'll stick some random data in
// them as we go. When we're done, we'll print out everything by walking
// the array, and then write out the STEPfile information to the screen.
// Figure outhow many entities there are, then allocate an array
// to store a pointer to one of each.
int num_ents = registry->GetEntityCnt();
STEPentity ** SEarray = new STEPentity*[num_ents];
// "Reset" the Schema and Entity hash tables... this sets things up
// so we can walk through the table using registry->NextEntity()
registry->ResetSchemas();
registry->ResetEntities();
// Print out what schema we're running through.
const SchemaDescriptor * schema = registry->NextSchema();
cout << "Entities in schema " << schema->Name() << ":\n";
// "Loop" through the schema, building one of each entity type.
const EntityDescriptor * ent; // needs to be declared const...
for ( int i = 0; i < num_ents; i++ ) {
ent = registry->NextEntity();
// Build object, using its name, through the registry
SEarray[i] = registry->ObjCreate( ent->Name() );
// Add each realized entity to the instance list
instance_list.Append( SEarray[i], completeSE );
// Put some data into each instance
PrintEntity( SEarray[i] );
}
// Print out all entities
SEarrIterator SEitr( ( const STEPentity ** ) SEarray, num_ents );
exit( 0 );
}
示例2: main
int main( void ) {
// The registry contains information about types present in the current schema; SchemaInit is a function in the schema-specific SDAI library
Registry * registry = new Registry( SchemaInit );
// The InstMgr holds instances that have been created or that have been loaded from a file
InstMgr * instance_list = new InstMgr();
// Increment FileId so entities start at #1 instead of #0.
instance_list->NextFileId();
// STEPfile takes care of reading and writing Part 21 files
STEPfile * sfile = new STEPfile( *registry, *instance_list, "", false );
registry->ResetSchemas();
registry->ResetEntities();
// Build file header
InstMgr * header_instances = sfile->HeaderInstances();
SdaiFile_name * fn = ( SdaiFile_name * ) sfile->HeaderDefaultFileName();
header_instances->Append( ( SDAI_Application_instance * ) fn, completeSE );
fn->name_( "'outfile.stp'" );
fn->time_stamp_( "''" );
fn->author_()->AddNode( new StringNode( "''" ) );
fn->organization_()->AddNode( new StringNode( "''" ) );
fn->preprocessor_version_( "''" );
fn->originating_system_( "''" );
fn->authorization_( "''" );
SdaiFile_description * fd = ( SdaiFile_description * ) sfile->HeaderDefaultFileDescription();
header_instances->Append( ( SDAI_Application_instance * ) fd, completeSE );
fd->description_()->AddNode( new StringNode( "''" ) );
fd->implementation_level_( "'1'" );
SdaiFile_schema * fs = ( SdaiFile_schema * ) sfile->HeaderDefaultFileSchema();
header_instances->Append( ( SDAI_Application_instance * ) fs, completeSE );
fs->schema_identifiers_()->AddNode( new StringNode( "'CONFIG_CONTROL_DESIGN'" ) );
// Build file data. The entities have been created and added in order such that no entity
// references a later entity. This is not required, but has been done to give a logical
// flow to the source and the resulting STEP file.
// Stand-in date and time.
SdaiDate_and_time * date_time = DateTime( registry, instance_list );
// Global units and tolerance.
STEPcomplex * context = Geometric_Context( registry, instance_list, MM, DEG, "0.0001" );
// Primary coordinate system.
SdaiAxis2_placement_3d * orig_transform = DefaultAxis( registry, instance_list );
// Basic context through product and shape representation
SdaiApplication_context * app_context = ( SdaiApplication_context * ) registry->ObjCreate( "APPLICATION_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) app_context, completeSE );
app_context->application_( "'configuration controlled 3d designs of mechanical parts and assemblies'" );
SdaiMechanical_context * mech_context = ( SdaiMechanical_context * ) registry->ObjCreate( "MECHANICAL_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) mech_context, completeSE );
mech_context->name_( "''" );
mech_context->discipline_type_( "'mechanical'" );
mech_context->frame_of_reference_( app_context );
SdaiApplication_protocol_definition * app_protocol = ( SdaiApplication_protocol_definition * ) registry->ObjCreate( "APPLICATION_PROTOCOL_DEFINITION" );
instance_list->Append( ( SDAI_Application_instance * ) app_protocol, completeSE );
app_protocol->status_( "'international standard'" );
app_protocol->application_protocol_year_( 1994 );
app_protocol->application_interpreted_model_schema_name_( "'config_control_design'" );
app_protocol->application_( app_context );
SdaiDesign_context * design_context = ( SdaiDesign_context * ) registry->ObjCreate( "DESIGN_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) design_context, completeSE );
design_context->name_( "''" );
design_context->life_cycle_stage_( "'design'" );
design_context->frame_of_reference_( app_context );
SdaiProduct * prod = ( SdaiProduct * ) registry->ObjCreate( "PRODUCT" );
instance_list->Append( ( SDAI_Application_instance * ) prod, completeSE );
prod->id_( "''" );
prod->name_( "'prodname'" );
prod->description_( "''" );
prod->frame_of_reference_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) mech_context ) );
SdaiProduct_related_product_category * prodcat = ( SdaiProduct_related_product_category * ) registry->ObjCreate( "PRODUCT_RELATED_PRODUCT_CATEGORY" );
instance_list->Append( ( SDAI_Application_instance * ) prodcat, completeSE );
prodcat->name_( "'assembly'" );
prodcat->description_( "''" );
prodcat->products_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod ) );
SdaiProduct_definition_formation_with_specified_source * prod_def_form = ( SdaiProduct_definition_formation_with_specified_source * ) registry->ObjCreate( "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" );
instance_list->Append( ( SDAI_Application_instance * ) prod_def_form, completeSE );
prod_def_form->id_( "''" );
prod_def_form->description_( "''" );
prod_def_form->of_product_( prod );
prod_def_form->make_or_buy_( Source__made );
SdaiProduct_definition * prod_def = ( SdaiProduct_definition * ) registry->ObjCreate( "PRODUCT_DEFINITION" );
instance_list->Append( ( SDAI_Application_instance * ) prod_def, completeSE );
prod_def->id_( "''" );
prod_def->description_( "''" );
//.........这里部分代码省略.........