api_random_keep_pattern
List of: Functions
Subjects: Patterns
Contents: Kernel

Action: Creates a new pattern by applying a random keep-filter to an existing pattern.

Prototype: outcome api_random_keep_pattern (


pattern*& pat, // created pattern


const pattern& in_pattern, // input pattern


double keep_fraction, // approximate fraction




// of elements to keep


logical merge // merge flag



= TRUE,


AcisOptions* ao = NULL // acis options


);

Includes: #include "kernel/acis.hxx"

#include "baseutil/logical.h"

#include "kernel/kernapi/api/api.hxx"

#include "kernel/kernutil/law/pattern.hxx"

#include "kernel/kernutil/law/pattern_api.hxx"

#include "kernel/kernapi/api/acis_options.hxx"

Description: Applies a periodic keep-filter to an existing pattern, merging with any existing filter or, optionally (with merge=FALSE), replacing it. The argument fraction determines the fraction of pattern elements that are kept.


The following code snippet shows an example of how this API can be used.


// Create a pattern

pattern* pat = NULL;

SPAvector x_vec(4.0, 0, 0);

int num_x = 12;

SPAvector y_vec(0, 4.0, 0);

int num_y = 12;

check_outcome(result = api_linear_pattern(pat, x_vec, num_x, y_vec, num_y));


// Modify the pattern

pattern* mod_pat = NULL;

double keep_fraction = 0.5;

check_outcome(result = api_random_keep_pattern(mod_pat, *pat, keep_fraction));


// Create a prism

BODY* prism = NULL;

double height = 1.0;

double maj_rad = 1.0;

double min_rad = 0.5;

int num_sides = 3;

check_outcome(result = api_make_prism(height, maj_rad, min_rad, num_sides, prism));


// Apply the pattern to the prism

check_outcome(result = api_set_entity_pattern(prism, mod_pat));


// Clean up

pat->remove();

mod_pat->remove();

Library: kernel

Filename: kern/kernel/kernutil/law/pattern_api.hxx

Effect: Changes model
PDF/KERN/16FNA.PDF
HTM/DATA/KERN/KERN/16FNA/0119.HTM